Hozzon létre egy lekérdezést, amely meghívja a szemantikai rangsorolást, és szemantikai feliratokat ad vissza

Fontos

A szemantikai keresés nyilvános előzetes verzióban érhető el kiegészítő használati feltételek mellett. A szolgáltatás a Azure Portal, REST API és a bétaverziós SZOFTVERDK-okkal érhető el. Ezek a funkciók számlázhatók. További információ: Rendelkezésre állás és díjszabás.

A szemantikai keresés a Azure Cognitive Search egyik prémium funkciója, amely egy szemantikai rangsorolási algoritmust hív meg egy eredményhalmazra, és szemantikai feliratokat (és opcionálisan szemantikaiválaszokat) ad vissza a legfontosabb kifejezések és kifejezések kiemeléseivel. A rendszer a feliratokat és a válaszokat is a "szemantikai" lekérdezéstípussal összeállított lekérdezési kérelmekben adja vissza.

A feliratokat és válaszokat a keresési dokumentum szövegeiből lehet szó szerint kinyerni. A szemantikai alrendszer határozza meg, hogy a tartalom melyik része rendelkezik a felirat vagy a válasz jellemzőivel, de nem alkot új mondatokat vagy kifejezéseket. Emiatt a magyarázatokat vagy definíciókat tartalmazó tartalom a szemantikai kereséshez a legmegfelelőbb.

Előfeltételek

  • Egy Cognitive Search standard szinten (S1, S2, S3), amely az alábbi régiók egyikében található: USA északi középső régiója, USA nyugati régiója, USA 2. nyugati régiója, USA 2. keleti régiója, Észak-Európa, Nyugat-Európa. Ha egy meglévő S1 vagy nagyobb szolgáltatása van ezen régiók egyikében, anélkül regisztrálhat az előzetes verzióra, hogy új szolgáltatást kell létrehoznia.

  • Regisztráljon az előzetes verzióra. A várható átfutási idő körülbelül két munkanap.

  • Egy meglévő keresési index egy támogatott nyelven lévő tartalommal. A szemantikai keresés tájékoztató vagy leíró tartalmakon működik a legjobban.

  • Keresési ügyfél a lekérdezések küldésére.

    A keresési ügyfélnek támogatnia kell az előzetes verziójú REST API-kat a lekérdezési kérelemben. Használhatja a Postmant, a Visual StudioCode-et, vagy olyan kódot, amely REST-hívásokat kezdeményez az előzetes verziójú API-khoz. A Keresési ablak használatával a Azure Portal is küldhet szemantikai lekérdezést. Az uments 11.3.0-beta.2Azure.Search.Docis használhatja.

  • A lekérdezési kérésnek tartalmaznia kell az ebben a queryType=semantic cikkben ismertetett paramétereket és paramétereket.

Mi az a szemantikai lekérdezéstípus?

Ebben Cognitive Search lekérdezés egy paraméteres kérés, amely meghatározza a lekérdezések feldolgozását és a válasz alakját. A szemantikai lekérdezések olyan paraméterekkel bírnak, amelyek meghívják a szemantikai reranking modellt, amely képes felmérni az egyező eredmények kontextusát és jelentését, előléptetni a relevánsabb egyezéseket felülre, és szemantikai válaszokat és feliratokat visszaadni.

A következő kérés egy minimális szemantikai lekérdezést képvisel (válaszok nélkül).

POST https://[service name].search.windows.net/indexes/[index name]/docs/search?api-version=2020-06-30-Preview      
{    
    "search": " Where was Alan Turing born?",    
    "queryType": "semantic",  
    "searchFields": "title,url,body",  
    "queryLanguage": "en-us"  
}

Ahogy a lekérdezések Cognitive Search, a kérés is egyetlen index dokumentumgyűjteményét célozza meg. Emellett a szemantikai lekérdezések elemzés, elemzés, vizsgálat és pontozás ugyanazon sorozatán mennek keresztül, mint a nem szemantikai lekérdezések.

A különbség a relevancia és a pontozás szempontjából rejlik. Az előzetes kiadásban meghatározottak szerint a szemantikai lekérdezések azok, amelyeknek az eredményeit egy szemantikai nyelvi modellel újratetjük, így az alapértelmezett hasonlóság rangsoroló által hozzárendelt pontszámok helyett a szemantikai rangsoroló által leginkább relevánsnak ítélt találatokat lehet kifésülni.

