Azure AI Search'te dizin oluşturucu oluşturma
Bu makale, dizin oluşturucu oluşturmanın temel adımlarına odaklanır. Veri kaynağına ve iş akışınıza bağlı olarak daha fazla yapılandırma gerekebilir.
Azure AI Search'te veri içeri aktarmayı ve dizin oluşturmayı otomatikleştirmek için dizin oluşturucu kullanabilirsiniz. Dizin oluşturucu, dış Azure veri kaynağına bağlanan, verileri okuyan ve dizin oluşturmak üzere bir arama altyapısına geçiren arama hizmetindeki adlandırılmış bir nesnedir. Dizin oluşturucuları kullanmak, desteklenen bir veri kaynağı kullanıyorsanız yazmanız gereken kodun miktarını ve karmaşıklığını önemli ölçüde azaltır.
Dizin oluşturucular iki iş akışını destekler:
Ham içerik dizin oluşturma (düz metin veya vektörler):Tam metin arama senaryoları için metin içeriğinden dizeleri ve meta verileri ayıklayın. Vektör araması için ham vektör içeriğini ayıklar (örneğin, bir Azure SQL veritabanındaki veya Azure Cosmos DB koleksiyonundaki vektörler). Bu iş akışında dizin oluşturma yalnızca sağladığınız mevcut içerik üzerinde gerçekleşir.
Beceri tabanlı dizin oluşturma: Yeni aranabilir içerik oluşturan veya oluşturan yerleşik veya özel beceriler aracılığıyla dizin oluşturmayı genişletir. Örneğin, görüntüler ve yapılandırılmamış metinler üzerinde analiz için tümleşik makine öğrenmesi ekleyebilir, metin ve yapıyı ayıklayabilir veya çıkarabilirsiniz. Alternatif olarak, metin ve görüntülerden gelen içeriği öbekleyip vektörleştirmek için becerileri de kullanabilirsiniz. Beceri tabanlı dizin oluşturma, dış veri kaynağınızda mevcut olmayan yeni içerik oluşturur veya oluşturur. Dizin şemasına gelen verileri kabul eden alanlar eklediğinizde yeni içerik dizininizin bir parçası olur. Daha fazla bilgi edinmek için bkz . Azure AI Search'te yapay zeka zenginleştirmesi.
Önkoşullar
Almak istediğiniz içeriği içeren desteklenen bir veri kaynağı.
Dış verilere bağlantı ayarlayan bir dizin oluşturucu veri kaynağı .
Hizmet katmanınız için maksimum sınırların altında olun. Ücretsiz katmanı, her türden üç nesneye ve 1-3 dakikalık dizin oluşturucu işlemesine veya beceri kümesi varsa 3-10 dakikaya izin verir.
Dizin oluşturucu desenleri
Dizin oluşturucu oluşturduğunuzda tanım iki desenden biridir: içerik tabanlı dizin oluşturma veya beceri tabanlı dizin oluşturma. Beceri tabanlı dizin oluşturmanın daha fazla tanımı olması dışında desenler aynıdır.
İçerik tabanlı dizin oluşturma için dizin oluşturucu örneği
Tam metin veya vektör araması için içerik tabanlı dizin oluşturma, dizin oluşturucular için birincil kullanım örneğidir. Bu iş akışı için dizin oluşturucu bu örneğe benzer.
{
"name": (required) String that uniquely identifies the indexer,
"description": (optional),
"dataSourceName": (required) String indicating which existing data source to use,
"targetIndexName": (required) String indicating which existing index to use,
"parameters": {
"batchSize": null,
"maxFailedItems": 0,
"maxFailedItemsPerBatch": 0,
"base64EncodeKeys": false,
"configuration": {}
},
"fieldMappings": (optional) unless field discrepancies need resolution,
"disabled": null,
"schedule": null,
"encryptionKey": null
}
Dizin oluşturucular aşağıdaki gereksinimlere sahiptir:
- Dizin
name
oluşturucu koleksiyonunda dizin oluşturucuyu benzersiz olarak tanımlayan özellik - Veri
dataSourceName
kaynağı nesnesine işaret eden özellik. Dış verilere bir bağlantı belirtir -
targetIndexName
Hedef arama dizinine işaret eden özellik
Diğer parametreler isteğe bağlıdır ve işin tamamında başarısız olmadan önce kabul edilmesi gereken hata sayısı gibi çalışma zamanı davranışlarını değiştirir. Gerekli parametreler tüm dizin oluşturucularda belirtilir ve REST API başvurusunda belgelenir.
Bloblar, SQL ve Azure Cosmos DB için veri kaynağına özgü dizin oluşturucular, kaynağa özgü davranışlar için ek configuration
parametreler sağlar. Örneğin, kaynak Blob Depolama ise, aşağıdakiler gibi dosya uzantılarını filtreleyen bir parametre ayarlayabilirsiniz:
"parameters" : { "configuration" : { "indexedFileNameExtensions" : ".pdf,.docx" } }
Kaynak Azure SQL ise bir sorgu zaman aşımı parametresi ayarlayabilirsiniz.
Alan eşlemeleri , veri kaynağındaki bir alan ile arama dizinindeki bir alan arasında ada veya türe göre tutarsızlıklar varsa kaynak-hedef alanları açıkça eşlemek için kullanılır.
Varsayılan olarak, bir dizin oluşturucu arama hizmetinde oluşturduğunuzda hemen çalışır. Dizin oluşturucunun yürütülmesini istemiyorsanız, dizin oluşturucuyu oluştururken true olarak ayarlayın disabled
.
Ayrıca dizin oluşturucu tanımının ek şifrelemesi için bir zamanlama belirtebilir veya bir şifreleme anahtarı ayarlayabilirsiniz.
Beceri tabanlı dizin oluşturma için dizin oluşturucu örneği
Beceri tabanlı dizin oluşturma, ham biçiminde aranamayan içeriği işlemek için yapay zeka zenginleştirmesini kullanır. Yukarıdaki özelliklerin ve parametrelerin tümü geçerlidir, ancak aşağıdaki ek özellikler yapay zeka zenginleştirmesine özeldir: skillSetName
, , cache
outputFieldMappings
.
{
"name": (required) String that uniquely identifies the indexer,
"dataSourceName": (required) String, provides raw content that will be enriched,
"targetIndexName": (required) String, name of an existing index,
"skillsetName" : (required for AI enrichment) String, name of an existing skillset,
"cache": {
"storageConnectionString" : (required if you enable the cache) Connection string to a blob container,
"enableReprocessing": true
},
"parameters": { },
"fieldMappings": (optional) Maps fields in the underlying data source to fields in an index,
"outputFieldMappings" : (required) Maps skill outputs to fields in an index,
}
Yapay zeka zenginleştirme kendi konu alanıdır ve bu makalenin kapsamı dışındadır. Daha fazla bilgi için yapay zeka zenginleştirmesi, Azure Yapay Zeka Arama beceri kümeleri, Beceri kümesi oluşturma, Zenginleştirilmiş çıkış alanlarını eşleme ve Yapay zeka zenginleştirmesi için önbelleğe almayı etkinleştirme ile başlayın.
Dış verileri hazırlama
Dizin oluşturucular veri kümeleriyle çalışır. Bir dizin oluşturucu çalıştırdığınızda, veri kaynağınıza bağlanır, kapsayıcıdan veya klasörden verileri alır, isteğe bağlı olarak dizin oluşturmak üzere arama altyapısına geçirmeden önce JSON'a serileştirir. Bu bölümde, metin tabanlı dizin oluşturma için gelen verilerin gereksinimleri açıklanmaktadır.
Kaynak veriler | Görevler |
---|---|
JSON belgeleri | JSON belgeleri metin, sayı ve vektör içerebilir. Gelen verilerin yapısının veya şeklinin arama dizininizin şemasına karşılık olduğundan emin olun. Çoğu arama dizini, alan koleksiyonunun aynı düzeydeki alanlardan oluştuğu oldukça düz bir dizindir. Ancak karmaşık alanlar ve koleksiyonlar aracılığıyla hiyerarşik veya iç içe geçmiş yapılar mümkündür. |
İlişkisel | Verileri düzleştirilmiş bir satır kümesi olarak sağlayın; burada her satır dizinde tam veya kısmi arama belgesine dönüşür. İlişkisel verileri bir satır kümesine düzleştirmeniz için bir SQL görünümü oluşturmanız veya aynı satırdaki üst ve alt kayıtları döndüren bir sorgu oluşturmanız gerekir. Örneğin, yerleşik oteller örnek veri kümesi, ilişkili bir tablodaki oda kayıtlarına bağlı 50 kaydı (her otel için bir tane) olan bir SQL veritabanıdır. Toplu verileri bir satır kümesine düzleştirme sorgusu, tüm oda bilgilerini her otel kaydındaki JSON belgelerine ekler. Katıştırılmış oda bilgileri, FOR JSON AUTO yan tümcesi kullanan bir sorgu tarafından oluşturulur. Katıştırılmış JSON döndüren bir sorgu tanımlama bölümünde bu teknik hakkında daha fazla bilgi edinebilirsiniz. Bu yalnızca bir örnektir; aynı sonucu veren diğer yaklaşımları bulabilirsiniz. |
Dosyalar | Dizin oluşturucu genellikle her dosya için bir arama belgesi oluşturur ve burada arama belgesi içerik ve meta veriler için alanlardan oluşur. Dosya türüne bağlı olarak, dizin oluşturucu bazen bir dosyayı birden çok arama belgesine ayrıştırabilir. Örneğin, bir CSV dosyasında her satır tek başına bir arama belgesine dönüşebilir. |
Yalnızca aranabilir ve filtrelenebilir verileri çekmeniz gerektiğini unutmayın:
- Aranabilir veriler metin veya vektördür
- Filtrelenebilir veriler metin ve sayıdır (vektör olmayan alanlar)
Azure AI Search, ikili veriler üzerinde herhangi bir biçimde tam metin araması yapamaz, ancak aranabilir içerik oluşturmak için görüntü dosyalarının metin açıklamalarını ayıklayabilir ve çıkarabilir (bkz . yapay zeka zenginleştirmesi). Benzer şekilde, büyük metinler de yapıyı veya ilgili bilgileri bulmak için doğal dil modelleri tarafından parçalanabilir ve analiz edilebilir ve arama belgesine ekleyebileceğiniz yeni içerik oluşturulabilir. Ayrıca, ikili biçimde nicelenmiş eklemeler de dahil olmak üzere eklemeler üzerinde vektör araması yapabilir.
Dizin oluşturucuların veri sorunlarını düzeltmediğinden, diğer veri temizleme veya işleme biçimleri gerekebilir. Daha fazla bilgi için Azure veritabanı ürününüzün ürün belgelerine başvurmalısınız.
Veri kaynağı hazırlama
Dizin oluşturucular türü, kapsayıcıyı ve bağlantıyı belirten bir veri kaynağı gerektirir.
Desteklenen bir veri kaynağı türü kullandığınızdan emin olun.
Veri kaynağı tanımı oluşturun. Aşağıdaki veri kaynakları, daha sık kullanılan kaynaklardan birkaçıdır:
Veri kaynağı Azure SQL veya Cosmos DB gibi bir veritabanıysa değişiklik izlemeyi etkinleştirin. Azure Depolama,her blob, dosya ve tablodaki
LastModified
özelliği aracılığıyla yerleşik değişiklik izleme özelliğine sahiptir. Çeşitli veri kaynaklarının bağlantıları, dizin oluşturucular tarafından desteklenen değişiklik izleme yöntemlerini açıklar.
Dizin hazırlama
Dizin oluşturucular da bir arama dizini gerektirir. Dizin oluşturucuların dizin oluşturma için arama altyapısına veri geçirdiğini hatırlayın. Dizin oluşturucuların yürütme davranışını belirleyen özellikleri olduğu gibi, dizin şemasında da dizelerin dizin oluşturma biçimini derinden etkileyen özellikler vardır (yalnızca dizeler analiz edilir ve belirteç haline getirilir).
Arama dizini oluşturma ile başlayın.
Alan koleksiyonunu ve alan özniteliklerini ayarlayın.
Dış içeriğin tek reseptörleri alanlardır. Alanların şemada nasıl ilişkilendirildiğine bağlı olarak, her alanın değerleri analiz edilir, belirteçlendirilir veya filtreler, benzer arama ve tür başlığı sorguları için ayrıntılı dizeler olarak depolanır.
Dizin oluşturucular, adlar ve türler eşdeğer olduğunda kaynak alanları otomatik olarak hedef dizin alanlarına eşleyebilir. Bir alan örtük olarak eşlenemiyorsa, dizin oluşturucuya içeriğin nasıl yönlendirildiğini bildiren açık bir alan eşlemesi tanımlayabileceğinizi unutmayın.
Her alandaki çözümleyici atamalarını gözden geçirin. Çözümleyiciler dizeleri dönüştürebilir. Bu nedenle, dizinlenmiş dizeler geçirdiğinizden farklı olabilir. Çözümleme Metni (REST) kullanarak çözümleyicilerin etkilerini değerlendirebilirsiniz. Çözümleyiciler hakkında daha fazla bilgi için bkz . Metin işleme için çözümleyiciler.
Dizin oluşturma sırasında, dizin oluşturucu yalnızca alan adlarını ve türlerini denetler. Dizindeki ilgili arama alanı için gelen içeriğin doğru olmasını sağlayan bir doğrulama adımı yoktur.
Dizin oluşturucu oluşturma
Bir uzak arama hizmetinde dizin oluşturucu oluşturmaya hazır olduğunuzda, bir arama istemcisi gerekir. Arama istemcisi Azure portalı, REST istemcisi veya dizin oluşturucu istemcisi örneği oluşturan kod olabilir. Erken geliştirme ve kavram kanıtı testi için Azure portalını veya REST API'lerini öneririz.
Arama hizmetine Genel Bakış sayfasında iki seçenek arasından seçim yapın:
Verileri içeri aktarma sihirbazı: Sihirbaz, gerekli tüm öğeleri oluşturduğundan benzersizdir. Diğer yaklaşımlar için önceden tanımlanmış bir veri kaynağı ve dizin gerekir.
Dizin oluşturucu ekleme: Dizin oluşturucu tanımını belirtmek için bir görsel düzenleyici.
Dizin oluşturucuyu çalıştırma
Varsayılan olarak, bir dizin oluşturucu arama hizmetinde oluşturduğunuzda hemen çalışır. Dizin oluşturucu tanımında true olarak ayarlayarak disabled
bu davranışı geçersiz kılabilirsiniz. Dizin oluşturucu yürütmesi, bağlantılar, alan eşlemeleri veya beceri kümesi oluşturma ile ilgili sorunlar olup olmadığını bulacağınız gerçek anıdır.
Dizin oluşturucuyu çalıştırmanın birkaç yolu vardır:
Dizin oluşturucu oluşturma veya güncelleştirme (varsayılan) üzerinde çalıştırın.
Tanımda değişiklik olmadığında isteğe bağlı olarak çalıştırın veya tam dizin oluşturma için sıfırlamadan önce. Daha fazla bilgi için bkz . Dizin oluşturucuları çalıştırma veya sıfırlama.
Düzenli aralıklarla yürütmeyi çağırmak için dizin oluşturucu işlemeyi zamanlayın.
Zamanlanmış yürütme genellikle en son değişiklikleri alabilmeniz için artımlı dizin oluşturma gereksiniminiz olduğunda uygulanır. Bu nedenle zamanlamanın değişiklik algılamaya bağımlılığı vardır.
Dizin oluşturucular, diğer Azure kaynaklarına fazla giden çağrılar yapan birkaç alt sistemden biridir. Azure rolleri açısından dizin oluşturucuların ayrı kimlikleri yoktur; arama altyapısından başka bir Azure kaynağına bağlantı, bir arama hizmetinin sistem veya kullanıcı tarafından atanan yönetilen kimliği kullanılarak yapılır. Dizin oluşturucu sanal ağdaki bir Azure kaynağına bağlanıyorsa, bu bağlantı için paylaşılan bir özel bağlantı oluşturmanız gerekir. Güvenli bağlantılar hakkında daha fazla bilgi için bkz . Azure AI Search'te güvenlik.
Sonuçları denetleme
Durumu denetlemek için dizin oluşturucu durumunu izleyin. Başarılı yürütme yine de uyarı ve bildirimler içerebilir. İşle ilgili ayrıntılar için hem başarılı hem de başarısız durum bildirimlerini denetlemeyi unutmayın.
İçerik doğrulaması için doldurulan dizinde tüm belgeleri veya seçili alanları döndüren sorgular çalıştırın.
Değişiklik algılama ve iç durum
Veri kaynağınız değişiklik algılamayı destekliyorsa, dizin oluşturucu verilerdeki temel değişiklikleri algılayabilir ve her dizin oluşturucu çalıştırmasında yalnızca yeni veya güncelleştirilmiş belgeleri işleyebilir ve değişmemiş içeriği olduğu gibi bırakabilir. Dizin oluşturucu yürütme geçmişi, 0/0 belgeleri işlendiğinde bir çalıştırmanın başarılı olduğunu belirtiyorsa, dizin oluşturucu temel alınan veri kaynağında yeni veya değiştirilmiş satır veya blob bulamadı anlamına gelir.
Değişiklik algılama mantığı veri platformlarına yerleşik olarak eklenir. Dizin oluşturucu değişiklik algılamayı nasıl destekler veri kaynağına göre değişir:
Azure Depolama yerleşik değişiklik algılama özelliğine sahiptir. Bu, dizin oluşturucuların yeni ve güncelleştirilmiş belgeleri otomatik olarak tanıyabileceği anlamına gelir. Blob Depolama, Azure Tablo Depolama ve Azure Data Lake Storage 2. Nesil her blob veya satır güncelleştirmesini tarih ve saatle damgalar. Dizin oluşturucu, dizinde hangi belgelerin güncelleştirileceğini belirlemek için otomatik olarak bu bilgileri kullanır. Silme algılama hakkında daha fazla bilgi için bkz . Azure Depolama için dizin oluşturucuları kullanarak algılamayı değiştirme ve silme.
Bulut veritabanı teknolojileri, platformlarında isteğe bağlı değişiklik algılama özellikleri sağlar. Bu veri kaynakları için değişiklik algılama otomatik değildir. Veri kaynağı tanımında hangi ilkenin kullanılacağını belirtmeniz gerekir:
Dizin oluşturucular, veri kaynağından işlediği son belgeyi iç yüksek su işaretiyle izler. İşaretleyici API'de hiçbir zaman gösterilmez, ancak dizin oluşturucu dahili olarak nerede durduğunu izler. Dizin oluşturucu, zamanlanmış bir çalıştırma veya isteğe bağlı çağrı aracılığıyla devam ederken, kaldığı yerden devam edebilmesi için yüksek su işaretine başvurur.
Tam olarak yeniden dizine almak için yüksek su işaretini temizlemeniz gerekiyorsa Dizin Oluşturucuyu Sıfırla'yı kullanabilirsiniz. Daha seçmeli yeniden dizinleme için Becerileri Sıfırla veya Belgeleri Sıfırla'yı kullanın. Sıfırlama API'leri aracılığıyla iç durumu temizleyebilir ve artımlı zenginleştirmeyi etkinleştirdiyseniz önbelleği temizleyebilirsiniz. Her sıfırlama seçeneğinin daha fazla arka planı ve karşılaştırması için bkz . Dizin oluşturucuları, becerileri ve belgeleri çalıştırma veya sıfırlama.