Szemantikai rangsorolás konfigurálása és feliratok visszaadása a keresési eredményekben

Fontos

A szemantikai keresés nyilvános előzetes verzióban érhető el , a használati feltételek kiegészítésével. Elérhető Azure Portal, előzetes REST API-k és béta SDK-k használatával. Ez a funkció számlázható. Lásd: Rendelkezésre állás és díjszabás.

Ebből a cikkből megtudhatja, hogyan hívhat meg szemantikai rangsorolási algoritmust egy eredményhalmazon keresztül, hogy a szemantikai szempontból legrelevánsabb eredményeket népszerűsítse a verem tetejére. Szemantikai feliratokat is kaphat, kiemelve a legrelevánsabb kifejezéseket és kifejezéseket, valamint szemantikai válaszokat.

Két fő tevékenység végrehajtására van szükség:

  • Szemantikai konfiguráció hozzáadása indexhez
  • Paraméterek hozzáadása lekérdezési kérelemhez

Előfeltételek

  • Keresési szolgáltatás standard szinten (S1, S2, S3) vagy Storage Optimized szinten (L1, L2), ezekben a régiókban: Ausztrália keleti régiója, USA keleti régiója, USA 2. keleti régiója, USA északi középső régiója, USA déli középső régiója, USA nyugati régiója, USA 2. nyugati régiója, Észak-Európa, Egyesült Királyság déli régiója, Nyugat-Európa.

    Ha valamelyik régióban már rendelkezik S1 vagy nagyobb szolgáltatással, új szolgáltatás létrehozása nélkül engedélyezheti a szemantikai keresést.

  • A szemantikai keresés engedélyezve van a keresési szolgáltatásban.

  • Egy meglévő keresési index, amely gazdag tartalommal rendelkezik egy támogatott lekérdezési nyelven. A szemantikai keresés az információs vagy leíró tartalmakon működik a legjobban.

  • Tekintse át a szemantikai keresés áttekintését , ha be kell ismerkednie a funkcióval.

Megjegyzés

A feliratok és válaszok szó szerint ki lesznek nyerve a keresődokumentum szövegéből. A szemantikai alrendszer meghatározza, hogy a tartalom mely része rendelkezik egy felirat vagy válasz jellemzőivel, de nem ír új mondatokat vagy kifejezéseket. Ezért a magyarázatokat vagy definíciókat tartalmazó tartalom a szemantikai keresés szempontjából a legjobban működik.

1 – Ügyfél kiválasztása

Szüksége lesz egy keresési ügyfélre, amely támogatja az előzetes verziójú API-kat a lekérdezési kérelemben. Íme néhány lehetőség:

2 – Szemantikai konfiguráció létrehozása

Fontos

Szemantikai konfigurációra van szükség a 2021-04-30-Preview REST API-khoz, a Search Explorerhez és a béta SDK-k egyes verzióihoz. Ha a 2020-06-30-preview REST API-t használja, hagyja ki ezt a lépést, és inkább a "searchFields" megközelítést használja a mező priorizálásához .

A szemantikai konfiguráció azt határozza meg, hogyan használják a mezőket a szemantikai rangsorolásban. Tippeket ad a mögöttes modelleknek arról, hogy mely indexmezők a legfontosabbak a szemantikai rangsorolás, a feliratok, a kiemelések és a válaszok szempontjából.

Szemantikai konfigurációt fog hozzáadni az indexdefinícióhoz. Az alábbi füles szakaszok útmutatást nyújtanak a REST API-khoz, a Azure Portal és a .NET SDK előzetes verziójához.

