Azure AI Search'te anlamsal sorgu oluşturma

Bu makalede, bir sonuç kümesi üzerinde semantik derecelendirme çağırmayı ve en semantik olarak ilgili sonuçları yığının en üstüne yükseltmeyi öğrenin. Ayrıca en ilgili terimler ve tümcecikler üzerinde vurgular ve anlamsal yanıtlar içeren anlamsal başlık alabilirsiniz.

Önkoşullar

Not

Açıklamalı alt yazılar ve yanıtlar, arama belgesindeki metinden ayrıntılı olarak ayıklanır. Anlam alt sistemi, bir başlık veya yanıtın özelliklerine sahip içeriği tanımak için makine okuma kavramasını kullanır, ancak yeni cümleler veya tümcecikler oluşturmaz. Bu nedenle, anlam derecelendirmesi için en iyi sonucu veren açıklamalar veya tanımlar içeren içeriktir. Oluşturulan yanıtlarla sohbet stili etkileşim istiyorsanız bkz . Artırılmış Oluşturma (RAG) Alma.

İstemci seçme

Anlam sıralamasını destekleyen bir arama istemcisi seçin. Aşağıda bazı seçenekleri görebilirsiniz:

İlgi puanlamayı atlayan özelliklerden kaçının

Azure AI Search'teki çeşitli sorgu özellikleri ilgi puanlamasını atlar veya anlamsal derecelendirmeyle uyumlu değildir. Sorgu mantığınız aşağıdaki özellikleri içeriyorsa sonuçlarınızı sıralayamazsınız:

  • Yalnızca filtre uygulanmış sorgu gibi boş bir arama dizesine sahip search=* bir sorgu çalışmaz çünkü anlamsal ilgiyi ölçecek bir şey yoktur. Sorgu, işleme sırasında değerlendirilebilecek terimler veya tümcecikler sağlamalıdır.

  • Tam Lucene söz diziminde (queryType=full) oluşturulan bir sorgu semantik derecelendirme (queryType=semantic) ile uyumsuz. Anlam modeli tam Lucene söz dizimini desteklemez.

  • Belirli alanlarda sıralama (orderBy yan tümceleri) arama puanlarını ve anlam puanını geçersiz kılar. Sıralamayı semantik puanın sağlaması gerektiği düşünüldüğünde, sıralı sonuçlara semantik derecelendirme uygularsanız orderby yan tümcesi eklemek HTTP 400 hatasıyla sonuçlanır.

Sorguyu ayarlama

Bu adımda, sorgu isteğine parametreler ekleyin. Başarılı olmak için sorgunuz tam metin araması (bir dize geçirmek için parametresini search kullanarak) ve dizin zengin anlamsal içeriğe ve anlamsal yapılandırmaya sahip metin alanları içermelidir.

Arama gezgini semantik derecelendirme seçenekleri içerir.

  1. Azure Portal’ında oturum açın.

  2. Bir arama dizini açın ve Arama gezgini'ne tıklayın.

  3. Sorgu seçenekleri'ni seçin. Zaten bir anlamsal yapılandırma tanımladıysanız, varsayılan olarak seçilidir. Yoksa dizininiz için bir anlamsal yapılandırma oluşturun.

    Screenshot showing query options in Search explorer.

  4. "İyi yemekler içeren tarihi otel" gibi bir sorgu girin ve Ara'yı seçin.

  5. Alternatif olarak, JSON görünümü'nü seçin ve tanımları sorgu düzenleyicisine yapıştırın:

    Screenshot showing JSON query syntax in the Azure portal.

    Görünüme yapıştırabileceğiniz bazı JSON metni aşağıdadır:

     {
         "queryType": "semantic",
         "search": "historic hotel with good food",
         "semanticConfiguration": "my-semantic-config",
         "answers": "extractive|count-3",
         "captions": "extractive|highlight-true",
         "highlightPreTag": "<strong>",
         "highlightPostTag": "</strong>",
         "select": "HotelId,HotelName,Description,Category",
         "count": true
     }
    

Yanıtı değerlendirme

Yalnızca ilk sonuçlardaki ilk 50 eşleşme, sıralanabilir. Tüm sorgularda olduğu gibi, yanıt alınabilir olarak işaretlenmiş tüm alanlardan veya yalnızca select parametresinde listelenen alanlardan oluşur. Yanıt özgün ilgi puanını içerir ve isteği nasıl formüle ettiğinize bağlı olarak bir sayı veya toplu sonuçlar da içerebilir.

Anlamsal derecelendirmede yanıtın daha fazla öğesi vardır: yeni bir anlam derecesine sahip ilgi puanı, düz metinde ve vurgulu isteğe bağlı bir başlık ve isteğe bağlı bir yanıt. Sonuçlarınız bu ek öğeleri içermiyorsa sorgunuz yanlış yapılandırılmış olabilir. Sorunu gidermeye yönelik ilk adım olarak, hem dizin tanımında hem de sorguda belirtildiğinden emin olmak için anlamsal yapılandırmayı denetleyin.

İstemci uygulamasında, arama sayfasını belirli bir alanın içeriğinin tamamı yerine eşleşmenin açıklaması olarak bir başlık içerecek şekilde yapılandırabilirsiniz. Bu yaklaşım, tek tek alanlar arama sonuçları sayfası için çok yoğun olduğunda kullanışlıdır.

Yukarıdaki örnek sorgunun yanıtı, en üstteki seçim olarak aşağıdaki eşleşmeyi döndürür. "başlık s" özelliği düz metin ve vurgulanmış sürümlerle ayarlandığından resim yazıları döndürülür. Bu sorgu ve corpus için bir yanıt belirlenemediğinden yanıtlar örnekten atlanır.

"@odata.count": 35,
"@search.answers": [],
"value": [
    {
        "@search.score": 1.8810667,
        "@search.rerankerScore": 1.1446577133610845,
        "@search.captions": [
            {
                "text": "Oceanside Resort. Luxury. New Luxury Hotel. Be the first to stay. Bay views from every room, location near the pier, rooftop pool, waterfront dining & more.",
                "highlights": "<strong>Oceanside Resort.</strong> Luxury. New Luxury Hotel. Be the first to stay.<strong> Bay</strong> views from every room, location near the pier, rooftop pool, waterfront dining & more."
            }
        ],
        "HotelName": "Oceanside Resort",
        "Description": "New Luxury Hotel. Be the first to stay. Bay views from every room, location near the pier, rooftop pool, waterfront dining & more.",
        "Category": "Luxury"
    },
  ...
]

Sonraki adımlar

Anlam derecelendirmesi, anahtar sözcük arama ve vektör aramasını tek bir istekte ve birleşik yanıtta birleştiren karma sorgularda kullanılabilir.