Dizin Oluşturucu Oluşturma (Azure AI Arama REST API'si)

Dizin oluşturucu, Azure Depolama, Azure SQL Veritabanı ve Azure Cosmos DB gibi desteklenen Azure veri kaynaklarından dizin oluşturmayı otomatikleştirir. Dizin oluşturucular, kaynak verileri ayıklayan ve seri hale getiren ve veri alımı için bir arama hizmetine geçiren bir dizin oluşturma işlem hattı oluşturmak için önceden tanımlanmış bir veri kaynağı ve dizin kullanır. Dizin oluşturucular, görüntü ve yapılandırılmamış metinlerin yapay zeka zenginleştirilmesi için yapay zeka işlemeyi tanımlayan bir beceri kümesini de kabul edebilir.

Dizin oluşturucu oluşturmak, bunu arama hizmetinize ekler ve çalıştırır. İstek başarılı olursa dizin, veri kaynağından aranabilir içerikle doldurulur.

İstekte POST veya PUT kullanabilirsiniz. Her ikisinde de, istek gövdesindeki JSON belgesi nesne tanımını sağlar.

POST https://[service name].search.windows.net/indexers?api-version=[api-version]
    Content-Type: application/json  
    api-key: [admin key]  

Alternatif olarak PUT kullanabilir ve URI'de dizin oluşturucu adını belirtebilirsiniz.

PUT https://[service name].search.windows.net/indexers/[indexer name]?api-version=[api-version]
    Content-Type: application/json  
    api-key: [admin key]    

Tüm hizmet istekleri için HTTPS gereklidir. Dizin oluşturucu yoksa oluşturulur. Zaten varsa, yeni tanıma güncelleştirilir, ancak dizin oluşturucunun yürütülmesini istiyorsanız bir Dizin Oluşturucu Çalıştır isteği göndermeniz gerekir.

Dizin oluşturucu yapılandırması, veri kaynağının türüne göre değişir. Dizin oluşturucu oluşturmaya yönelik veri platformuna özgü yönergeler için, ilgili makalelerin tam listesini içeren Dizin Oluşturuculara genel bakış ile başlayın.

URI Parametreleri

Parametre Açıklama
hizmet adı Gereklidir. Bunu arama hizmetinizin benzersiz, kullanıcı tanımlı adı olarak ayarlayın.
dizin oluşturucu adı PUT kullanılıyorsa URI'de gereklidir. Ad küçük harfli olmalı, harf veya sayıyla başlamalıdır, eğik çizgi veya nokta içermemelidir ve 128 karakterden az olmalıdır. adın bir harf veya sayı ile başlaması gerekir, ancak tireler ardışık olarak görünmediği sürece adın geri kalanı herhangi bir harf, sayı ve kısa çizgi içerebilir.
api-sürümü Gereklidir. Desteklenen sürümlerin listesi için bkz. API sürümleri.

İstek Üst Bilgileri

Aşağıdaki tabloda gerekli ve isteğe bağlı istek üst bilgileri açıklanmaktadır.

Alanlar Description
İçerik Türü Gereklidir. Bunu olarak ayarlayın application/json
api-key İsteğe bağlı olarak, Azure rollerini kullanıyorsanız ve istekte taşıyıcı belirteç sağlanırsa, aksi takdirde bir anahtar gereklidir. Oluşturma istekleri, yönetici anahtarınıza ayarlanmış bir api-key üst bilgi içermelidir (sorgu anahtarının aksine). Ayrıntılar için bkz. Anahtar kimlik doğrulamasını kullanarak Azure AI Search'e bağlanma .

İstek Gövdesi

Veri kaynağı, dizin ve beceri kümesi bir dizin oluşturucu tanımının parçasıdır, ancak her biri farklı birleşimlerde kullanılabilecek bağımsız bir bileşendir. Örneğin, aynı veri kaynağını birden çok dizin oluşturucuyla, aynı dizini birden çok dizin oluşturucuyla veya tek bir dizine yazan birden çok dizin oluşturucuyla kullanabilirsiniz.

Aşağıdaki JSON, tanımın ana bölümlerinin üst düzey bir gösterimidir.

{   
    "name" : (optional on PUT; required on POST) "Name of the indexer",  
    "description" : (optional) "Anything you want, or nothing at all", 
    "dataSourceName" : (required) "Name of an existing data source",  
    "targetIndexName" : (required) "Name of an existing index",  
    "skillsetName" : (required for AI enrichment) "Name of an existing skillset",
    "disabled" : (optional) Boolean value indicating whether the indexer is disabled. False by default,
    "schedule" : (optional but runs once immediately if unspecified) { ... },  
    "parameters": { (optional)
       "batchSize": null,
       "maxFailedItems": 0,
       "maxFailedItemsPerBatch": 0,
       "base64EncodeKeys": null,
       "configuration": { (optional, mostly specific to the data source)
            "executionEnvironment": null
        }
      }, 
    "fieldMappings" : (optional) { ... },
    "outputFieldMappings" : (required for AI enrichment) { ... },
    "encryptionKey":(optional) { }
} 

İstek aşağıdaki özellikleri içerir:

Özellik Açıklama
name Gereklidir. Ad küçük harfli olmalı, harf veya sayıyla başlamalıdır, eğik çizgi veya nokta içermemelidir ve 128 karakterden az olmalıdır. Ad bir harf veya sayı ile başlamalıdır, ancak tireler ardışık olmadığından adın geri kalanı herhangi bir harf, sayı ve kısa çizgi içerebilir.
dataSourceName Gereklidir. Mevcut bir veri kaynağının adı. Genellikle dizin oluşturucuların kaynak platform özelliklerinden yararlanmak için kullanabileceği özellikleri içerir. Bu nedenle dizin oluşturucuya geçirdiğiniz veri kaynağı, Azure bloblarında içerik türü filtreleme gibi belirli özelliklerin ve parametrelerin kullanılabilirliğini belirler. veya Azure SQL Veritabanı için sorgu zaman aşımı.
targetIndexName Gereklidir. Mevcut dizin şemasının adı. Alanın nasıl kullanıldığını belirleyen aranabilir, filtrelenebilir, alınabilir ve diğer atıfları içeren alanlar koleksiyonunu tanımlar. Dizin oluşturma sırasında dizin oluşturucu veri kaynağında gezinir, isteğe bağlı olarak belgeleri kırıp bilgileri ayıklar, sonuçları JSON'a seri hale getirir ve yükü dizininiz için tanımlanan şemaya göre dizinler.
skillsetName Yapay zeka zenginleştirmesi için gereklidir. Dizin oluşturucu başına bir tane olan mevcut beceri kümesinin adı. Veri kaynakları ve dizinlerde olduğu gibi beceri kümesi de dizin oluşturucuya eklediğiniz bağımsız bir tanımdır. Beceri kümesini diğer dizin oluşturucularla yeniden kullanabilirsiniz, ancak her dizin oluşturucu aynı anda yalnızca bir beceri kümesi kullanabilir.
schedule İsteğe bağlı, ancak belirtilmemişse ve devre dışı bırakılmadıysa hemen bir kez çalışır. Zamanlama (gerekli) ve startTime (isteğe bağlı) içerir interval . Daha fazla bilgi için bkz. Dizin oluşturucu zamanlama.

interval dizin oluşturucunun ne sıklıkta çalıştığını belirtir. İzin verilen en küçük aralık beş dakikadır; En uzun bir gündür. XSD "dayTimeDuration" değeri ( ISO 8601 süre değerinin kısıtlanmış bir alt kümesi) olarak biçimlendirilmelidir. Bunun deseni şu şekildedir: "P[nD][T[nH][nM]]". Örnekler: PT15M 15 dakikada bir, PT2H 2 saatte bir.

startTime , dizin oluşturucunun çalışmaya başlaması gereken UTC tarih saatidir.
devre dışı İsteğe bağlı. Dizin oluşturucunun devre dışı bırakılıp bırakılmadığını gösteren Boole değeri. Hemen çalıştırmadan bir dizin oluşturucu tanımı oluşturmak istiyorsanız bu özelliği ayarlayın. Varsayılan olarak false.
parameters İsteğe bağlı. Çalışma zamanı davranışını değiştirme özellikleri.

"batchSize" (tamsayı). Performansı artırmak için veri kaynağından okunan ve tek bir toplu iş olarak dizine alınan öğelerin sayısını belirtir. Varsayılan değer kaynağa özgüdür (Azure SQL Veritabanı ve Azure Cosmos DB için 1000, Azure Blob Depolama için 10).

"maxFailedItems" (tamsayı). Dizin oluşturucu çalıştırmasının hata olarak kabul edilmesinden önce tolere edilmesi gereken hata sayısını belirtir. Varsayılan değer 0'dır. Dizin oluşturma işleminin herhangi bir hata tarafından durdurulmasını istemiyorsanız -1 olarak ayarlayın. Başarısız belgeler hakkındaki bilgileri almak için Dizin Oluşturucu Durumunu Al'ı kullanın.

"maxFailedItemsPerBatch" (tamsayı). Bir dizin oluşturucu çalıştırması hata olarak kabul edilmeden önce her toplu işlemde tolere edilmesi gereken hata sayısını belirtir. Varsayılan değer 0'dır. Dizin oluşturma işleminin herhangi bir hata tarafından durdurulmasını istemiyorsanız -1 olarak ayarlayın.

"base64EncodeKey" (Boole). Geçersiz karakterler içeren belge anahtarlarının kodlanıp kodlanmayacağını belirtir.

"configuration". Veri kaynağına göre değişen özellikler.

"executionEnvironment" (dize). İç sistem işlemleri tarafından seçilen yürütme ortamını geçersiz kılar. Dizin oluşturucular özel uç nokta bağlantıları üzerinden dış kaynaklara Private erişiyorsa, yürütme ortamını açıkça olarak olarak ayarlamak gerekir. Bu ayar altındadır "configuration". Veri alımı için bu ayar yalnızca Temel veya Standart (S1, S2, S3) olarak sağlanan hizmetler için geçerlidir. Yapay zeka zenginleştirme içerik işleme için bu ayar yalnızca S2 ve S3 için geçerlidir. Geçerli değerler büyük/küçük harfe duyarlı değildir ve [null veya belirtilmemiş], Standard (varsayılan) veya Privatedeğerlerinden oluşur.
fieldMappings İsteğe bağlı. Bir kaynak alanı arama dizinindeki hedef alanla açıkça ilişkilendirir. Kaynak ve hedef alanların adları veya türleri farklı olduğunda veya bir işlev belirtmek istediğinizde kullanılır. BölümfieldMappings, (gerekli, temel alınan veri kaynağındaki bir alan), targetFieldName (gerekli, dizindeki bir alan) ve kodlama çıkışı için isteğe bağlı mappingFunction bir alan içerir sourceFieldName . Desteklenen işlevlerin ve örneklerin listesi alan eşleme işlevlerinde bulunabilir. Daha fazla genel bilgi için bkz . Alan eşlemeleri ve dönüştürmeleri.
outputFieldMappings Zenginleştirme işlem hattı için gereklidir. Bir beceri kümesinden dizine veya projeksiyona çıktıyı eşler. Bir outputFieldMappings bölüm (gerekli, zenginleştirme ağacındaki bir düğüm), targetFieldName (gerekli, dizindeki bir alan) ve kodlama çıkışı için isteğe bağlı mappingFunction bir alan içerir sourceFieldName . Desteklenen işlevlerin ve örneklerin listesi alan eşleme işlevlerinde bulunabilir. Daha fazla genel bilgi için bkz. Beceri kümesinden çıkış alanlarını eşleme.
encryptionKey İsteğe bağlı. Azure Key Vault yönetilen, bekleyen bir dizin oluşturucu tanımını kendi anahtarlarınızla şifrelemek için kullanılır. 2019-01-01 veya sonrasında oluşturulan faturalanabilir arama hizmetleri için kullanılabilir.

Bir encryptionKey bölüm kullanıcı tanımlı keyVaultKeyName (gerekli), sistem tarafından oluşturulan keyVaultKeyVersion (gerekli) ve anahtarı sağlayan bir keyVaultUri (DNS adı olarak da adlandırılır) içerir. Örnek bir URI"https://my-keyvault-name.vault.azure.net".

İsteğe bağlı olarak, yönetilen bir sistem kimliği kullanmadığınızda belirtebilirsiniz accessCredentials . accessCredentials özellikleri şunlardır applicationId (belirtilen Azure Key Vault erişim izinleri verilmiş Microsoft Entra ID uygulama kimliği) ve applicationSecret (kayıtlı uygulamanın kimlik doğrulama anahtarı). Sonraki bölümdeki bir örnekte söz dizimi gösterilmektedir.

Blob yapılandırma parametreleri

Azure blob dizin oluşturma gibi bazı parametreler belirli bir dizin oluşturucuya özeldir.

Parametre Tür ve izin verilen değerler Kullanım
"parsingMode" Dize
"text"
"delimitedText"
"json"
"jsonArray"
"jsonLines"
Azure blobları için, blob depolamadaki düz metin dosyalarında dizin oluşturma performansını geliştirmek için olarak ayarlayıntext.
CSV blobları için bloblar düz CSV dosyaları olduğunda olarak ayarlayındelimitedText.
JSON blobları için, yapılandırılmış içeriği ayıklamak json veya jsonArray bir dizinin tek tek öğelerini Azure AI Search'te ayrı belgeler olarak ayıklamak için olarak ayarlayın. Azure AI Search'te ayrı belgeler olarak yeni bir satırla ayrılmış tek tek JSON varlıklarını ayıklamak için kullanın jsonLines .
"excludedFileNameExtensions" Dize
virgülle ayrılmış liste
kullanıcı tanımlı
Azure blobları için listedeki tüm dosya türlerini yoksayın. Örneğin, dizin oluşturma sırasında bu dosyaların üzerinden atlamak için ".png, .png, .mp4" hariç tutabilirsiniz.
"indexedFileNameExtensions" Dize
virgülle ayrılmış liste
kullanıcı tanımlı
Azure blobları için, dosya uzantısı listedeyse blobları seçer. Örneğin, özellikle bu dosya türlerini dahil etmek için ".docx, .pptx, .msg" belirli uygulama dosyalarına dizin oluşturmayı odaklayabilirsiniz.
"failOnUnsupportedContentType" Boole
true
false (varsayılan)
Azure blobları için, desteklenmeyen bir içerik türüyle karşılaşıldığında dizine eklemeye devam etmek istiyorsanız olarak ayarlayın false ve tüm içerik türlerini (dosya uzantıları) önceden bilmiyorsunuz.
"failOnUnprocessableDocument" Boole
true
false (varsayılan)
Azure blobları için, bir belge dizin oluşturmada başarısız olursa dizine eklemeye devam etmek istiyorsanız olarak ayarlayınfalse.
"indexStorageMetadataOnly
ForOversizedDocuments"
Boolean true
false (varsayılan)
Azure blobları için bu özelliğitrue, işlenemeyecek kadar büyük olan blob içeriği için depolama meta verilerini dizine almaya devam etmek üzere olarak ayarlayın. Büyük boyutlu bloblar varsayılan olarak hata olarak kabul edilir. Blob boyutuyla ilgili sınırlar için bkz. Hizmet Sınırları.
"delimitedTextHeaders" Dize
virgülle ayrılmış liste
kullanıcı tanımlı
CSV blobları için, kaynak alanları bir dizindeki hedef alanlara eşlemek için yararlı olan, virgülle ayrılmış sütun başlıkları listesini belirtir.
"delimitedTextDelimiter" Dize
tek karakter
kullanıcı tanımlı
CSV blobları için, her satırın yeni bir belge başlattığı CSV dosyaları için satır sonu sınırlayıcısını belirtir (örneğin, "|").
"firstLineContainsHeaders" Boole
true (varsayılan)
yanlış
CSV blobları için, her blobun ilk (boş olmayan) satırının üst bilgiler içerdiğini gösterir.
"documentRoot" Dize
kullanıcı tanımlı yol
Yapılandırılmış veya yarı yapılandırılmış bir belge verilip JSON dizileri için bu özelliği kullanarak dizinin yolunu belirtebilirsiniz.
"dataToExtract" Dize
"storageMetadata"
"allMetadata"
"contentAndMetadata" (varsayılan)
Azure blobları için:
"storageMetadata" yalnızca standart blob özelliklerini ve kullanıcı tarafından belirtilen meta verileri dizine almak için olarak ayarlayın.
Azure blob depolama alt sistemi tarafından sağlanan meta verileri ayıklamak "allMetadata" için olarak ayarlanır ve içerik türüne özgü meta veriler (örneğin, yalnızca .png dosyalara özgü meta veriler) dizine alınır.
Her blobdan tüm meta verileri ve metin içeriğini ayıklamak için "contentAndMetadata" olarak ayarlayın.

Yapay zeka zenginleştirmesinde görüntü analizi için ayarı "imageAction" dışında "none""dataToExtract" bir değere ayarlandığında dizin oluşturucuya görüntü içeriğinden hangi verilerin ayıklanacağı bildirilir. Azure bloblarındaki .PDF veya başka bir uygulamadaki ekli görüntü içeriği ya da .jpg ve .png gibi görüntü dosyaları için geçerlidir.
"imageAction" Dize
"none"
"generateNormalizedImages"
"generateNormalizedImagePerPage"
Azure blobları için, veri kümesindeki ekli görüntüleri veya görüntü dosyalarını yoksaymak için"none" olarak ayarlayın. Bu varsayılan seçenektir.

Yapay zeka zenginleştirmesinde görüntü analizi için, görüntülerden metin ayıklamak"generateNormalizedImages" için olarak ayarlayın (örneğin, trafik Durdurma işaretinden "durdur" sözcüğü) ve içerik alanının bir parçası olarak ekleyin. Görüntü analizi sırasında dizin oluşturucu, belgeyi kırma işleminin bir parçası olarak bir dizi normalleştirilmiş görüntü oluşturur ve oluşturulan bilgileri içerik alanına ekler. Bu eylem, olarak "dataToExtract" ayarlanmasını "contentAndMetadata"gerektirir. Normalleştirilmiş görüntü, görsel arama sonuçlarına görüntü eklediğinizde tutarlı işlemeyi yükseltmek için boyutlandırılmış ve döndürülmüş tekdüzen görüntü çıkışıyla sonuçlanan ek işlemeyi ifade eder (örneğin, JFK tanıtımında görüldüğü gibi graf denetimindeki aynı boyutlu fotoğraflar). Bu seçenek kullanıldığında her görüntü için bu bilgiler oluşturulur.

olarak "generateNormalizedImagePerPage"ayarlarsanız, PDF dosyaları ekli görüntüleri ayıklamak yerine farklı şekilde işlenir, her sayfa bir görüntü olarak işlenir ve buna göre normalleştirilir. Bu sayfa başına işlemin değerinden çok daha "generateNormalizedImages"uzun sürmesi beklenir. PDF olmayan dosya türleri, ayarlanmış gibi "generateNormalizedImages" kabul edilir.

Yapılandırmayı "imageAction" dışında bir değere "none" ayarlamak için bir beceri kümesinin de bu dizin oluşturucuya eklenmesi gerekir ve tasarım gereği düşük performanslı bir işlem olabilir.
"normalizedImageMaxWidth"
"normalizedImageMaxHeight"
50-10000 arasındaki herhangi bir tamsayı ayarlandığında oluşturulan "imageAction" normalleştirilmiş görüntüler için sırasıyla en yüksek genişlik veya yükseklik (piksel cinsinden). Varsayılan değer 2000’dir.

Normalleştirilmiş görüntüler için varsayılan 2000 piksel maksimum genişlik ve yükseklik , OCR becerisi ve görüntü analizi becerisi tarafından desteklenen maksimum boyutlara bağlıdır. OCR becerisi, İngilizce olmayan diller için en fazla 4200, İngilizce için 10000 genişlik ve yükseklik destekler. Maksimum sınırları artırırsanız, beceri kümesi tanımınıza ve belgelerin diline bağlı olarak daha büyük görüntülerde işleme başarısız olabilir.
"allowSkillsetToReadFileData" Boole
true
false (varsayılan)
parametresini "allowSkillsetToReadFileData" olarak true ayarlamak, blob veri kaynağınızdan indirilen özgün dosya verilerini temsil eden bir nesne olan bir yol /document/file_data oluşturur. Bu, özgün dosya verilerini zenginleştirme işlem hattı içinde işlenmek üzere özel bir beceriye veya Belge Ayıklama becerisine geçirmenizi sağlar. Oluşturulan nesne aşağıdaki gibi tanımlanır: { "$type": "file", "data": "BASE64 encoded string of the file" }

parametresinin "allowSkillsetToReadFileData" olarak true ayarlanması, bir beceri kümesinin bu dizin oluşturucuya eklenmesini ve parametresinin "parsingMode" veya "text""json"olarak "default"ayarlanmasını gerektirir.
"pdfTextRotationAlgorithm" Dize
"none" (varsayılan)
"detectAngles"
parametresinin "pdfTextRotationAlgorithm" olarak "detectAngles" ayarlanması, içinde döndürülmüş metin bulunan PDF dosyalarından daha iyi ve daha okunabilir metin ayıklamaya yardımcı olabilir. Bu parametre kullanıldığında küçük bir performans cezası olabileceğini unutmayın. Bu parametre yalnızca PDF dosyaları için ve yalnızca eklenmiş metin içeren PDF'ler için geçerlidir. Döndürülen metin PDF'deki eklenmiş bir görüntünün içinde görünüyorsa, bu parametre geçerli değildir.

parametresinin "pdfTextRotationAlgorithm" olarak "detectAngles" ayarlanması, parametresinin "parsingMode" olarak ayarlanmasını "default"gerektirir.

Azure Cosmos DB yapılandırma parametreleri

Aşağıdaki parametreler Cosmos DB dizin oluşturucularına özeldir.

Parametre Tür ve izin verilen değerler Kullanım
"assumeOrderByHighWaterMarkColumn" Boole SQL API'sine sahip Cosmos DB dizin oluşturucuları için bu parametreyi Cosmos DB'ye dizin oluşturma belgelerini döndürmek için kullanılan sorgunun aslında sütuna göre sıralandığına _ts dair bir ipucu sağlayacak şekilde ayarlayın. Bu parametreyi ayarlamak , artımlı dizin oluşturma senaryoları için daha iyi sonuçlar verir.

yapılandırma parametrelerini Azure SQL

Aşağıdaki parametreler Azure SQL Veritabanına özeldir.

Parametre Tür ve izin verilen değerler Kullanım
"queryTimeout" Dize
"ss:mm:ss"
"00:05:00"
Azure SQL Veritabanı için, zaman aşımını varsayılan 5 dakikanın ötesine yükseltmek için bu parametreyi ayarlayın.
"convertHighWaterMarkToRowVersion" Boole Yüksek su işareti sütunu için rowversion veri türünü kullanmak için bu parametreyi "true" olarak ayarlayın. Bu özellik true olarak ayarlandığında dizin oluşturucu, dizin oluşturucu çalışmadan önce rowversion değerinden bir tane çıkarır. Bire çok birleştirmeleri olan görünümlerde yinelenen rowversion değerlerine sahip satırlar olabileceği için bunu yapar. Birini çıkarmak, dizin oluşturucu sorgusunun bu satırları kaçırmamasını sağlar.
"disableOrderByHighWaterMarkColumn" Boole Değişiklik algılama için kullanılan sorguda ORDER BY davranışını devre dışı bırakmak istiyorsanız bu parametreyi "true" olarak ayarlayın. Yüksek su işareti değişiklik algılama ilkesini kullanıyorsanız, dizin oluşturucu hangi satırların dizine (WHERE [High Water Mark Column] > [Current High Water Mark Value] ORDER BY [High Water Mark Column]) ihtiyacı olduğunu izlemek için WHERE ve ORDER BY yan tümcelerini kullanır. Bu parametre ORDER BY davranışını devre dışı bırakır. Dizin oluşturma daha hızlı tamamlanır, ancak herhangi bir nedenle dizin oluşturucu kesintiye uğrarsa dizin oluşturucu işinin tamamının tekrarlanması gerekir.

Yanıt

201 Başarılı bir istek için oluşturuldu.

Örnekler

Örnek: Zamanlama ve genel parametreleri olan dizin oluşturucu

1 Ocak 2021 UTC'de başlayan ve saatlik olarak çalışan bir zamanlamaya göre veri kaynağı tarafından ordersds başvuruda bulunan tablodan orders dizine veri kopyalayan bir dizin oluşturucu oluşturur. Her toplu işlemde 5'ten fazla öğe dizine alınamazsa ve toplamda 10'dan fazla öğe dizine alınamazsa her dizin oluşturucu çağrısı başarılı olur.

{
    "name" : "myindexer",  
    "description" : "a cool indexer",  
    "dataSourceName" : "ordersds",  
    "targetIndexName" : "orders",  
    "schedule" : { "interval" : "PT1H", "startTime" : "2021-01-01T00:00:00Z" },  
    "parameters" : { "maxFailedItems" : 10, "maxFailedItemsPerBatch" : 5 }  
}

Not

Dizin oluşturucu belirli bir zamanlamaya ayarlanmışsa ancak her çalıştığında aynı belge üzerinde tekrar tekrar başarısız olursa, dizin oluşturucu yeniden başarılı bir şekilde ilerleme kaydedene kadar daha az sıklıkta (en az 24 saatte bir en fazla bir kez) çalışmaya başlar. Dizin oluşturucunun belirli bir noktada takılmasına neden olan sorunu düzelttiğinizi düşünüyorsanız, dizin oluşturucunun bir sıfırlamasını ve ardından isteğe bağlı çalıştırmasını gerçekleştirebilirsiniz ve bu başarılı bir şekilde ilerleme kaydederse, dizin oluşturucu ayarlanan zamanlama aralığına yeniden döner.

Örnek: Blob parametreleriyle dizin oluşturucu

Dizin oluşturucu isteğe bağlı olarak çalışma zamanı davranışlarını değiştiren yapılandırma parametrelerini alabilir. Yapılandırma parametreleri dizin oluşturucu isteğinde virgülle ayrılmıştır ve bir veri kaynağı türüne özeldir. Aşağıdaki yapılandırma parametreleri blobların dizinini oluşturmak için kullanılan yönergeleri sağlar.

  {
    "name" : "my-blob-indexer-for-cognitive-search",
    ... other indexer properties
    "parameters" : 
      { 
      "maxFailedItems" : "15", 
      "batchSize" : "100", 
      "configuration" : 
          { 
          "parsingMode" : "json", 
          "indexedFileNameExtensions" : ".json, .jpg, .png",
          "imageAction" : "generateNormalizedImages",
          "dataToExtract" : "contentAndMetadata" ,
          "executionEnvironment": "Standard"
          } 
      }
  }

Örnek: Alan eşlemeleri olan dizin oluşturucu

Kaynak tablonun alanını _id arama dizinindeki bir "id" alanla eşleyin. Azure AI Search, alan adının alt çizgiyle başlamasına izin vermez. Alan eşlemesi ad tutarsızlıklarını çözebilir. Hem kaynak hem de hedef alan adları büyük/küçük harfe duyarlı değildir. Daha fazla bilgi için bkz . Alan eşlemeleri ve dönüştürmeleri.

"fieldMappings" : [
    { "sourceFieldName" : "_id", "targetFieldName" : "id" },
    { "sourceFieldName" : "_timestamp", "targetFieldName" : "timestamp" }
]

Örnek: Yapay zeka zenginleştirmesi ile dizin oluşturucu

ve outputFieldMappingsbaşvurusuyla gösterilen yapay skillset zeka zenginleştirmesini gösterir. Beceri kümeleri , ayrı olarak tanımlanan üst düzey kaynaklardır. Bu örnek, yapay zeka zenginleştirme öğreticisindeki dizin oluşturucu tanımının kısaltmasıdır.

{
  "name":"demoindexer",	
  "dataSourceName" : "demodata",
  "targetIndexName" : "demoindex",
  "skillsetName" : "demoskillset",
  "fieldMappings" : [
    {
        "sourceFieldName" : "content",
        "targetFieldName" : "content"
    }
   ],
  "outputFieldMappings" : 
  [
    {
        "sourceFieldName" : "/document/organizations", 
        "targetFieldName" : "organizations"
    },
  ],
  "parameters":
  {
  	"maxFailedItems":-1,
  	"configuration": 
    {
    "dataToExtract": "contentAndMetadata",
    "imageAction": "generateNormalizedImages"
    }
  }
}

Örnek: Beceri kümesi ve çıkış alanı eşlemeleri olan dizin oluşturucu

Beceri kümesinin bir dizin oluşturucuya bağlı olduğu yapay zeka zenginleştirme senaryolarında, dizindeki aranabilir bir alana içerik sağlayan bir zenginleştirme adımının çıktısını ilişkilendirmek için öğesini eklemeniz outputFieldMappings gerekir. sourceFieldName zenginleştirme ağacındaki bir düğümdür. Kaynak belgedeki iki ayrı alandan zenginleştirme sırasında oluşturulmuş bir bileşik yapı olabilir. targetFieldName, arama dizinindeki bir alandır. Daha fazla bilgi için bkz. Beceri kümesinden çıkış alanlarını eşleme.

"outputFieldMappings" : [
      {
        "sourceFieldName" : "/document/organizations", 
        "targetFieldName" : "organizations"
      },
      {
        "sourceFieldName" : "/document/pages/*/keyPhrases/*", 
        "targetFieldName" : "keyphrases"
      },
      {
          "sourceFieldName": "/document/languageCode",
          "targetFieldName": "language",
          "mappingFunction": null
      }      
  ]

Örnek: Şifreleme anahtarları

Şifreleme anahtarları, ek şifreleme için kullanılan müşteri tarafından yönetilen anahtarlardır. Daha fazla bilgi için bkz. Azure Key Vault'da müşteri tarafından yönetilen anahtarları kullanarak şifreleme.

{
    "name" : "myindexer",  
    "description" : "a cool indexer",  
    "dataSourceName" : "ordersds",  
    "targetIndexName" : "orders",  
    "schedule" : { "interval" : "PT1H", "startTime" : "2021-01-01T00:00:00Z" },  
    "parameters" : { "maxFailedItems" : 10, "maxFailedItemsPerBatch" : 5 },
    "encryptionKey": (optional) { 
      "keyVaultKeyName": "Name of the Azure Key Vault key used for encryption",
      "keyVaultKeyVersion": "Version of the Azure Key Vault key",
      "keyVaultUri": "URI of Azure Key Vault, also referred to as DNS name, that provides the key. An example URI might be https://my-keyvault-name.vault.azure.net",
      "accessCredentials": (optional, only if not using managed system identity) {
        "applicationId": "Microsoft Entra ID application ID that was granted access permissions to your specified Azure Key Vault",
        "applicationSecret": "Authentication key of the registered application)"}
      }
}

Ayrıca bkz.