Aracılığıyla paylaş


Azure AI Search'te vektörleri ve tam metni kullanarak karma arama

Karma arama, hem tam metin hem de vektör sorguları için yapılandırılmış tek bir sorgu isteğidir. Aranabilir, düz metin içeriği ve oluşturulan eklemeler içeren bir arama dizininde çalışır. Sorgu amacıyla karma arama:

  • search ve vectors sorgu parametrelerini içeren tek bir sorgu isteğidir.
  • Tam metin arama ve vektör aramalarını paralel olarak çalıştırır.
  • Karşılıklı Rank Fusion (RRF) kullanarak her sorgudan sonuçları birleştirir.

Bu makalede karma aramanın kavramları, avantajları ve sınırlamaları açıklanmaktadır. Sonundaki bağlantılar kullanım yönergelerini ve sonraki adımları sağlar. Karma alma işleminin yüksek kaliteli üretken arama uygulamalarına nasıl katkıda bulunabileceğine ilişkin bir açıklama için ekli videoyu da izleyebilirsiniz.

Karma arama, vektör aramasının güçlü yanlarını ve anahtar sözcük aramasını birleştirir. Vektör aramasının avantajı, ters dizinde anahtar sözcük eşleşmeleri olmasa bile arama sorgunuza kavramsal olarak benzer bilgileri bulmaktır. Anahtar kelime veya tam metin aramasının avantajı, isteğe bağlı semantik sıralama uygulayarak ilk sonuçların kalitesini artırma imkanının yanı sıra hassasiyettir. Ürün kodları, son derece özelleştirilmiş jargon, tarihler ve kişilerin adları üzerinden sorgulama gibi bazı senaryolar, tam eşleşmeleri tanımlayabildiği için anahtar sözcük aramasıyla daha iyi performans gösterir.

Gerçek dünya ve karşılaştırma veri kümelerinde karşılaştırma testi, anlam dereceli karma alma özelliğinin arama ilgisinde önemli avantajlar sağladığını gösterir.

Aşağıdaki videoda karma alma işleminin yararlı yapay zeka yanıtları oluşturmak için size en uygun topraklama verilerini nasıl sağladığı açıklanmaktadır.

Karma arama nasıl çalışır?

Arama dizininde, ekleme içeren vektör alanları metin ve sayısal alanlarla birlikte bulunur. Aynı anda yürütülen karma sorguları formüle edebilirsiniz. Karma sorgular, tek bir arama isteğindeki vektörlere karşı benzerlik araması yürütürken, metin alanlarınızda filtreleme, yüz tanıma, sıralama, puanlama profilleri ve anlam sıralaması gibi mevcut metin tabanlı işlevlerden yararlanmaktadır.

Karma arama, metin için BM25 gibi farklı sıralama işlevlerini kullanan tam metin ve vektör sorgularının sonuçlarını ve vektörler için Hiyerarşik Gezinilebilir Küçük Dünya (HNSW) ve kapsamlı K En Yakın Komşular (eKNN) işlevlerini kullanır. RRF algoritması sonuçları birleştirir. Sorgu yanıtı, birleşik sonuçları sıralamak için RRF kullanarak yalnızca bir sonuç kümesi sağlar.

Karma sorgunun yapısı

Karma arama, düz metin ve sayılar, jeo-uzamsal arama istiyorsanız coğrafi koordinatlar ve metin öbeklerini matematiksel olarak temsil eden vektörler gibi çeşitli veri türlerinde alanlar içeren bir arama dizinine dayanır. Otomatik tamamlama ve öneriler gibi saf metin istemci tarafı etkileşimleri dışında, Azure AI Search'teki neredeyse tüm sorgu özelliklerini vektör sorgusuyla kullanabilirsiniz.

Temsili bir karma sorgu aşağıdaki gibi görünebilir. Kısa olması için vektör sorgularının yer tutucu değerleri vardır.

POST https://{{searchServiceName}}.search.windows.net/indexes/hotels-vector-quickstart/docs/search?api-version=2025-09-01
content-type: application/JSON

