Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uyarı
Azure Yapay Zeka Arama Azure portalı, REST API'leri ve Azure SDK’ları aracılığıyla kullanılabilir. Ayrıca kuruluş içeriğini Microsoft Foundry portalındaki aracılar için yeniden kullanılabilir, izin kullanan bilgi bankalarına dönüştüren yönetilen bilgi katmanı Foundry IQ'yu temel alır.
Şunlar için geçerlidir: Blob dizin oluşturucuları, Dosya dizin oluşturucuları (önizleme)
Varsayılan olarak, dizin oluşturucu bir blobun veya dosyanın içeriğini tek bir arama belgesi olarak ele alır. Arama dizininde daha ayrıntılı bir gösterim istiyorsanız, bir blob veya dosyadan birden çok arama belgesi oluşturmak için parsingMode değerlerini ayarlayabilirsiniz. Birçok arama belgesine neden olan parsingMode değerleri şunlardır delimitedText : (CSV için) jsonArray veya jsonLines (JSON için) ya da markdownoneToMany için alt mod.
Bu ayrıştırma modlarından herhangi birini kullandığınızda, ortaya çıkan yeni arama belgelerinin benzersiz belge anahtarları olmalıdır ve bu değerin nereden geldiğini belirlemede bir sorun ortaya çıkar. Ana blob'un biçiminde metadata_storage_path property en az bir benzersiz değeri vardır, ancak bu değeri birden fazla arama belgesine katkıda bulunuyorsa anahtar, dizinde artık benzersiz değildir.
Bu sorunu gidermek için blob dizin oluşturucu, tek bir blob üst öğesinden oluşturulan her bir alt arama belgesini benzersiz şekilde tanımlayan bir AzureSearch_DocumentKey oluşturur. Bu makalede bu özelliğin nasıl çalıştığı açıklanmaktadır.
Bire çok belge anahtarı
Belge anahtarı, bir dizindeki her belgeyi benzersiz olarak tanımlar. Ayrıştırma modu belirtilmediğinde ve arama belgesi anahtarı için dizin oluşturucu tanımında açık alan eşlemesi yoksa, blob dizin oluşturucu, metadata_storage_path property'yi belge anahtarı olarak otomatik şekilde eşler. Bu varsayılan eşleme, her blob'un ayrı bir arama belgesi olarak görünmesini sağlar. Ayrıca bu alan eşlemesini el ile oluşturma gereksinimini ortadan kaldırır. Normalde, otomatik olarak eşlenen tek alanlar aynı adlara ve türlere sahip alanlardır.
Bire-çok arama-belgesi senaryosunda, metadata_storage_path property'e dayalı örtük bir belge anahtarı mümkün değildir. Geçici bir çözüm olarak, Azure Yapay Zeka Arama bir blobdan ayıklanan her bir varlık için bir belge anahtarı oluşturabilir. Sistem adlı AzureSearch_DocumentKey bir anahtar oluşturur ve her arama belgesine ekler. Dizin oluşturucu, her blobdan oluşturulan "çok sayıda belgeyi" izler ve kaynak veriler zaman içinde değiştiğinde arama dizinine yönelik güncelleştirmeleri hedefleyebilir.
Varsayılan olarak, anahtar dizini alanı için açık alan eşlemeleri belirtilmediğinde, AzureSearch_DocumentKey alan eşleme işlevi kullanılarak base64Encode öğesine eşlenir.
Example
Aşağıdaki alanlara sahip bir dizin tanımı varsayın:
idtemperaturepressuretimestamp
Blob kapsayıcınızda aşağıdaki yapıya sahip bloblar vardır:
Blob1.json
{ "temperature": 100, "pressure": 100, "timestamp": "2024-02-13T00:00:00Z" }
{ "temperature" : 33, "pressure" : 30, "timestamp": "2024-02-14T00:00:00Z" }
Blob2.json
{ "temperature": 1, "pressure": 1, "timestamp": "2023-01-12T00:00:00Z" }
{ "temperature" : 120, "pressure" : 3, "timestamp": "2022-05-11T00:00:00Z" }
Bir dizin oluşturucu oluşturduğunuzda ve anahtar alanı için açık alan eşlemeleri belirtmeden parsingModejsonLines değerini olarak ayarladığınızda, aşağıdaki eşleme örtük olarak uygulanır.
{
"sourceFieldName" : "AzureSearch_DocumentKey",
"targetFieldName": "id",
"mappingFunction": { "name" : "base64Encode" }
}
Bu kurulum, aşağıdaki çizime benzer şekilde belirsiz belge anahtarlarıyla sonuçlanır (base64 ile kodlanmış kimlik kısalmak üzere kısaltılmıştır).
| Kimlik | sıcaklık | basınç | Tarih damgası |
|---|---|---|---|
| aHR0 ... YjEuanNvbjsx | 100 | 100 | 2024-02-13T00:00:00Z |
| aHR0 ... YjEuanNvbjsy | 33 | 30 | 2024-02-14T00:00:00Z |
| aHR0 ... YjIuanNvbjsx | 1 | 1 | 2023-01-12 Saat 00:00:00 GMT |
| aHR0 ... YjIuanNvbjsy | 120 | 3 | 2022-05-11T00:00:00Z |
Dizin anahtarı alanı için özel alan eşlemesi
Önceki örnekle aynı dizin tanımını varsayarsak blob kapsayıcınızda aşağıdaki yapıya sahip bloblar olduğunu varsayalım:
Blob1.json
recordid, temperature, pressure, timestamp
1, 100, 100,"2024-02-13T00:00:00Z"
2, 33, 30,"2024-02-14T00:00:00Z"
Blob2.json
recordid, temperature, pressure, timestamp
1, 1, 1,"20123-01-12T00:00:00Z"
2, 120, 3,"2022-05-11T00:00:00Z"
delimitedText ile bir dizin oluşturucu oluşturduğunuzda, anahtar alanına aşağıdaki gibi bir alan eşleme işlevi ayarlamak doğal görünebilir:
{
"sourceFieldName" : "recordid",
"targetFieldName": "id"
}
Ancak bu eşleme, alan recordid benzersiz olmadığından dizinde dört belgenin gösterilmesine neden olmaz. Bu nedenle, "bire çok" ayrıştırma modları için AzureSearch_DocumentKey özelliğinden anahtar dizin alanına uygulanan örtük alan eşleştirmesini kullanmanızı öneririz.
Açık bir alan eşlemesi ayarlamak istiyorsanız sourceField değerinin tüm bloblardaki her bir varlık için ayrı olduğundan emin olun.
Uyarı
Ayıklanan varlık başına benzersizlik sağlamak amacıyla kullanılan AzureSearch_DocumentKey yaklaşımı değişebileceğinden, uygulamanızın ihtiyaçları için bu değere güvenmemeniz gerekir.
Verilerinizde dizin anahtarı alanını belirtin
Önceki örnek ve ayrıştırmaMode ile aynı dizin tanımının açık alan eşlemeleri belirtilmeden olarak ayarlandığını jsonLines ve dolayısıyla eşlemelerin ilk örnekteki gibi göründüğünü varsayarsak, blob kapsayıcınızda aşağıdaki yapıya sahip bloblar olduğunu varsayalım:
Blob1.json
id, temperature, pressure, timestamp
1, 100, 100,"2024-02-13T00:00:00Z"
2, 33, 30,"2024-02-14T00:00:00Z"
Blob2.json
id, temperature, pressure, timestamp
1, 1, 1,"2023-01-12T00:00:00Z"
2, 120, 3,"2022-05-11T00:00:00Z"
Her belge, id alanının dizindeki key alanı olarak tanımlandığı alanı içerir. Bu durumda sistem benzersiz bir AzureSearch_DocumentKeyfor the document, but it isn't used as the "key." Instead, the value of theidfield is mapped to theanahtarı alanı oluşturur.
Önceki örneğe benzer şekilde, alan id benzersiz olmadığından bu eşleme dizinde dört belgenin gösterilmesine neden olmaz. Bu durum oluştuğunda, id belirten herhangi bir JSON girdisi, yeni bir belge yüklemek yerine mevcut belgeyle birleştirilmesine neden olur. Dizin daha sonra belirtilen idile girdinin en son durumunu yansıtır.
Sınırlamalar
Dizindeki bir belge girdisi, bu makalede açıklandığı gibi bir dosyadaki bir satırdan oluşturulduğunda, bu satırın dosyadan silinmesi ilgili girdiyi dizinden otomatik olarak kaldırmaz. Belge girdisini silmek için REST API silme işlemini kullanarak dizine el ile silme isteği göndermeniz gerekir.
Sonraki Adımlar
Blob dizin oluşturmanın temel yapısı ve iş akışı hakkında bilgi sahibi değilseniz öncelikle Azure Yapay Zeka Arama ile Azure Blob Depolama Dizini Oluşturma bölümünü gözden geçirmeniz gerekir. Farklı blob içerik türleri için ayrıştırma modları hakkında daha fazla bilgi için aşağıdaki makaleleri gözden geçirin.