Teljes szöveges lekérdezés létrehozása az Azure AI Searchben
Ha teljes szöveges keresésre készít lekérdezést, ez a cikk a kérés beállításának lépéseit ismerteti. Emellett egy lekérdezési struktúrát is bevezet, és elmagyarázza, hogy a mezőattribútumok és a nyelvi elemzők hogyan befolyásolhatják a lekérdezési eredményeket.
Előfeltételek
Keresési index kereshetőként attribútummal ellátott sztringmezőkkel.
Olvasási engedélyek a keresési indexen. Olvasási hozzáféréshez adjon hozzá egy lekérdezési API-kulcsot a kérelemhez, vagy adjon engedélyt a hívónak a keresési index adatolvasójának .
Példa egy teljes szöveges lekérdezési kérelemre
Az Azure AI Searchben a lekérdezés egy írásvédett kérés egyetlen keresési index dokumentumgyűjteménye ellen, olyan paraméterekkel, amelyek tájékoztatják a lekérdezés végrehajtását és alakítják a válasz visszatérését.
A paraméterben search
egy teljes szöveges lekérdezés van megadva, és kifejezésekből, idézőjelek közé foglalt kifejezésekből és operátorokból áll. Más paraméterek további definíciót adnak a kéréshez.
Az alábbi Search POST REST API-hívás az említett paramétereket használó lekérdezési kérést szemlélteti.
POST https://[service name].search.windows.net/indexes/hotels-sample-index/docs/search?api-version=2024-07-01
{
"search": "NY +view",
"queryType": "simple",
"searchMode": "all",
"searchFields": "HotelName, Description, Address/City, Address/StateProvince, Tags",
"select": "HotelName, Description, Address/City, Address/StateProvince, Tags",
"top": 10,
"count": true
}
Kulcsfontosságú pontok
search
operátorokkal vagy anélkül biztosítja a megfeleltetés feltételeit, általában egész kifejezéseket vagy kifejezéseket. Minden olyan mező, amely az indexsémában kereshetőként van beállítva, a paraméter jelöltje.queryType
beállítja az elemzőt: egyszerű, teljes. Az alapértelmezett egyszerű lekérdezéselemző optimális a teljes szöveges kereséshez. A teljes Lucene lekérdezéselemző olyan speciális lekérdezésszerkezetekhez használható, mint a reguláris kifejezések, a közelségi keresés, a homályos és a helyettesítő karakterek keresése. Ez a paraméter szemantikai értékre is beállítható a lekérdezési válaszban a speciális szemantikai modellezés szemantikai rangsorolásához.searchMode
megadja, hogy az egyezések az összes feltételen alapulnak -e (előnyben részesíti a pontosságot) vagy a kifejezésben szereplő bármely feltételen (előnyben részesíti a visszahívást). Az alapértelmezett érték bármelyik. Ha a nagy szöveges blokkokat (tartalommezőt vagy hosszú leírásokat) tartalmazó indexekben nagyobb valószínűséggel használ logikai operátorokat, akkor a paraméterrel tesztelje asearchMode=Any|All
lekérdezéseket a beállítás logikai keresésre gyakorolt hatásának kiértékeléséhez.searchFields
korlátozza a lekérdezések végrehajtását adott kereshető mezőkre. A fejlesztés során hasznos, ha ugyanazt a mezőlistát használja a kiválasztáshoz és a kereséshez. Ellenkező esetben előfordulhat, hogy egy egyezés olyan mezőértékeken alapul, amelyeket nem lát az eredményekben, és bizonytalanságot okoz a dokumentum visszaadása miatt.
A válasz alakításához használt paraméterek:
select
a válaszban visszaadandó mezőket adja meg. Csak az indexben lekérdezhetőként megjelölt mezők használhatók választó utasításban.top
A legjobban megfeleltetendő dokumentumok megadott számát adja vissza. Ebben a példában csak 10 találat jelenik meg. A felső rész használatával kihagyhatja (nem jelenik meg) az eredmények oldalára.count
Azt jelzi, hogy a teljes index hány dokumentuma egyezik meg, ami több lehet, mint a visszaadott dokumentumok száma.orderby
akkor használatos, ha az eredményeket érték, például értékelés vagy hely szerint szeretné rendezni. Ellenkező esetben az alapértelmezett érték a relevanciapont használata az eredmények rangsorolásához. A mezőnek rendezhetőnek kell lennie ahhoz, hogy a paraméter jelöltje legyen.
Ügyfél kiválasztása
A korai fejlesztéshez és a megvalósíthatósági vizsgálathoz kezdje az Azure Portallal vagy egy REST-ügyféllel. Mindkét megközelítés interaktív, hasznos a célzott teszteléshez, és segít felmérni a különböző tulajdonságok hatásait anélkül, hogy kódokat kellene írnia.
Ha alkalmazáson belüli keresést szeretne meghívni, használja az Azure.Document.Search
Azure SDK-k ügyfélkódtárait .NET, Java, JavaScript és Python nyelven.
A portálon az index megnyitásakor az index JSON-definíciója mellett a Keresőböngészővel is dolgozhat a mezőattribútumokhoz való könnyű hozzáférés érdekében. Ellenőrizze a Mezők táblát, hogy a lekérdezések tesztelése során mely elemek kereshetők, rendezhetők, szűrhetők és áttekinthetőek.
Jelentkezzen be az Azure Portalra , és keresse meg a keresési szolgáltatást.
A szolgáltatásban válassza az Indexek lehetőséget, és válasszon egy indexet.
Megnyílik egy index a Kereséskezelő lapra, hogy azonnal lekérdezhető legyen. Váltson JSON nézetre a lekérdezés szintaxisának megadásához.
Az alábbi teljes szöveges keresési lekérdezési kifejezés a Hotels mintaindexhez használható:
{ "search": "pool spa +airport", "queryType": "simple", "searchMode": "any", "searchFields": "Description, Tags", "select": "HotelName, Description, Tags", "top": 10, "count": true }
Az alábbi képernyőkép a lekérdezést és a választ mutatja be:
Válasszon egy lekérdezéstípust: egyszerű | tele
Ha a lekérdezés teljes szöveges keresés, a lekérdezéselemző a keresési kifejezésként és kifejezésként átadott szövegek feldolgozására szolgál. Az Azure AI Search két lekérdezéselemzőt kínál.
Az egyszerű elemző megérti az egyszerű lekérdezés szintaxisát. Ez az elemző lett kiválasztva alapértelmezettként az ingyenes formátumú szöveges lekérdezések sebességéhez és hatékonyságához. A szintaxis támogatja a gyakori keresési operátorokat (AND, OR, NOT) a kifejezés- és kifejezéskeresésekhez, valamint az előtagok (
*
) keresését (példáulsea*
Seattle és Seaside esetében). Általános javaslat, hogy először próbálja ki az egyszerű elemzőt, majd lépjen tovább a teljes elemzőre, ha az alkalmazás követelményeinek nagyobb teljesítményű lekérdezésekre van szükség.A kéréshez való hozzáadáskor
queryType=full
engedélyezett teljes Lucene-lekérdezés szintaxisa az Apache Lucene Parseren alapul.
A teljes szintaxis és az egyszerű szintaxis olyan mértékben fedi egymást, hogy mindkettő ugyanazt az előtagot és logikai műveletet támogatja, de a teljes szintaxis több operátort biztosít. Teljes egészében több operátor áll rendelkezésre a logikai kifejezésekhez, és további operátorok a speciális lekérdezésekhez, például a homályos kereséshez, a helyettesítő karakterek kereséséhez, a közelségi kereséshez és a reguláris kifejezésekhez.
Lekérdezési módszerek kiválasztása
A keresés alapvetően felhasználóalapú gyakorlat, ahol a kifejezéseket vagy kifejezéseket egy keresőmezőből gyűjti össze, vagy egy lapon lévő eseményekre kattint. Az alábbi táblázat összefoglalja azokat a mechanizmusokat, amelyekkel összegyűjtheti a felhasználói bemenetet, valamint a várt keresési élményt.
Bevitel | Élmény |
---|---|
Keresési módszer | A felhasználó egy keresőmezőbe írja be a kifejezéseket vagy kifejezéseket operátorokkal vagy anélkül, és a Keresés lehetőséget választva elküldi a kérést. A keresés szűrőkkel is használható ugyanazon a kérelemen, de automatikus kiegészítéssel vagy javaslatokkal nem. |
Automatikus kiegészítési módszer | A felhasználók néhány karaktert írnak be, és a lekérdezések az egyes új karakterek beírása után indulnak el. A válasz egy befejezett sztring az indexből. Ha a megadott sztring érvényes, a felhasználó a Keresés lehetőséget választva elküldi a lekérdezést a szolgáltatásnak. |
Javaslatok módszere | Az automatikus kiegészítéshez hasonlóan a felhasználó néhány karaktert is beszűkít, és növekményes lekérdezések jönnek létre. A válasz az egyező dokumentumok legördülő listája, amelyet általában néhány egyedi vagy leíró mező jelöl. Ha bármelyik kijelölés érvényes, a felhasználó kiválaszt egyet, és visszaadja a megfelelő dokumentumot. |
Jellemzőalapú navigáció | A lapon kattintható navigációs hivatkozások vagy a keresés hatókörét szűkítő szélességek láthatók. Az összetett navigációs struktúra egy kezdeti lekérdezés alapján dinamikusan áll össze. Például search=* egy minden lehetséges kategóriából álló, összetett navigációs fa kitöltéséhez. A rendszer egy aspektusalapú navigációs struktúrát hoz létre egy lekérdezési válaszból, de a következő lekérdezés kifejezésére is használható mechanizmus. n A REST API-referencia facets egy Keresési dokumentumok művelet lekérdezési paramétereként van dokumentálva, de a search paraméter nélkül is használható. |
Szűrési módszer | A szűrők az eredmények szűkítéséhez használnak aspektusokat. A lap mögött szűrőt is implementálhat, például nyelvspecifikus mezőkkel inicializálhatja a lapot. A REST API-referencia $filter egy Keresési dokumentumok művelet lekérdezési paramétereként van dokumentálva, de a search paraméter nélkül is használható. |
A mezőattribútumok hatása a lekérdezésekre
Ha ismeri a lekérdezéstípusokat és -összetételt, előfordulhat, hogy a lekérdezési kérelem paraméterei az index mezőattribútumaitól függnek. A lekérdezésekben és a keresési eredményekben például csak kereshetőként és lekérdezhetőként megjelölt mezők használhatók. Ha a kérelemben beállítja a search
, filter
és orderby
a paramétereket, a váratlan eredmények elkerülése érdekében ellenőrizze az attribútumokat.
A szállodai mintaindex alábbi képernyőképén csak az utolsó két mező, a LastRenovationDate és az Értékelés rendezhető, ami egy "$orderby"
egyetlen záradékban való használat követelménye.
A mezőattribútum-definíciókért lásd az Index létrehozása (REST API) című témakört.
Jogkivonatok hatása a lekérdezésekre
Az indexelés során a keresőmotor sztringeken lévő szövegelemzővel maximalizálja az egyezés keresésének lehetőségét a lekérdezési időpontban. A sztringek minimálisan kisbetűsek, de az elemzőtől függően lemmatizálást is elvégezhetnek, és leálltathatják a szavak eltávolítását. A nagyobb sztringeket vagy összetett szavakat általában szóközök, kötőjelek vagy kötőjelek szerint osztják fel, és külön jogkivonatként indexelik.
A lényeg az, hogy az index tartalma és a benne lévő tartalom eltérhet. Ha a lekérdezések nem adnak vissza várt eredményeket, az elemző által létrehozott jogkivonatokat az Elemzési szöveg (REST API) segítségével vizsgálhatja meg. A tokenizálásról és a lekérdezésekre gyakorolt hatásról további információt a részleges kifejezéskeresés és a speciális karaktereket tartalmazó minták című témakörben talál.
Kapcsolódó tartalom
Most, hogy jobban megismerte a lekérdezési kérelmek működését, próbálkozzon az alábbi gyorsútmutatókkal a gyakorlati élmény érdekében.