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.
Not
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.
Important
(önizleme) olarak işaretlenen özellikler, özellikler veya özellikler hizmet düzeyi sözleşmesi kapsamında değildir, üretim iş yükleri için önerilmez ve genel kullanıma sunulmadan önce değişebilir veya kısıtlanabilir. Azure Yapay Zeka Arama önizleme terimleri, tek başına veya genel kullanıma sunulan bir özelliğin parçası olsun, tüm önizleme işlevleri için geçerlidir.
Azure Yapay Zeka Arama'daki çok vektörlü alan desteği özelliği (önizleme), tek bir belge alanı içinde birden çok alt vektör dizini oluşturmanızı sağlar. Bu özellik, içeriğin tek bir vektörle temsil edilmesi önemli ayrıntıların kaybolmasına yol açabileceği çok modüllü veriler veya uzun biçimli belgeler gibi kullanım örnekleri için değerlidir.
Sınırlama
- Anlam dereceleyicisi, karmaşık bir alan içindeki iç içe yerleştirilmiş öbekler için desteklenmez. Bu nedenle, anlam dereceleyicisi çok vektörlü alanlarda iç içe vektörleri desteklemez.
Çok vektörlü alan desteğini anlama
Geleneksel olarak, örneğin Collection(Edm.Single) vektör türleri yalnızca üst düzey alanlarda kullanılabilir. Çok vektörlü alan desteğinin kullanıma sunulmasıyla birlikte, artık karmaşık koleksiyonların iç içe yerleştirilmiş alanlarında vektör türlerini kullanabilir ve tek bir belgeyle birden çok vektörun ilişkilendirilmesine etkili bir şekilde izin vekleyebilirsiniz.
Tek bir belge, tüm karmaşık koleksiyon alanlarında toplamda en fazla 100 vektör içerebilir. Vektör alanları yalnızca bir düzey derinlikte iç içe yerleştirilebilir.
Çok vektörlü alan içeren dizin tanımı
Bu özellik için yeni dizin özellikleri gerekmez. Aşağıda örnek bir dizin tanımı verilmişti:
{
"name": "multivector-index",
"fields": [
{
"name": "id",
"type": "Edm.String",
"key": true,
"searchable": true
},
{
"name": "title",
"type": "Edm.String",
"searchable": true
},
{
"name": "description",
"type": "Edm.String",
"searchable": true
},
{
"name": "descriptionEmbedding",
"type": "Collection(Edm.Single)",
"dimensions": 3,
"searchable": true,
"retrievable": true,
"vectorSearchProfile": "hnsw"
},
{
"name": "scenes",
"type": "Collection(Edm.ComplexType)",
"fields": [
{
"name": "embedding",
"type": "Collection(Edm.Single)",
"dimensions": 3,
"searchable": true,
"retrievable": true,
"vectorSearchProfile": "hnsw"
},
{
"name": "timestamp",
"type": "Edm.Int32",
"retrievable": true
},
{
"name": "description",
"type": "Edm.String",
"searchable": true,
"retrievable": true
},
{
"name": "framePath",
"type": "Edm.String",
"retrievable": true
}
]
}
]
}
Örnek veri alma belgesi
Uygulamada çok vektörlü alanları nasıl kullanabileceğinizi gösteren örnek bir belge aşağıda verilmiştir:
{
"id": "123",
"title": "Non-Existent Movie",
"description": "A fictional movie for demonstration purposes.",
"descriptionEmbedding": [1, 2, 3],
"releaseDate": "2025-08-01",
"scenes": [
{
"embedding": [4, 5, 6],
"timestamp": 120,
"description": "A character is introduced.",
"framePath": "nonexistentmovie\\scenes\\scene120.png"
},
{
"embedding": [7, 8, 9],
"timestamp": 2400,
"description": "The climax of the movie.",
"framePath": "nonexistentmovie\\scenes\\scene2400.png"
}
]
}
Bu örnekte sahne alanı, diğer ilişkili verilerle birlikte birden çok vektör (ekleme alanları) içeren karmaşık bir koleksiyondur. Her vektör, filmdeki bir sahneyi temsil eder ve diğer olası kullanım örnekleriyle birlikte diğer filmlerde benzer sahneleri bulmak için kullanılabilir.
Çok vektörlü alan desteğine sahip sorgu
Çok vektörlü alan desteği özelliği, Azure Yapay Zeka Arama'daki sorgu mekanizmasında bazı değişiklikler sağlar. Ancak, ana sorgulama işlemi büyük ölçüde aynı kalır.
Daha önce, vectorQueries yalnızca üst düzey dizin alanları olarak tanımlanan vektör alanlarını hedefleyebilseydik. Bu özellik ile bu kısıtlamayı kaldırıyor ve vectorQueries'in karmaşık türlerden oluşan bir koleksiyonda, bir seviye derinliğine kadar iç içe yerleştirilmiş alanları hedeflemesine izin veriyoruz.
Ayrıca, yeni bir sorgu süresi parametresi kullanılabilir: perDocumentVectorLimit.
-
perDocumentVectorLimitdeğerinin1olarak ayarlanması, belge başına en fazla bir vektör eşleşmesini sağlayarak, sonuçların farklı belgelerden gelmesini garantiler. -
perDocumentVectorLimit'yi0(sınırsız) olarak ayarlamak, aynı belgedeki birden çok ilgili vektörün eşleştirilmesine olanak tanır.
{
"vectorQueries": [
{
"kind": "text",
"text": "whales swimming",
"K": 50,
"fields": "scenes/embedding",
"perDocumentVectorLimit": 0
}
],
"select": "title, scenes/timestamp, scenes/framePath"
}
Tek bir alanda birden çok vektör arasında sıralama
Tek bir belgeyle birden çok vektör ilişkilendirildiğinde, Azure Yapay Zeka Arama sıralama için aralarındaki en yüksek puanı kullanır. Sistem, her belgeyi puanlamada en uygun vektörü kullanır ve bu da daha az ilgili olanlar tarafından seyreltilmesini önler.
Koleksiyondaki ilgili öğeleri alma
Parametreye karmaşık türlerden oluşan bir koleksiyon eklendiğinde $select , yalnızca vektör sorgusuyla eşleşen öğeler döndürülür. Bu, zaman damgaları, metin açıklamaları veya görüntü yolları gibi ilişkili meta verileri almak için kullanışlıdır.
Not
Yük boyutunu küçültmek için, vektör değerlerinin kendisini parametresine $select eklemekten kaçının. Gereksizse vektör depolamayı tamamen atmayı göz önünde bulundurun.
Çok vektörlü sorgularda hata ayıklama (önizleme)
Bir belgede farklı alt alanlara metin ve görüntü ekleme gibi birden çok eklenmiş vektör bulunduğunda, sistem belgeyi sıralamak için tüm öğeler arasında en yüksek vektör puanını kullanır.
Her vektörün katkısını ayıklamak için innerHits hata ayıklama modunu kullanın (en son önizleme REST API'sinde kullanılabilir).
POST /indexes/my-index/docs/search?api-version=2026-08-01-preview
{
"vectorQueries": [
{
"kind": "vector",
"field": "keyframes.imageEmbedding",
"kNearestNeighborsCount": 5,
"vector": [ /* query vector */ ]
}
],
"debug": "innerHits"
}
Örnek yanıt şekli
"@search.documentDebugInfo": {
"innerHits": {
"keyframes": [
{
"ordinal": 0,
"vectors": [
{
"imageEmbedding": {
"searchScore": 0.958,
"vectorSimilarity": 0.956
},
"textEmbedding": {
"searchScore": 0.958,
"vectorSimilarity": 0.956
}
}
]
},
{
"ordinal": 1,
"vectors": [
{
"imageEmbedding": null,
"textEmbedding": {
"searchScore": 0.872,
"vectorSimilarity": 0.869
}
}
]
}
]
}
}
Alan açıklamaları
| Alan | Açıklama |
|---|---|
ordinal |
Koleksiyonun içindeki öğesinin sıfır tabanlı dizini. |
vectors |
öğesinde bulunan aranabilir vektör alanı başına bir giriş. |
searchScore |
Herhangi bir yeniden puanlama ve yükseltmeden sonra bu alanın son puanı. |
vectorSimilarity |
Uzaklık işlevi tarafından döndürülen ham benzerlik. |
Not
innerHits şu anda yalnızca vektör alanlarını raporlar.
debug=vector ile ilişki
Bu özellik hakkında bazı bilgiler şunlardır:
Mevcut
debug=vectoranahtar değişmeden kalır.Çok vektörlü alanlarla kullanıldığında,
@search.documentDebugInfo.vector.subscoreüst belgeyi sıralamak için kullanılan en yüksek puanı gösterir, ancak öğe başına ayrıntıyı göstermez.Tek tek öğelerin puana nasıl katkıda bulunduğuna ilişkin içgörü elde etmek için kullanın
innerHits.