Az index újraépítése nélkül bármikor hozzáadhat vagy frissíthet szemantikai konfigurációt. Lekérdezés kiadásakor hozzáadja a szemantikai konfigurációt (lekérdezésenként egyet), amely meghatározza, hogy melyik szemantikai konfigurációt használja a lekérdezéshez.

  1. Tekintse át a megadni kívánt tulajdonságokat. A szemantikai konfigurációnak van egy neve, és legalább egy az alábbi tulajdonságok közül:

    • Címmező – A címmezőknek a dokumentum tömör leírásának kell lenniük, ideális esetben egy 25 szó alatti sztringnek. Ez a mező lehet a dokumentum címe, a termék neve vagy a keresési indexben szereplő elem. Ha nincs cím a keresési indexben, hagyja üresen ezt a mezőt.
    • Tartalommezők – A tartalommezőknek természetes nyelvű szöveget kell tartalmazniuk. A tartalom gyakori példái a dokumentum törzse, egy termék leírása vagy más szabad formátumú szöveg.
    • Kulcsszómezők – A kulcsszómezőknek kulcsszavaknak kell lenniük, például egy dokumentum címkéinek vagy egy leíró kifejezésnek, például egy elem kategóriájának.

    Csak egy címmezőt adhat meg, de tetszőleges számú tartalom- és kulcsszómezőt adhat meg. Tartalom- és kulcsszómezők esetén sorolja fel a mezőket prioritási sorrendben, mert előfordulhat, hogy az alacsonyabb prioritású mezők csonkulnak.

  2. A fenti tulajdonságoknál határozza meg, hogy mely mezőket kell hozzárendelni.

    A mezőknek támogatott adattípusnak kell lenniük, és sztringeket kell tartalmazniuk. Ha érvénytelen mezőt ad meg, nincs hiba, de ezek a mezők nem lesznek felhasználva a szemantikai rangsorolásban.

    Adattípus Példa a hotels-sample-indexből
    Edm.String HotelName, Kategória, Leírás
    Edm.ComplexType Address.StreetNumber, Address.City, Address.StateProvince, Address.PostalCode
    Collection(Edm.String) Címkék (a sztringek vesszővel tagolt listája)

    Megjegyzés

    A Collection(Edm.ComplexType) mezők almezőit jelenleg nem támogatja a szemantikai keresés, és nem használhatók szemantikai rangsoroláshoz, feliratokhoz és válaszokhoz.

  1. Jelentkezzen be Azure Portal, és keresse meg azt a keresési szolgáltatást, amelyben engedélyezve van a szemantikai keresés.

  2. Nyisson meg egy indexet.

  3. Válassza a Szemantikai konfigurációk lehetőséget, majd válassza a Szemantikai konfiguráció hozzáadása lehetőséget.

    Megnyílik az Új szemantikai konfiguráció lap, amelyen a címmezők, a tartalommezők és a kulcsszómezők választhatók ki. Ügyeljen arra, hogy a tartalommezőket és a kulcsszómezőket prioritási sorrendben listázhassa.

    A módosítások mentéséhez kattintson az OK gombra .

    Képernyőkép, amely bemutatja, hogyan hozhat létre szemantikai konfigurációt a Azure Portal.

Tipp

Ha egy szemantikai konfiguráció létrehozására és szemantikai lekérdezés kiadására szeretné használni, tekintse meg a Szemantikai keresés Postman-mintáját.

2b – A keresőmezők használata mezős rangsoroláshoz

Ez a lépés csak a 2020-06-30-preview REST API-t vagy egy béta SDK-t használó megoldásokra vonatkozik, amelyek nem támogatják a szemantikai konfigurációkat. Ahelyett, hogy szemantikai konfiguráción keresztül állítja be a mezőprioritást az indexben, a lekérdezés "searchFields" paraméterével állítja be a prioritást lekérdezéskor.

A "searchFields" használata a mezős rangsoroláshoz egy korai megvalósítási részlet volt, amely nem támogatott, miután a szemantikai keresés kilép a nyilvános előzetes verzióból. Javasoljuk, hogy akkor használjon szemantikai konfigurációkat, ha az alkalmazásra vonatkozó követelmények ezt lehetővé teszik.

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

A mezőrendelés kritikus fontosságú, mert a szemantikai rangsoroló korlátozza a feldolgozható tartalom mennyiségét, miközben ésszerű válaszidőt biztosít. A lista elején lévő mezőkből származó tartalmak nagyobb valószínűséggel lesznek belefoglalva; A tartalom csonkítható, ha eléri a maximális korlátot. További információ: Előzetes feldolgozás a szemantikai rangsorolás során.

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

  • Két vagy több mező a searchFieldsben:

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

    • Ha az index olyan URL-mezővel rendelkezik, amely emberileg olvasható, például www.domain.com/name-of-the-document-and-other-details (a gépi fókusz helyett, például www.domain.com/?id=23463&param=eis), helyezze a második helyre a listában (vagy először, ha nincs tömör címmező).

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

A "searchFields" beállításnál csak a következő támogatott adattípusok mezőit válassza:

Adattípus Példa a hotels-sample-indexből
Edm.String HotelName, Kategória, Leírás
Edm.ComplexType Address.StreetNumber, Address.City, Address.StateProvince, Address.PostalCode
Collection(Edm.String) Címkék (a sztringek vesszővel tagolt listája)

