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:
Kereséskezelő a Azure Portal, ajánlott a kezdeti feltáráshoz.
Asztali Postman-alkalmazás a 2021-04-30-Preview REST API-k használatával. A kérések beállításához ebben a rövid útmutatóban talál segítséget.
Azure.Search.Documents 11.4.0-beta.5 az Azure SDK for .NET Előzetes verzióban.
Azure.Search.Documents 11.3.0b6 a Pythonhoz készült Azure SDK-ban.
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.
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.
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.
Jelentkezzen be Azure Portal, és keresse meg azt a keresési szolgáltatást, amelyben engedélyezve van a szemantikai keresés.
Nyisson meg egy indexet.
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 .
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áulwww.domain.com/?id=23463¶m=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:
Nyissa meg a Azure Portal, és keresse meg azt a keresési szolgáltatást, amelyben engedélyezve van a szemantikai keresés.
Az áttekintő oldal tetején válassza a Kereséskezelő lehetőséget.
Olyan indexet válasszon, amelynek tartalma támogatott nyelven található.
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.
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.