A kezdeti eredmények közül csak az első 50 egyezést lehet szemantikailag rangsorolva, és minden eredmény tartalmaz feliratokat a válaszban. Opcionálisan megadhat egy paramétert a kéréshez answer a lehetséges válasz kinyerését érdekében. További információ: Szemantikai válaszok.

Lekérdezés a Azure Portal

A Keresési ablak frissítve lett, hogy tartalmazza a szemantikai lekérdezések beállításait. Ezek a lehetőségek a következő lépések elvégzése után válnak láthatóvá a portálon:

  1. Nyissa meg a portált a következő szintaxissal: , egy keresési https://portal.azure.com/?feature.semanticSearch=true szolgáltatásban, amelyhez az előzetes verzió engedélyezve van.

  2. Kattintson a Keresési ablakra az áttekintő oldal tetején.

  3. Válasszon egy olyan indexet, amely egy támogatott nyelven tartalmaz tartalmat.

  4. A Keresési ablakban adja meg a szemantikai lekérdezéseket, a searchFields és a spell correction lekérdezési beállításokat. A szükséges lekérdezési paramétereket a lekérdezési sztringbe is beillesztheti.

Lekérdezési beállítások a Keresési ablakban

Lekérdezés REST használatával

A Dokumentumok keresése (REST előzetes verzió) használatával programozott módon fogalmazza meg a kérést. A válasz tartalmazza a feliratokat és az automatikus kiemelést. Ha helyesírási javítást vagy válaszokat szeretne kapni a válaszban, adja hozzá a vagy a et speller answers a kéréshez.

Az alábbi példa a hotels-sample-index használatával hoz létre szemantikai lekérdezési kérelmet helyesírás-ellenőrzéssel, szemantikai válaszokkal és feliratokkal:

POST https://[service name].search.windows.net/indexes/hotels-sample-index/docs/search?api-version=2020-06-30-Preview      
{
    "search": "newer hotel near the water with a great restaurant",
    "queryType": "semantic",
    "queryLanguage": "en-us",
    "searchFields": "HotelName,Category,Description",
    "speller": "lexicon",
    "answers": "extractive|count-3",
    "highlightPreTag": "<strong>",
    "highlightPostTag": "</strong>",
    "select": "HotelId,HotelName,Description,Category",
    "count": true
}

Az alábbi táblázat a szemantikai lekérdezésben használt paramétereket foglalja össze. A kérések összes paraméterének listáját lásd: Dokumentumok keresése (REST előzetes verzió)

Paraméter Típus Description
queryType (lekérdezés típusa) Sztring Az érvényes értékek közé tartozik az egyszerű, a teljes és a szemantikai érték. Szemantikai lekérdezésekhez "szemantikai" érték szükséges.
queryLanguage Sztring Szemantikai lekérdezésekhez szükséges. A megadott lexikon ugyanúgy vonatkozik a szemantikai rangsorolásra, a feliratokra, a válaszokra és a helyesírás-ellenőrzésre. További információ: támogatott nyelvek (REST API referencia).
searchFields Sztring Kereshető mezők vesszővel tagolt listája. Megadja azokat a mezőket, amelyeken a szemantikai rangsorolás történik, és amelyekből a rendszer feliratokat és válaszokat nyer ki.

Az egyszerű és a teljes lekérdezési típusokkal ellentétben a mezők listázatának sorrendje határozza meg az elsőbbségi sorrendet. További használati utasításokért lásd: 2. lépés: Keresésimezők beállítása.
Helyesírás Sztring Nem csak szemantikai lekérdezésekre vonatkozó opcionális paraméter, amely javítja a hibásan írt kifejezéseket, mielőtt azok elérnék a keresőmotort. További információ: Helyesírás-javítás hozzáadása a lekérdezésekhez.
válaszok Sztring Nem kötelező paraméterek, amelyek azt határozzák meg, hogy az eredmény tartalmaz-e szemantikai válaszokat. Jelenleg csak az "extractive" van megvalósítva. A válaszok beállíthatók úgy, hogy legfeljebb tízet adjanak vissza. Az alapértelmezett érték egy. Ez a példa három választ mutat be: extractive\|count-3 . További információ: Szemantikai válaszok visszaadva.

A kérés megfogalmazása

Ez a szakasz végigveszi a lekérdezések megfogalmazásának lépéseit.

1. lépés: A queryType és a queryLanguage beállítása

Adja hozzá a következő paramétereket a többihez. Mindkét paraméterre szükség van.

"queryType": "semantic",
"queryLanguage": "en-us",

