Aracılığıyla paylaş


Azure AI Search'te arama dizinine veri yükleme

Bu makalede, belgeleri önceden tanımlanmış bir arama dizinine aktarma işlemi açıklanmaktadır. Azure AI Search'te ilk olarak ikinci adım olarak veri içeri aktarma işlemiyle bir arama dizini oluşturulur. Özel durum, bir iş akışında dizin oluşturup yükleyen portaldaki ve dizin oluşturucu işlem hatlarındaki İçeri Aktarma sihirbazlarıdır.

Veri içeri aktarma nasıl çalışır?

Arama hizmeti, dizin şemasına uygun JSON belgelerini kabul eder. Arama hizmeti, tam metin arama, vektör arama, karma arama ve bilgi madenciliği senaryolarında kullanılan JSON'da düz metin ve vektörleri içeri aktarır ve dizinler.

  • Düz metin içeriği dış veri kaynağındaki alfasayısal alanlardan, arama senaryolarında yararlı olan meta verilerden veya bir beceri kümesi tarafından oluşturulan zenginleştirilmiş içerikten elde edilebilir (beceriler görüntülerden ve yapılandırılmamış içerikten metinsel açıklamaları ayıklayabilir veya çıkarabilir).

  • Vektör içeriği, uygulanan yapay zeka ile tümleştirilen Azure AI Search özellikleri kullanılarak dış ekleme modeli veya tümleşik vektörleştirme (önizleme) kullanılarak vektörleştirilir.

Bu belgeleri kendiniz hazırlayabilirsiniz, ancak içerik desteklenen bir veri kaynağında bulunuyorsa, dizin oluşturucu çalıştırmak veya İçeri Aktarma sihirbazı kullanmak belge alma, JSON serileştirme ve dizin oluşturmayı otomatikleştirebilir.

Veriler dizine eklendikten sonra dizinin fiziksel veri yapıları kilitlenir. Nelerin değiştirilebileceği ve değiştirilebileceği konusunda yönergeler için bkz . Dizini güncelleştirme ve yeniden derleme.

Dizin oluşturma bir arka plan işlemi değildir. Arama hizmeti dizin oluşturma ve sorgu iş yüklerini dengeler, ancak sorgu gecikme süresi çok yüksekse, kapasite ekleyebilir veya dizin yüklemek için düşük sorgu etkinliği dönemlerini belirleyebilirsiniz.

Daha fazla bilgi için bkz . Veri içeri aktarma stratejileri.

Azure portal’ı kullanma

Azure portalında, sorunsuz bir iş akışında dizinler oluşturmak ve yüklemek için içeri aktarma sihirbazlarını kullanın. Mevcut bir dizini yüklemek istiyorsanız alternatif bir yaklaşım seçin.

  1. Azure hesabınızla Azure portalında oturum açın ve arama hizmetinizi bulun.

  2. Arama dizini oluşturup doldurmak için Genel Bakış sayfasında Verileri içeri aktar'ı veya Komut çubuğunda verileri içeri aktar ve vektörleştir'i seçin.

    Verileri içeri aktar komutunun ekran görüntüsü

    İş akışını gözden geçirmek için şu bağlantıları izleyebilirsiniz: Hızlı Başlangıç: Azure AI Arama dizini oluşturma ve Hızlı Başlangıç: Tümleşik vektörleştirme (önizleme).

  3. Sihirbaz tamamlandıktan sonra sonuçları denetlemek için Arama Gezgini'ni kullanın.

İpucu

İçeri aktarma sihirbazları dizin oluşturucuları oluşturur ve çalıştırır. Dizin oluşturucular zaten tanımlanmışsa Azure portalından bir dizin oluşturucuyu sıfırlayabilir ve çalıştırabilirsiniz. Bu, alanları artımlı olarak ekliyorsanız kullanışlıdır. Sıfırlama, dizin oluşturucuyu baştan başlamaya zorlayarak tüm kaynak belgelerden tüm alanları almaya zorlar.

REST API’leri kullanma

