Megosztás a következőn keresztül:


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

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.

  • searchModemegadja, 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 a searchMode=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.

  1. Jelentkezzen be az Azure Portalra , és keresse meg a keresési szolgáltatást.

  2. A szolgáltatásban válassza az Indexek lehetőséget, és válasszon egy indexet.

  3. 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:

    Képernyőkép a Search Explorerről egy teljes szöveges lekérdezéssel.

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.

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 szállodai minta indexdefinícióját bemutató képernyőkép.

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.

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.