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. Bunun istisnası Azure portalında içeri aktarma sihirbazları ve tek bir iş akışında dizin oluşturup yükleyen dizin oluşturucu işlem hatlarıdır.
Veri içeri aktarma nasıl çalışır?
Arama hizmeti, dizin şemasına uygun JSON belgelerini kabul eder. Arama hizmeti, JSON belgelerinde düz metin içeriğini ve vektör içeriğini içeri aktarabilir ve dizinleyebilir.
Düz metin içeriği dış veri kaynağındaki alanlardan, meta veri özelliklerinden veya bir beceri kümesi tarafından oluşturulan zenginleştirilmiş içerikten alınır (beceriler görüntülerden ve yapılandırılmamış içerikten metinsel açıklamaları ayıklayabilir veya çıkarabilir).
Vektör içeriği, bunu sağlayan bir veri kaynağından alınır veya Azure AI Search dizin oluşturucu iş yükünde tümleşik vektörleştirme uygulayan bir beceri kümesi tarafından oluşturulur.
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.
Azure hesabınızla Azure portalında oturum açın ve arama hizmetinizi bulun.
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.
İş 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.
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.
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=2024-07-01 Content-Type: application/json api-key: [admin key] { "value": [ { "@search.action": "upload", "HotelId": "1111", "HotelName": "Stay-Kay City Hotel", "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": "Old Century Hotel", "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" ] } ] }
@search.action
Belge oluşturmak veya üzerine yazmak için parametresiniupload
olarak ayarlayın. Güncelleştirmelerimerge
belgenin içindeki belirli alanlara hedeflediğiniz veyauploadOrMerge
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, birtags
alan değeriyle["budget"]
başlıyorsa ve ile["economy", "pool"]
bir birleştirme yürütürseniz, alanın son değeritags
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. İsteği gönderin.
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=2024-07-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:
"Dizin yükleme" temel adımları açıklar.
Azure.Search.Documents Örnekleri - Azure SDK ekibinden Dizin Oluşturma Belgeleri SearchIndexingBufferedSender ekler.
Öğretici: En uygun boyutu belirlemek için test stratejileriyle veri çiftleri toplu dizin oluşturma işlemlerini dizine alın.
Vektör alanlarını dizine alma işlemini gösteren kod örnekleri için azure-search-vector-samples depoyu kontrol edin.