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.
Azure Yapay Zeka Arama'da vector dizininiz varsa, bu makalede şunların nasıl yapılacağını açıklanmaktadır:
Bu makalede çizim için REST kullanılır. Temel iş akışını anladıktan sonra, vektör sorguları içeren uçtan uca çözümler sağlayan azure-search-vector-samples deposundaki Azure SDK kod örnekleriyle devam edin.
Azure portalında Search Explorer da kullanabilirsiniz.
Önkoşullar
Herhangi bir bölgede ve herhangi bir katmanda Azure Yapay Zeka Arama hizmeti.
Vektör dizini. Varlığını onaylamak için dizininizdeki bir
vectorSearchbölümü denetleyin.İsteğe bağlı olarak, sorgular sırasında yerleşik metinden vektöre veya görüntüden vektöre dönüştürme için dizininize bir vektörleştirici ekleyin .
Visual Studio Code ve REST istemcisi, ayrıca bu örnekleri kendi başınıza çalıştırmak istiyorsanız örnek veriler. REST istemcisini kullanmaya başlamak için bkz . Hızlı Başlangıç: REST kullanarak tam metin arama.
Sorgu dizesi girişini vektöre dönüştürme
Vektör alanını sorgulamak için sorgunun kendisi bir vektör olmalıdır.
Kullanıcının metin sorgu dizesini vektör gösterimine dönüştürmeye yönelik bir yaklaşım, uygulama kodunuzda bir ekleme kitaplığını veya API'yi çağırmaktır. En iyi yöntem olarak, her zaman kaynak belgelere ekleme oluşturmak için kullanılan aynı ekleme modellerini kullanın. Gömme oluşturmanın nasıl yapılacağını gösteren kod örneklerini azure-search-vector-samples deposunda bulabilirsiniz.
İkinci yaklaşım ise artık genel olarak kullanılabilir olan tümleşik vektörleştirmeyi kullanarak, Azure AI Arama'nın sorgu vektörleştirme girişlerinizi ve çıkışlarınızı işlemesine olanak tanımaktır.
Aşağıda, Azure OpenAI ekleme modelinin dağıtımına gönderilen sorgu dizesinin REST API örneği verilmiştir:
POST https://{{openai-service-name}}.openai.azure.com/openai/deployments/{{openai-deployment-name}}/embeddings?api-version={{openai-api-version}}
Content-Type: application/json
api-key: {{admin-api-key}}
{
"input": "what azure services support generative AI'"
}
Dağıtılan modele başarılı bir çağrı için beklenen yanıt 202'dir.
Yanıtın embedding gövdesindeki alan, sorgu dizesinin inputvektör gösterimidir. Test amacıyla, sonraki birkaç bölümde gösterilen söz dizimini kullanarak dizinin embedding değerini bir sorgu isteğinde vectorQueries.vector içine kopyalayabilirsiniz.
Dağıtılan modele yapılan bu POST çağrısının gerçek yanıtı 1.536 ekleme içerir. Okunabilirlik için bu örnekte yalnızca ilk birkaç vektör gösterilir.
{
"object": "list",
"data": [
{
"object": "embedding",
"index": 0,
"embedding": [
-0.009171937,
0.018715322,
...
-0.0016804502
]
}
],
"model": "ada",
"usage": {
"prompt_tokens": 7,
"total_tokens": 7
}
}
Bu yaklaşımda uygulama kodunuz bir modele bağlanmak, eklemeler oluşturmak ve yanıtı işlemekle sorumludur.
Vektör sorgu isteği
Bu bölümde vektör sorgusunun temel yapısı gösterilmektedir. Vektör sorgusunu formüle etmek için Azure portalını, REST API'lerini veya Azure SDK’ları kullanabilirsiniz.
2023-07-01-preview sürümünden geçiş yapıyorsanız, önemli değişiklikler vardır. Daha fazla bilgi için bkz. En son REST API'ye yükseltme.
Kararlı sürüm aşağıdakileri destekler:
-
vectorQueries, vektör araması için yapıdır. -
vectorQueries.kindvectorbir vektör dizisi için veyatextgirişin bir dize olup olmadığını ve vektörleştiriciniz olup olmadığını olarak ayarlayın. -
vectorQueries.vectorsorgudur (metin veya görüntünün vektör gösterimi). -
vectorQueries.exhaustive(isteğe bağlı) alan HNSW için dizinlenmiş olsa bile sorgu zamanında kapsamlı KNN'yi çağırır. -
vectorQueries.fields(isteğe bağlı) sorgu yürütme için belirli alanları hedefler (sorgu başına en fazla 10). -
vectorQueries.weight(isteğe bağlı) arama işlemlerine dahil edilen her vektör sorgusunun göreli ağırlığını belirtir. Daha fazla bilgi için bkz . Vektör ağırlığı. -
vectorQueries.kdöndürülecek eşleşme sayısıdır.
Aşağıdaki örnekte vektör şu dizenin bir gösterimidir: "what Azure services support full text search". Sorgu contentVector alanını hedefler ve k sonuçlar döndürür. Gerçek vektör, okunabilirlik için bu örnekte kırpılan 1.536 eklemeye sahiptir.
POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/search?api-version=2026-04-01
Content-Type: application/json
api-key: {{admin-api-key}}
{
"count": true,
"select": "title, content, category",
"vectorQueries": [
{
"kind": "vector",
"vector": [
-0.009154141,
0.018708462,
. . .
-0.02178128,
-0.00086512347
],
"exhaustive": true,
"fields": "contentVector",
"weight": 0.5,
"k": 5
}
]
}
Vektör sorgusu yanıtı
Azure Yapay Zeka Arama sorgu yanıtları varsayılan olarak tüm retrievable alanlarından oluşur. Ancak, arama sonuçlarını bir deyimde listeleyerek alanların bir alt kümesiyle retrievable sınırlamak yaygın bir select durumdır.
Vektör sorgusunda, yanıttaki alanları vektöre almanız gerekip gerekmediğini dikkatle göz önünde bulundurun. Vektör alanları insan tarafından okunamaz, bu nedenle bir web sayfasına yanıt gönderirken sonucu temsil eden seçici olmayan alanları seçmeniz gerekir. Örneğin, sorgu contentVector üzerinde yürütülürse, yerine content döndürebilirsiniz.
Sonuçta vektör alanlarının olmasını istiyorsanız, yanıt yapısına bir örnek aşağıda verilmiştır.
contentVector , bu örnekte okunabilirlik için kırpılan bir ekleme dizesi dizisidir. Arama puanı ilgi düzeyini gösterir. Bağlam için diğer nonvector alanları dahil edilir.
{
"@odata.count": 3,
"value": [
{
"@search.score": 0.80025613,
"title": "Azure Search",
"category": "AI + Machine Learning",
"contentVector": [
-0.0018343845,
0.017952163,
0.0025753193,
...
]
},
{
"@search.score": 0.78856903,
"title": "Azure Application Insights",
"category": "Management + Governance",
"contentVector": [
-0.016821077,
0.0037742127,
0.016136652,
...
]
},
{
"@search.score": 0.78650564,
"title": "Azure Media Services",
"category": "Media",
"contentVector": [
-0.025449317,
0.0038463024,
-0.02488436,
...
]
}
]
}
Önemli noktalar:
ken yakın kaç komşu sonucunun döndürüleceğini (bu örnekte üç) belirler. Vektör sorguları, bazı belgelerin benzerliği düşük olsa bile en azındankbelgelerin mevcut olduğunu varsayarak her zaman sonuç döndürürk. Bunun nedeni, algoritmanınksorgu vektörüne en yakın komşuları bulmasıdır.Vektör arama algoritması öğesini
@search.scorebelirler.Arama sonuçlarındaki alanlar, ya
retrievablealanlarının tümü ya da birselecttümcesindeki alanlardır. Vektör sorgu yürütmesi sırasında, yalnızca vektör verilerinde eşleştirme yapılır. Ancak, yanıt bir dizindeki herhangiretrievablebir alanı içerebilir. Vektör alanı sonucunun kodunu çözme olanağı olmadığından, nonvector metin alanlarının eklenmesi, insan tarafından okunabilen değerleri için yararlıdır.
Birden çok vektör alanı
özelliğini birden çok vektör alanına ayarlayabilirsiniz vectorQueries.fields . Vektör sorgusu, listede sağladığınız fields her vektör alanında yürütülür. En fazla 10 alan belirtebilirsiniz.
Birden çok vektör alanını sorgularken, her birinin aynı ekleme modelinden eklemeler içerdiğinden emin olun. Sorgu aynı ekleme modelinden de oluşturulmalıdır.
POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/search?api-version=2026-04-01
Content-Type: application/json
api-key: {{admin-api-key}}
{
"count": true,
"select": "title, content, category",
"vectorQueries": [
{
"kind": "vector",
"vector": [
-0.009154141,
0.018708462,
. . .
-0.02178128,
-0.00086512347
],
"exhaustive": true,
"fields": "contentVector, titleVector",
"k": 5
}
]
}
Birden çok vektör sorgusu
Çok sorgulu vektör araması, arama dizininizdeki birden çok vektör alanında birden çok sorgu gönderir. Bu sorgu türü, aynı modelin hem metni hem de resimleri vektörleştirebildiği çok modüllü arama için CLIP gibi modellerde yaygın olarak kullanılır.
Aşağıdaki sorgu örneği, hem myImageVector hem de myTextVector'de benzerlik ararken, her biri paralel olarak çalışan iki ilgili sorgu gömme işlemi gönderir. Bu sorgunun sonucu karşılıklı rank fusion (RRF) kullanılarak puanlanır.
-
vectorQueriesbir dizi vektör sorgusu sağlar. -
vectorarama dizinindeki görüntü vektörlerini ve metin vektörlerini içerir. Her örnek ayrı bir sorgudur. -
fieldshedeflenen vektör alanını belirtir. -
ksonuçlara dahil etmek için en yakın komşu eşleşmelerinin sayısıdır.
{
"count": true,
"select": "title, content, category",
"vectorQueries": [
{
"kind": "vector",
"vector": [
-0.009154141,
0.018708462,
. . .
-0.02178128,
-0.00086512347
],
"fields": "myimagevector",
"k": 5
},
{
"kind": "vector"
"vector": [
-0.002222222,
0.018708462,
-0.013770515,
. . .
],
"fields": "mytextvector",
"k": 5
}
]
}
Arama dizinleri görüntüleri depolayamaz. Dizininizin görüntü dosyası için bir alan içerdiği varsayıldığında, arama sonuçları metin ve görüntülerin bir bileşimini içerir.
Tümleşik vektörleştirme ile sorgulama
Bu bölümde, bir metin veya görüntü sorgusunu vektöre dönüştürmek için tümleşik vektörleştirmeyi çağıran bir vektör sorgusu gösterilir. Bu özellik için kararlı 2026-04-01 REST API, Arama Gezgini veya daha yeni Azure SDK paketleri öneririz.
Önkoşul, vektörleştirici yapılandırılmış ve bir vektör alanına atanmış bir arama dizinidir. Vektörleştirici, sorgu zamanında kullanılan bir ekleme modeline bağlantı bilgileri sağlar.
Arama Gezgini, sorgu zamanında tümleşik vektörleştirmeyi destekler. Dizininiz vektör alanları içeriyorsa ve vektörleştiricisi varsa, yerleşik metinden vektöre dönüştürmeyi kullanabilirsiniz.
Azure portalında arama hizmetinize gidin.
Sol menüden Arama yönetimi>Dizinleri'ni ve ardından dizininizi seçin.
Vektörleştiriciniz olduğunu onaylamak için Vektör profilleri sekmesini seçin.
Arama gezgini sekmesini seçin. Varsayılan sorgu görünümünü kullanarak arama çubuğuna bir metin dizesi girebilirsiniz. Yerleşik vektörleştiricisi dizenizi bir vektöre dönüştürür, aramayı gerçekleştirir ve sonuçları döndürür.
Alternatif olarak, sorguyu görüntülemek veya değiştirmek içinJSON görünümünü> seçebilirsiniz. Vektörler varsa, Arama Gezgini otomatik olarak bir vektör sorgusu ayarlar. Arama ve yanıtta kullanılacak alanları seçmek, filtreler eklemek ve karma sorgular gibi daha gelişmiş sorgular oluşturmak için JSON görünümünü kullanabilirsiniz. JSON örneğini görmek için bu bölümdeki REST API sekmesini seçin.
Vektör sorgusu yanıtında dereceli sonuç sayısı
Vektör sorgusu, sonuçlarda k kaç eşleşme döndürüleceğini belirleyen parametresini belirtir. Arama motoru her zaman k eşleşme sayısını döndürür. Dizindeki belge sayısından büyükse k , belge sayısı döndürülebileceklerin üst sınırını belirler.
Tam metin araması hakkında bilginiz varsa, dizinde terim veya tümcecik yoksa sıfır sonuç beklemeniz gerekir. Ancak vektör aramasında, arama işlemi en yakın komşuları tanımlar ve en yakın komşular bu kadar benzer olmasa bile her zaman sonuç döndürür k . Özellikle sınırları ayarlamak için istem kullanmıyorsanız, önemli olmayan veya konu dışı sorgular için sonuçlar alabilirsiniz. Daha az ilgili sonuçlar daha kötü bir benzerlik puanına sahiptir, ancak daha yakın bir şey yoksa yine de "en yakın" vektörlerdir. Bu nedenle, anlamlı sonuç içermeyen bir yanıt yine de sonuç döndürebilir k , ancak her sonucun benzerlik puanı düşük olacaktır.
Tam metin araması içeren karma bir yaklaşım bu sorunu hafifletebilir. Bir diğer çözüm de, yalnızca sorgu tek bir vektör sorgusuysa arama puanında en düşük eşiği ayarlamaktır. Karma sorgular en düşük eşiklere uygun değildir çünkü RRF aralıkları çok daha küçük ve daha geçicidir.
Sonuç sayısını etkileyen sorgu parametreleri şunlardır:
-
"k": nyalnızca vektör sorguları için sonuçlar. -
"top": nbir parametre içerensearchkarma sorgular için sonuçlar.
Hem k hem de top isteğe bağlıdır. Belirtilmediğinde, yanıttaki varsayılan sonuç sayısı 50'dir.
top ve skip daha fazla sonuç arasında sayfalamak veya varsayılanı değiştirmek için ayarlayabilirsiniz.
Vektör sorgusunda kullanılan derecelendirme algoritmaları
Sonuçların derecelendirmesi aşağıdakilerden biri tarafından hesaplanır:
- Benzerlik ölçümü.
- Birden çok arama sonucu kümesi varsa RRF.
Benzerlik ölçümü
Yalnızca vektör sorgusu için dizin vectorSearch bölümünde belirtilen benzerlik ölçümü. Geçerli değerler : cosine, euclideanve dotProduct.
Azure OpenAI ekleme modellerinde kosinüs benzerliği kullanılır, bu nedenle Azure OpenAI ekleme modelleri kullanıyorsanız önerilen ölçüm cosine'dir. Desteklenen diğer derecelendirme ölçümleri şunlardır euclidean : ve dotProduct.
RRF
Sorgu birden çok vektör alanını hedeflediyse, birden çok vektör sorgusunu paralel olarak çalıştırıyorsa veya anlamsal derecelendirmeyle veya sıralama olmadan vektör ve tam metin aramasının karmasıysa birden çok küme oluşturulur.
Sorgu yürütme sırasında vektör sorgusu yalnızca bir iç vektör dizinini hedefleyebilir. Birden çok vektör alanı ve birden çok vektör sorgusu için, arama altyapısı her alanın ilgili vektör dizinlerini hedefleyen birden çok sorgu oluşturur. Çıkış, her sorgu için RRF kullanılarak birleştirilmiş dereceli sonuçlar kümesidir. Daha fazla bilgi için bkz Reciprocal Rank Fusion kullanarak ilgi puanlama.
Vektör ağırlıklama
Arama işlemlerine dahil edilen her vektör sorgusunun göreli kalınlığını belirtmek için bir weight sorgu parametresi ekleyin. Bu değer, aynı istekte veya karma sorgunun vektör bölümünden iki veya daha fazla vektör sorgusu tarafından oluşturulan birden çok derecelendirme listesinin sonuçları birleştirildiğinde kullanılır.
Varsayılan değer 1,0'dır ve değer sıfırdan büyük pozitif bir sayı olmalıdır.
Ağırlıklar, her belgenin RRF puanları hesaplanırken kullanılır. Hesaplama, ilgili sonuç kümesindeki belgenin weight derecelendirme puanıyla değerin çarpanıdır.
Aşağıdaki örnek, iki vektör sorgu dizesi ve bir metin dizesi içeren karma sorgudur. Ağırlıklar vektör sorgularına atanır. İlk sorgu, 0,5 veya ağırlığın yarısı kadar olduğundan, istekteki önemini azaltır. İkinci vektör sorgusu iki kat daha önemlidir.
POST https://[service-name].search.windows.net/indexes/[index-name]/docs/search?api-version=2026-04-01
{
"vectorQueries": [
{
"kind": "vector",
"vector": [1.0, 2.0, 3.0],
"fields": "my_first_vector_field",
"k": 10,
"weight": 0.5
},
{
"kind": "vector",
"vector": [4.0, 5.0, 6.0],
"fields": "my_second_vector_field",
"k": 10,
"weight": 2.0
}
],
"search": "hello world"
}
Vektör ağırlıklama yalnızca vektörler için geçerlidir. Bu örnekteki "hello world"metin sorgusunun örtük nötr ağırlığı 1,0'dır. Ancak, karma sorguda maxTextRecallSize ayarını yaparak metin alanlarının önemini artırabilir veya azaltabilirsiniz.
Düşük puanlama sonuçlarını dışlamak için eşikleri ayarlama (önizleme)
En yakın komşu araması her zaman istenen k komşuları döndürdüğünden, arama sonuçlarındaki k sayı gereksinimini karşılamak için birden çok düşük puanlı eşleşme elde edilebilir. Düşük puanlı arama sonuçlarını dışlamak için, sonuçları en düşük puana göre filtreleyen bir threshold sorgu parametresi ekleyebilirsiniz. Filtreleme, farklı geri çağırma kümelerinden sonuçların birleştirilmesinden önce gerçekleşir.
Bu parametre önizleme aşamasındadır. Belgeler - Arama Gönderisi'nin (REST API) en son önizleme sürümünü öneririz.
Bu örnekte, 0,8'in altındaki tüm eşleşmeler, sonuç sayısı altına kdüşse bile vektör arama sonuçlarından dışlanır.
POST https://[service-name].search.windows.net/indexes/[index-name]/docs/search?api-version=2026-08-01-preview
Content-Type: application/json
api-key: [admin key]
{
"vectorQueries": [
{
"kind": "vector",
"vector": [1.0, 2.0, 3.0],
"fields": "my-cosine-field",
"threshold": {
"kind": "vectorSimilarity",
"value": 0.8
}
}
]
}
Sonraki adımlar
Sonraki adım olarak Python, C# veya JavaScript içindeki vektör sorgu kodu örneklerini gözden geçirin.