{
    "count": true,
    "search": "historic hotel walk to restaurants and shopping",
    "select": "HotelId, HotelName, Category, Description, Address/City, Address/StateProvince",
    "filter": "geo.distance(Location, geography'POINT(-77.03241 38.90166)') le 300",
    "vectorFilterMode": "postFilter",
    "facets": [ "Address/StateProvince"], 
    "vectorQueries": [
        {
            "kind": "vector",
            "vector": [ <array of embeddings> ]
            "k": 50,
            "fields": "DescriptionVector",
            "exhaustive": true,
            "oversampling": 20
        },
        {
            "kind": "vector",
            "vector": [ <array of embeddings> ]
            "k": 50,
            "fields": "Description_frVector",
            "exhaustive": false,
            "oversampling": 10
        }
    ],
    "skip": 0,
    "top": 10,
    "queryType": "semantic",
    "queryLanguage": "en-us",
    "semanticConfiguration": "my-semantic-config"
}

Önemli noktalar:

  • search tek bir tam metin arama sorgusu belirtir.
  • vectorQueries birden çok vektör alanını hedefleyen, birden çok olabilecek vektör sorgularını belirtir. Ekleme alanı çok dilli içerik içeriyorsa vektör sorguları, dil çözümleyicileri veya çeviri gerektirmeden eşleşmeyi bulabilir. Anlamsal sıralayıcı kullanıyorsanız, girdilerini en üst düzeye çıkarmak için k değerini 50 olarak ayarlayın.
  • select sonuçlarda döndürülecek alanları belirtir. Bu alanları kullanıcılara gösteriyorsanız veya büyük bir dil modeline (LLM) gönderiyorsanız, bu alanlar insan tarafından okunabilir metin alanları olmalıdır.
  • filters park yeri dahil olup olmadığı gibi jeo-uzamsal arama veya diğer dahil etme ve dışlama ölçütlerini belirtebilir. Bu örnekteki jeo-uzamsal sorgu, Washington D.C.'nin 300 kilometre yarıçapındaki otelleri bulur. Filtreyi sorgu işlemenin başına veya sonuna uygulayabilirsiniz. Anlam dereceleyicisi kullanıyorsanız, son adım olarak muhtemelen filtreleme sonrası kullanmak istersiniz, ancak sorgularınız için hangi davranışın en iyi olduğunu onaylamak için test etmelisiniz.
  • facets karma sorgulardan döndürülen sonuçlar üzerinde model demetlerini hesaplamak için kullanılabilir.
  • queryType=semantic daha ilgili arama sonuçlarını sağlamak amacıyla makine okuma kavramasını uygulayarak anlamsal sıralayıcıyı çağırır. Anlamsal derecelendirme isteğe bağlıdır. Bu özelliği kullanmıyorsanız karma sorgunun son üç satırını kaldırın.

Filtreler ve modeller, dizin içinde tam metin araması için kullanılan ters dizinlerden ve vektör araması için kullanılan vektör dizinlerinden ayrı olan veri yapılarını hedefler. Bu nedenle, filtreler ve modellenmiş işlemler yürütürken, arama altyapısı işlem sonucunu yanıttaki karma arama sonuçlarına uygulayabilir.

Sorguda hiçbir şey olmadığına orderby dikkat edin. Açık sıralama düzenleri, ilgili dereceli sonuçları geçersiz kılar, bu nedenle benzerlik ve BM25 ilgisi istiyorsanız sorgunuzda sıralamayı atlayın.

Sorgudan gelen bir yanıt aşağıdaki JSON gibi görünebilir.

{
    "@odata.count": 3,
    "@search.facets": {
        "Address/StateProvince": [
            {
                "count": 1,
                "value": "NY"
            },
            {
                "count": 1,
                "value": "VA"
            }
        ]
    },
    "value": [
        {
            "@search.score": 0.03333333507180214,
            "@search.rerankerScore": 2.5229012966156006,
            "HotelId": "49",
            "HotelName": "Swirling Currents Hotel",
            "Description": "Spacious rooms, glamorous suites and residences, rooftop pool, walking access to shopping, dining, entertainment and the city center.",
            "Category": "Luxury",
            "Address": {
                "City": "Arlington",
                "StateProvince": "VA"
            }
        },
        {
            "@search.score": 0.032522473484277725,
            "@search.rerankerScore": 2.111117362976074,
            "HotelId": "48",
            "HotelName": "Nordick's Valley Motel",
            "Description": "Only 90 miles (about 2 hours) from the nation's capital and nearby most everything the historic valley has to offer.  Hiking? Wine Tasting? Exploring the caverns?  It's all nearby and we have specially priced packages to help make our B&B your home base for fun while visiting the valley.",
            "Category": "Boutique",
            "Address": {
                "City": "Washington D.C.",
                "StateProvince": null
            }
        }
    ]
}