Ha érvénytelen mezőt ad meg, nem jelenik meg hiba, de ezek a mezők nem lesznek felhasználva a szemantikai rangsorolásban.

3 – Kerülje a relevanciapontozást megkerülő funkciókat

A Cognitive Search számos lekérdezési képessége nem esik át relevanciapontozáson, és néhányuk teljesen megkerüli 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ényeken:

  • A szűrők, a homályos keresési lekérdezések és a reguláris kifejezések iterálnak a nem kiosztott szövegen, és a tartalomban keresnek szó szerinti egyezéseket. A fenti lekérdezési űrlapok keresési pontszámai egységes 1,0-sak, és nem adnak értelmes bemenetet a szemantikai rangsoroláshoz.

  • Az adott mezőkre vonatkozó rendezés (orderBy záradékok) felülbírálja a keresési pontszámokat és a szemantikai pontszámot is. Mivel a szemantikai pontszám az eredmények rendezésére szolgál, az explicit rendezési logikával együtt HTTP 400-es hiba jelenik meg.

4 – A lekérdezés beállítása

A következő lépés paraméterek hozzáadása a lekérdezési kérelemhez. A sikeresség érdekében a lekérdezésnek teljes szöveges keresésnek kell lennie (a "search" paraméterrel sztringet kell megadnia), és az indexnek gazdag szemantikai tartalommal rendelkező szövegmezőket kell tartalmaznia.

A Keresőböngésző frissült, hogy tartalmazza a szemantikai lekérdezések beállításait. A szemantikai rangsorolás portálon való konfigurálásához kövesse az alábbi lépéseket:

  1. Nyissa meg a Azure Portal, és keresse meg azt a keresési szolgáltatást, amelyben engedélyezve van a szemantikai keresés.

  2. Az áttekintő oldal tetején válassza a Kereséskezelő lehetőséget.

  3. Olyan indexet válasszon, amelynek tartalma támogatott nyelven található.

  4. A Kereséskezelőben adja meg a szemantikai lekérdezéseket, szemantikai konfigurációkat és helyesírás-javítást engedélyező lekérdezési beállításokat. A szükséges lekérdezési paramétereket a lekérdezési sztringbe is beillesztheti.

Képernyőkép a lekérdezési lehetőségekről a Kereséskezelőben.

5 – A válasz kiértékelése

A kezdeti eredmények közül csak az első 50 találatot lehet szemantikailag rangsorolni. Mint minden lekérdezés esetében, a válasz az összes lekérdezhetőként megjelölt mezőből áll, vagy csak a kiválasztási paraméterben felsorolt mezőkből. A válasz tartalmazza az eredeti relevanciapontszámot, és a kérés megfogalmazásától függően számmal vagy kötegelt eredményekkel is rendelkezhet.

A szemantikai keresésben a válasznak több eleme van: egy új szemantikailag rangsorolt relevanciapontszám, egy választható felirat egyszerű szövegben és kiemelésekkel, valamint opcionális válasz. Ha az eredmények nem tartalmazzák ezeket az extra elemeket, előfordulhat, hogy a lekérdezés helytelenül van konfigurálva. A probléma elhárításának első lépéseként ellenőrizze a szemantikai konfigurációt, és győződjön meg arról, hogy az indexdefinícióban és a lekérdezésben is meg van adva.

Egy ügyfélalkalmazásban úgy strukturálhatja a keresőlapot, hogy egy feliratot adjon meg az egyezés leírásaként, nem pedig egy adott mező teljes tartalmát. Ez a módszer akkor hasznos, ha az egyes mezők túl sűrűek a keresési eredmények oldalához.

A fenti példa lekérdezésre adott válasz a következő egyezést adja vissza felső választásként. A feliratok visszaadása azért történik, mert a "captions" tulajdonság be van állítva, egyszerű szöveggel és kiemelt verziókkal. A példa nem adja meg a válaszokat, mert nem sikerült meghatározni az adott lekérdezést és korpuszt.

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

Ne feledje, 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ábbhalad a szemantikai kereséshez. Következő lépésként tekintse át azokat a funkciókat, amelyek hozzájárulnak a kezdeti eredményekhez, beleértve a sztringek tokenizálását befolyásoló elemzőket, az eredményeket hangoló pontozási profilokat és az alapértelmezett relevanciaalgoritmust.