A queryLanguage nyelvnek támogatott nyelvnek kell lennie, és konzisztensnek kell lennie az indexsémában a meződefiníciókhoz rendelt nyelvi elemzőknek. Például egy francia nyelvi elemzővel indexelte a francia sztringeket (például "fr.microsoft" vagy "fr.lucene"), akkor a queryLanguage nyelvnek is francia nyelvi változatnak kell lennie.

Ha egy lekérdezési kérelemben helyesírás-javítást is használ,a beállított queryLanguage a helyesírás-, válasz- és feliratfeliratra is ugyanúgy vonatkozik. Az egyes részekre nincs felülbírálás. A helyesírás-ellenőrzéskevesebb nyelvet támogat, ezért ha ezt a funkciót használja, a queryLanguage tulajdonságot ebből a listából kell egyre beállítania.

Bár egy keresési index tartalma több nyelven is összeállítható, a lekérdezés bemenete nagy valószínűséggel egyben van. A keresőmotor nem ellenőrzi a queryLanguage, a language analyzer és a tartalom összeállító nyelvének kompatibilitását, ezért a helytelen eredmények elkerülése érdekében mindenképpen ennek megfelelően állítsa be a lekérdezések hatókörét.

2. lépés: A searchFields beállítása

Adja hozzá a searchFields (Keresésimezők) et a kérelemhez. Nem kötelező, de erősen ajánlott.

"searchFields": "HotelName,Category,Description",

A searchFields paraméter azonosítja azokat a szakaszokat, amelyek kiértékelése a lekérdezéshez való "szemantikai hasonlóság" érdekében történik. Az előzetes verzióhoz nem ajánlott üresen hagyni a searchFields mezőt, mivel a modellhez egy tippre van szükség arra, hogy mely mezőket kell a legfontosabb feldolgozni.

Más paraméterekkel ellentétben a searchFields nem új. Előfordulhat, hogy már használja a searchFields (Keresésimezők) kódot a meglévő kódban egyszerű vagy teljes Lucene-lekérdezésekhez. Ha igen, tekintse át a paramétert, hogy ellenőrizhető-e a mezőrend a szemantikai lekérdezési típusra való váltáskor.

Engedélyezett adattípusok

A searchFields (Keresőmezők) beállításakor csak a következő támogatott adattípusok mezőit válassza. Ha érvénytelen mezőt ad meg, nincs hiba, de ezek a mezők nem lesznek használva a szemantikai rangsorban.

Adattípus Példa a hotels-sample-indexből
Edm.String HotelName, Category, Description
Edm.ComplexType Address.StreetNumber, Address.City, Address.StateProvince, Address.PostalCode
Collection(Edm.String) Címkék (sztringek vesszővel tagolt listája)
Mezők sorrendje a searchFields mezőiben

A mezőrend kritikus fontosságú, mert a szemantikai rangsoroló korlátozza a feldolgozható tartalmak mennyiségét, miközben továbbra is ésszerű válaszidőt biztosít. A lista elején található mezők tartalma nagyobb valószínűséggel fog szerepelni benne; A korlát elérésekor a tartalom a végükről csonkolható. További információ: Előfeldolgozás szemantikai rangsorolás során.

  • Ha csak egy mezőt ad meg, válasszon egy leíró mezőt, amelyben a szemantikai lekérdezésekre adott válasz található, például egy dokumentum fő tartalma.

  • Két vagy több mező a searchFields (Mezők) mezőben:

    • Az első mezőnek mindig tömörnek kell lennie (például egy címnek vagy egy névnek), ideális esetben egy 25 szónál nem több sztringet.

    • Ha az index olyan URL-címmel rendelkezik, amely olvasható, például , (nem gépközpontú, például ), helyezze a listában a második helyére (vagy ha nincs rövid cím www.domain.com/name-of-the-document-and-other-details www.domain.com/?id=23463&param=eis mező).

    • Kövesse a fenti mezőket más leíró mezőkkel, amelyekben megtalálható a szemantikai lekérdezésekre adott válasz, például egy dokumentum fő tartalma.

3. lépés: A relevanciapontozást megkerülő lekérdezési funkciók eltávolítása vagy szögletes zárójeles lekérdezési funkciók

