Azure AI Search'te dizin oluşturucu oluşturma

Azure AI Search'te veri içeri aktarmayı ve dizin oluşturmayı otomatikleştirmek için dizin oluşturucu kullanın. 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:

  • Metin tabanlı dizin oluşturma, tam metin arama senaryoları için metin içeriğinden dizeleri ve meta verileri ayıklayın.

  • Becerilere dayalı dizin oluşturma, resimler ve büyük farksız içerikler üzerinde analiz için tümleşik makine öğrenmesi ekleyen yerleşik veya özel becerileri kullanarak metin ve yapıyı ayıklama veya çıkarma. Beceri tabanlı dizin oluşturma, kolayca tam metin aranamayan içerikler üzerinde arama yapma olanağı sağlar. Daha fazla bilgi edinmek için bkz . Azure AI Search'te yapay zeka zenginleştirmesi.

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.

Önkoşullar

Dizin oluşturucu desenleri

Dizin oluşturucu oluşturduğunuzda tanım iki desenden biridir: metin tabanlı dizin oluşturma veya becerilerle yapay zeka zenginleştirme. Beceri tabanlı dizin oluşturmanın daha fazla tanımı olması dışında desenler aynıdır.

Metin tabanlı dizin oluşturma için dizin oluşturucu örneği

Tam metin araması için metin tabanlı dizin oluşturma, dizin oluşturucular için birincil kullanım örneğidir ve bu iş akışı için dizin oluşturucu bu örneğe benzer şekilde görünür.

{
  "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 bir özellik.
  • Veri "dataSourceName" kaynağı nesnesine işaret eden özellik. Dış verilere bir bağlantı belirtir.
  • "targetIndexName" Hedef arama dizinine işaret eden bir ö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, dosya uzantılarına 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

Dizin oluşturucular yapay zeka zenginleştirmesi de sağlar. Yukarıdaki özelliklerin ve parametrelerinin 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 AI Search'teki beceri kümeleri, Beceri kümesi oluşturma, Zenginleştirme çıktı 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 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 Her satırın dizinde tam veya kısmi arama belgesine dönüştüğü düzleştirilmiş bir satır kümesi olarak sağlayın.

İ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 metindir.
  • Filtrelenebilir veriler alfasayısaldır.

Azure AI Search, aranabilir içerik oluşturmak için görüntü dosyalarının metin açıklamalarını ayıklayıp çıkarsasa da (bkz . yapay zeka zenginleştirmesi) ikili veriler üzerinde herhangi bir biçimde arama yapamaz. 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.

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.

  1. Desteklenen bir veri kaynağı türü kullandığınızdan emin olun.

  2. Veri kaynağı tanımı oluşturun. Aşağıdaki liste, daha sık kullanılan veri kaynaklarından birkaçıdır:

  3. 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 yukarıdaki bağlantıları, dizin oluşturucular tarafından hangi değişiklik izleme yöntemlerinin desteklendiği açıklanmaktadır.

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).

  1. Arama dizini oluşturma ile başlayın.

  2. 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.

  3. 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.

  1. Azure Portal’ında oturum açın.

  2. Arama hizmetine Genel Bakış sayfasında iki seçenek arasından seçim yapın:

    • Veri içeri aktarma sihirbazı. Sihirbaz, gerekli tüm öğeleri oluşturduğu için benzersizdir. Diğer yaklaşımlar için önceden tanımlanmış bir veri kaynağı ve dizin gerekir.

    • Dizin oluşturucu tanımını belirtmek için bir görsel düzenleyici olan Yeni Dizin Oluşturucu.

    Aşağıdaki ekran görüntüsünde bu özellikleri portalda nerede bulabileceğiniz gösterilmektedir.

    hotels indexer

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:

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, işlenen belgelerle 0/0 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:

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.

Sonraki adımlar