Belgeler - Dizin , bir arama dizinine veri aktarmaya yönelik REST API'dir. REST API'leri, çok fazla kod yazmak zorunda kalmadan dizin oluşturma iş akışlarını test etmek için kullanabileceğiniz ilk kavram kanıtı testi için kullanışlıdır. @search.action parametresi, belgelerin tam olarak mı yoksa kısmen belirli alanlar için yeni veya değiştirme değerleri bakımından mı ekleneceğini belirler.

Hızlı Başlangıç: REST kullanan metin araması adımları açıklar. Aşağıdaki örnek, örneğin değiştirilmiş bir sürümüdür. Kısa olması için kırpıldı ve mevcut bir belgenin üzerine yazılmasını önlemek için ilk HotelId değeri değiştirildi.

  1. Dizin adını, "docs/index" uç noktasını ve parametresini içeren bir istek gövdesini belirten bir POST çağrısı formüle edin @search.action .

    POST https://[service name].search.windows.net/indexes/hotels-sample-index/docs/index?api-version=2023-11-01
    Content-Type: application/json   
    api-key: [admin key] 
    {
        "value": [
        {
        "@search.action": "upload",
        "HotelId": "1111",
        "HotelName": "Secret Point Motel",
        "Description": "The hotel is ideally located on the main commercial artery of the city in the heart of New York. A few minutes away is Time's Square and the historic centre of the city, as well as other places of interest that make New York one of America's most attractive and cosmopolitan cities.",
        "Category": "Boutique",
        "Tags": [ "pool", "air conditioning", "concierge" ]
        },
        {
        "@search.action": "mergeOrUpload",
        "HotelId": "2",
        "HotelName": "Twin Dome Motel",
        "Description": "This is description is replacing the original one for this hotel. New and changed values overwrite the previous ones. In a comma-delimited list like Tags, be sure to provide the full list because there is no merging of values within the field itself.",
        "Category": "Boutique",
        "Tags": [ "pool", "free wifi", "concierge", "my first new tag", "my second new tag" ]
        }
      ]
    }
    
  2. @search.action Belge oluşturmak veya üzerine yazmak için parametresini upload olarak ayarlayın. Güncelleştirmeleri merge belgenin içindeki belirli alanlara hedeflediğiniz veya uploadOrMerge olarak ayarlayın. Önceki örnekte her iki eylem de gösterilmektedir.

    Eylem Etki
    birleşmek Zaten var olan bir belgeyi güncelleştirir ve bulunamaz bir belgeyi başarısız olur. Birleştirme, mevcut değerlerin yerini alır. Bu nedenle, türünde Collection(Edm.String)alanlar gibi birden çok değer içeren koleksiyon alanlarını denetlemeyi unutmayın. Örneğin, bir tags alan değeriyle ["budget"] başlıyorsa ve ile ["economy", "pool"]bir birleştirme yürütürseniz, alanın son değeri tags olur ["economy", "pool"]. Bu ["budget", "economy", "pool"]olmayacak.
    mergeOrUpload Belge varsa birleştirme ve belge yeniyse karşıya yükleme gibi davranır. Bu, artımlı güncelleştirmeler için en yaygın eylemdir.
    karşıya yükle Belge yeniyse eklendiği ve varsa güncelleştirildiği veya değiştirildiği "upsert" örneğine benzer. Belgede dizinin gerektirdiği değerler eksikse, belge alanının değeri null olarak ayarlanır.
  3. İsteği gönderin.

  4. Doğrulama adımı olarak yeni eklediğiniz belgeleri arayın:

    GET https://[service name].search.windows.net/indexes/hotel-sample-index/docs/1111?api-version=2023-11-01
    

Belge anahtarı veya kimliği yeni olduğunda, null değeri belgede belirtilmeyen herhangi bir alanın değeri olur. Var olan bir belgedeki eylemler için, güncelleştirilmiş değerler önceki değerlerin yerini alır. "Birleştirme" veya "mergeUpload" içinde belirtilmemiş tüm alanlar arama dizininde olduğu gibi bırakılır.

Azure SDK'larını kullanma

Programlanabilirlik aşağıdaki Azure SDK'larında sağlanır.

.NET için Azure SDK, bir dizine basit ve toplu belge yüklemeleri için aşağıdaki API'leri sağlar:

Basit ve büyük ölçekli dizin oluşturma bağlamında dizin oluşturmayı gösteren birkaç örnek vardır:

Ayrıca bkz.