Számos lekérdezési képesség Cognitive Search relevanciapontozáson, és egyes funkciók egyáltalán nem kerülik meg a teljes szöveges keresőmotort. Ha a lekérdezési logika a következő funkciókat tartalmazza, nem kap relevanciapontszámokat vagy szemantikai rangsorolást az eredmények alapján:

  • A szűrők, az fuzzy keresési lekérdezések és a reguláris kifejezések iterálnak a tartalomban található verbatim egyezések keresésével. A fenti lekérdezési űrlapok keresési pontszámai egységes 1,0-sak, és nem nyújtanak értelmes bemenetet a szemantikai rangsoroláshoz.

  • Az adott mezők rendezése (orderBy záradékok) a keresési pontszámokat és a szemantikai pontszámot is felülírja. Mivel a szemantikai pontszám az eredmények rendezése, beleértve az explicit rendezési logikát is, HTTP 400-as hibát ad vissza.

4. lépés: Válaszok hozzáadása

Ha további feldolgozást szeretne, amely választ ad meg, hozzáadhat "válaszokat". A paraméterrel kapcsolatos részletekért lásd: Szemantikai válaszok megadása.

"answers": "extractive|count-3",

A válaszok (és a feliratok) a searchFields (Keresésmezők) mezőiben található szakaszból vannak kinyerve. Ezért szeretne tartalomban gazdag mezőket szerepeletni a searchFields mezőben, hogy a legjobb válaszokat tudja kapni. A válaszok nem garantáltak minden kérés esetén. A lekérdezésnek kérdésként kell kinéznie, és a tartalomnak tartalmaznia kell egy válaszhoz hasonló szöveget.

5. lépés: Egyéb paraméterek hozzáadása

Állítsa be a kérelemben további kívánt paramétereket. Az olyan paraméterek, mint a helyesírási, a selectés a count javítják a kérés minőségét és olvashatóságát.

"speller": "lexicon",
"select": "HotelId,HotelName,Description,Category",
"count": true,
"highlightPreTag": "<mark>",
"highlightPostTag": "</mark>",

A kiemelési stílust a rendszer alkalmazza a válasz felirataira. Használhatja az alapértelmezett stílust, vagy igény szerint testre is szabhatja a feliratok kiemelési stílusát. A feliratok kiemelésformázást alkalmaznak a dokumentum kulcsrészeire, amelyek összegzi a választ. A mező alapértelmezett értéke: <em>. Ha meg szeretné adni a formázás típusát (például sárga háttér), beállíthatja a highlightPreTag és a highlightPostTag értéket.

Lekérdezés Azure-beli ADK-k használatával

Az Azure SDK-k bétaverziói támogatják a szemantikai keresést. Mivel az SDK-k bétaverziók, nincs dokumentáció vagy minta, de az API-k megfelelő rendszerével kapcsolatos információkért tekintse meg a fenti REST API szakaszt.

Azure SDK Csomag
.NET Azure.Search.Doc11.3.0-beta.2-es verziójú uments csomag
Java com.azure:azure-search-documents 11.4.0-beta.2
JavaScript azure/search-documents 11.2.0-beta.2
Python azure-search-documents 11.2.0b3

A válasz kiértékelése

Mint minden lekérdezés esetén, a válasz is a lekérdezhetőként megjelölt összes mezőből áll, vagy csak a select paraméterben felsorolt mezőkből. Ez tartalmazza az eredeti relevanciapontszámot, és a kérelem megfogalmazásától függően szám- vagy kötegelt eredményeket is tartalmazhat.

A szemantikai lekérdezésben a válasz további elemeket tartalmaz: egy új szemantikailag rangsorolt relevanciapontszám, egyszerű szövegben és kiemelésekkel látható feliratok, valamint opcionálisan egy válasz.

Az ügyfélalkalmazásban úgy struktúratálhatja a keresőoldalt, hogy az egyezés leírásaként egy feliratot tartalmaz, és ne egy adott mező teljes tartalmát. Ez akkor hasznos, ha az egyes mezők túl sűrűk a keresési eredmények oldalhoz.

A fenti példalekérdezés válasza a következő egyezést adja vissza felső választásként. A rendszer automatikusan visszaadja a feliratokat egyszerű szöveggel és kiemelt verziószámokkal. A válaszok azért nem szerepelnek a példában, mert az adott lekérdezéshez és corpushoz nem volt meghatározva.

"@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"
    },

Következő lépések

Emlékezzen vissza, hogy a szemantikai rangsorolás és a válaszok egy kezdeti eredményhalmazra épülnek. Minden olyan logika, amely javítja a kezdeti eredmények minőségét, tovább fog vinni a szemantikai keresésre. Következő lépésként tekintse át a kezdeti eredményekhez hozzájáruló funkciókat, beleértve a sztringek tokenekbe való számítását befolyásoló elemzőket, az eredményeket hangoló pontozási profilokat és az alapértelmezett relevanciaalgoritmust.