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


Dokumentumok keresése (REST API előzetes verziója)

A következővonatkozik: 2023-07-01-Preview. Ez a verzió már nem támogatott. Frissítés azonnal egy újabb verzióra.

Fontos

2023-07-01-Preview hozzáadja:

  • "vektorok" a vektoros lekérdezési kéréseket meghatározó lekérdezési paramétert. Minden objektumnak tartalmaznia kell a lekérdezés vektoros ábrázolását, az eredményekben visszaadni kívánt legközelebbi szomszédok "k" számát és a lekérdezés végrehajtása során használandó vektormezőket.

2021-04-30-Preview hozzáadja:

  • "szemanticConfiguration" támogatja az adott mezők szemantikai rangsorolását.
  • "feliratok" a legmagasabb szemantikailag rangsorolt dokumentumok kulcsszakaszaiból kinyert kifejezéseket adja vissza.

2020-06-30-Preview hozzáadja:

  • "queryType=szemantikus" támogatja a szemantikai újrarankálást és a válaszokat.
  • "searchFields" szemantikai lekérdezésben meghatározza a feliratok és válaszok megfogalmazásához használt mezők prioritási sorrendjét. Ezt a megközelítést "szemanticConfiguration" váltotta fel 2021-04-30 előzetes verzióban, és mára elavult.
  • "speller" lehetővé teszi a helyesírás-javítást a lekérdezés bemenetén.
  • "queryLanguage" szükséges a "queryType=szemantic" és a "speller" kifejezéshez is.
  • "featuresMode" kicsomagolja a keresési pontszámot, jelentést készít a mezőnkénti kifejezés gyakoriságáról, a mezőnkénti hasonlósági pontszámról és az egyedi találatok mezőnkénti számáról.

A lekérdezési kérelem egy keresési szolgáltatás egyetlen indexének dokumentumgyűjteményét célozza meg. Olyan paramétereket tartalmaz, amelyek meghatározzák a megfeleltetés feltételeit, valamint a választ formázó paramétereket. Egy index aliasát is használhatja egy adott index megcélzásához, nem pedig magát az indexnevet.

A legtöbb lekérdezéshez használhatja a GET vagy a POST függvényt, de a VEKTOR függvényt a vektorkereséshez kell használnia, mert a vektoros lekérdezési paraméterek nem férnek el az URI-ben. lekérdezési paraméterek a GET-kérések lekérdezési sztringjében és a POST-kérelmek kérelemtörzsében vannak megadva.

GET https://[service name].search.windows.net/indexes/[index name]/docs?[query parameters] 
  Content-Type: application/json   
  api-key: [admin or query key]  

HA POST-ot használ, adja hozzá a "search" műveletet URI-paraméterként.

POST https://[service name].search.windows.net/indexes/[index name]/docs/search?api-version=[api-version]  
  Content-Type: application/json  
  api-key: [admin or query key]  

GET használatával hívva a kérelem URL-címe nem haladhatja meg a 8 KB-ot. Ez a hossz a legtöbb alkalmazáshoz elegendő. Egyes alkalmazások azonban nagy lekérdezéseket hoznak létre, különösen OData-szűrőkifejezések használatakor. Ezekben az alkalmazásokban a HTTP POST jobb választás, mert nagyobb szűrőket tesz lehetővé, mint a GET.

A POST esetében a szűrőben lévő záradékok száma a korlátozó tényező, nem pedig a nyers szűrősztring mérete, mivel a POST kérelemméretének korlátja körülbelül 16 MB. Bár a POST kérelem méretkorlátja nagy, a szűrőkifejezések nem lehetnek tetszőlegesen összetettek. A szűrés összetettségi korlátaival kapcsolatos további információkért tekintse meg Az Azure AI SearchOData Kifejezésszintaxisa című témakört.

URI-paraméterek

Paraméter Leírás
szolgáltatásnév Szükséges. Állítsa ezt a nevet a keresési szolgáltatás egyedi, felhasználó által definiált nevére.
index neve/dokumentumai Szükséges. Egy elnevezett index dokumentumgyűjteményét adja meg. Az indexnév helyett egy index aliasának neve is használható.
lekérdezési paraméterek A lekérdezési paraméterek a GET-kérések URI-jában és a POST-kérések kérelemtörzsében vannak megadva.
api-verzió Szükséges. További verziókért lásd API-verziókat.

URL-kódolási javaslatok

Ne felejtse el URL-kódolást adott lekérdezési paramétereket a GET REST API közvetlen meghívásakor. A Keresési dokumentumok művelet esetén az URL-kódolás szükséges lehet a következő lekérdezési paraméterekhez:

  • keresés
  • $filter
  • Tényezője
  • highlightPreTag
  • highlightPostTag

Az URL-kódolás csak az egyes paraméterek esetében ajánlott. Ha véletlenül URL-kódolja a teljes lekérdezési sztringet (a ?után), a kérések megszakadnak.

Emellett az URL-kódolás csak akkor szükséges, ha a REST API-t közvetlenül a GET használatával hívja meg. A POST használatakor vagy a Azure AI Search .NET-ügyfélkódtárhasználatakor nincs szükség URL-kódolásra, amely kezeli az Ön számára a kódolást.

Kérelemfejlécek

Az alábbi táblázat a szükséges és nem kötelező kérelemfejléceket ismerteti.

Mezők Leírás
Tartalomtípus Szükséges. Állítsa ezt az értéket "application/json" értékre
api-key Nem kötelező, ha Azure-szerepköröket használ, és egy tulajdonosi jogkivonatot ad meg a kéréshez, ellenkező esetben kulcsra van szükség. Az API-kulcs egy egyedi, rendszer által generált sztring, amely hitelesíti a keresési szolgáltatásnak küldött kérést. A dokumentumgyűjteményre irányuló lekérdezési kérések megadhatnak rendszergazdai vagy lekérdezési kulcsot API-kulcsként. A lekérdezéskulcs a dokumentumgyűjteményen végzett írásvédett műveletekhez használható. A részletekért lásd: Csatlakozás az Azure AI Search szolgáltatáshoz kulcshitelesítési használatával.

Kérelem törzse

Get: Nincs.

POST esetén:

{  
     "answers": "none" (default) | "extractive", 
     "count": true | false (default),
     "captions": "none" (default) | "extractive",
     "facets": [ "facet_expression_1", "facet_expression_2", ... ],  
     "featuresMode" : "disabled" (default) | "enabled",
     "filter": "odata_filter_expression",  
     "highlight": "highlight_field_1, highlight_field_2, ...",  
     "highlightPreTag": "pre_tag",  
     "highlightPostTag": "post_tag",  
     "minimumCoverage": # (% of index that must be covered to declare query successful; default 100),  
     "orderby": "orderby_expression",
     "queryLanguage": "en-us" (default) | (a supported language code), 
     "queryType": "simple" (default) | "full" | "semantic",
     "scoringParameters": [ "scoring_parameter_1", "scoring_parameter_2", ... ],  
     "scoringProfile": "scoring_profile_name",  
     "scoringStatistics" : "local" (default) | "global",
     "search": "simple_query_expression",  
     "searchFields": "field_name_1, field_name_2, ...",  
     "searchMode": "any" (default) | "all",  
     "select": "field_name_1, field_name_2, ...",  
     "semanticConfiguration": "semantic_configuration_name",
     "sessionId" : "session_id",
     "skip": # (default 0), 
     "speller": "none" (default) | "lexicon",  
     "top": #,
     "vectors": [
      {
        "value": "a vector representation of the query",
        "k": an integer (number of nearest neighbors to return as top results),
        "fields": "a comma-delimited list of vector fields to use in the query"
      }
     ]
   }  

részleges keresési válaszok folytatása

Előfordulhat, hogy az Azure AI Search nem tudja egyetlen keresési válaszban visszaadni az összes kért találatot. A részleges válasz különböző okokból történhet, például ha a lekérdezés túl sok dokumentumot ad vissza úgy, hogy nem adja meg a $top, vagy ha túl nagy értéket ad meg a $top értékhez. Ilyen esetekben az Azure AI Search tartalmazza a @odata.nextLink megjegyzést a válasz törzsében, és @search.nextPageParameters, hogy post-kérés volt-e. Ezeknek a széljegyzeteknek az értékeivel létrehozhat egy másik keresési kérést a keresési válasz következő részének lekéréséhez. Ezt a viselkedést az eredeti keresési kérelem folytatási nevezik, a széljegyzeteket pedig folytatási jogkivonatoknak. A megjegyzések szintaxisának és a válasz törzsben való megjelenésének részleteiért tekintse meg a Válasz szakaszban található példát.

Az Azure AI Search a folytatási jogkivonatok visszaadásának okai implementációspecifikusak és változhatnak. A robusztus ügyfeleknek mindig készen kell állniuk az olyan esetek kezelésére, amikor a vártnál kevesebb dokumentumot adnak vissza, és egy folytatási jogkivonatot tartalmaz a dokumentumok további lekéréséhez. Azt is vegye figyelembe, hogy a folytatáshoz ugyanazt a HTTP-metódust kell használnia, mint az eredeti kérelem. Ha például GET kérést küldött, az elküldött folytatási kérelmeknek a GET (és hasonlóképpen a POST) parancsot is használniuk kell.

Jegyzet

A @odata.nextLink és a @search.nextPageParameters célja, hogy megvédje a szolgáltatást a túl sok eredményt kérő lekérdezésekkel szemben, és ne biztosítson általános mechanizmust a lapozáshoz. Ha az eredményeket szeretné áttekinteni, használja $top és $skip együtt. Ha például 10-es méretű oldalakat szeretne, az első kérésnek $top=10 és $skip=0, a második kérésnek $top=10 és $skip=10, a harmadik kérésnek $top=10 és $skip=20 stb.

Lekérdezési paraméterek

A lekérdezések több paramétert is elfogadnak az URL-címen, ha GET-vel hívják meg őket, és JSON-tulajdonságokként a kérelem törzsében, amikor POST használatával hívják meg őket. Egyes paraméterek szintaxisa kissé eltér a GET és a POST függvény között. Ezeket a különbségeket az alábbi táblázat ismerteti.

Név Típus Leírás
válaszok (előzetes verzió) húr Szabadon választható. Az érvényes értékek a "none" és a "extractive". Alapértelmezés szerint "nincs". Ez a paraméter csak akkor érvényes, ha a lekérdezés típusa "szemantikai". Ha "kivonatoló" értékre van állítva, a lekérdezés a legmagasabb szemantikailag rangsorolt dokumentumok kulcsszakaszaiból hoz létre és ad vissza válaszokat. Az alapértelmezett válasz egy válasz, de darabszám hozzáadásával legfeljebb 10-et adhat meg. Például a "answers": "extractive|count-3" három választ ad vissza. A válasz visszaadásához szó szerinti tartalomnak kell lennie a megcélzott mezőben, amely válasznak tűnik. A válaszokhoz használt nyelvi modellek a válaszok felismerésére, nem pedig a létrehozásukra vannak betanítve. Emellett magának a lekérdezésnek is kérdésnek kell kinéznie.
api-verzió húr Szükséges. A kérelemhez használt REST API verziója. A támogatott verziók listáját API-verziókcímű témakörben találja. Ebben a műveletben az API-verzió URI-paraméterként van megadva, függetlenül attól, hogy a GET vagy a POST használatával hívja-e Keresési dokumentumok.
feliratok (előzetes verzió) húr Szabadon választható. Az érvényes értékek a "none" és a "extractive". Alapértelmezés szerint "nincs". Ez a paraméter csak akkor érvényes, ha a lekérdezés típusa "szemantikai". Ha "kinyerő" értékre van állítva, a lekérdezés a legmagasabb rangsorolt dokumentumok kulcsszakaszaiból kinyert feliratokat adja vissza. Ha a feliratok "extractive" értékre van állítva, a kiemelés alapértelmezés szerint engedélyezve van, és konfigurálható a(z) |cső karakter hozzáfűzésével, majd a "highlight-<true/false>" (például "extractive|highlight-true" ) lehetőséggel.
$count Logikai Szabadon választható. Az érvényes értékek "igaz" vagy "hamis". Alapértelmezés szerint "false" (hamis). A POST használatával történő meghívás esetén ez a paraméter a szám nevet viseli a $count helyett. Megadja, hogy lekérje-e az eredmények teljes számát. Ez az érték a keresési és $filter paramétereknek megfelelő dokumentumok száma, figyelmen kívül hagyva $top és $skip. Ha ezt az értéket "true" értékre állítja, az ronthatja a teljesítményt. A darabszám akkor pontos, ha az index stabil, de az aktívan hozzáadott, frissített vagy törölt dokumentumok alá vagy túljelentkeznek. Ha dokumentum nélkül szeretné csak a darabszámot lekérni, használhatja a $top=0 értéket.
aspektusok vagy aspektusok húr Szabadon választható. Egy olyan mező, amely alapján a mező "facetable"-ként van elosztva. Get használatával meghívva facet mező (facet: field1). POST használatával történő meghívás esetén ez a paraméter facet helyett facets nevet adja, és tömbként (facets: [field1, field2, field3]) van megadva. A sztring tartalmazhat paramétereket az arculat testreszabásához, vesszővel tagolt név-érték párokként kifejezve.

Érvényes értékek a következők: "count", "sort", "values", "interval" és "timeoffset".

"darabszám" az aspektuskifejezések maximális száma; alapértelmezett értéke 10. A kifejezések számának nincs felső korlátja, de a magasabb értékek rontják a teljesítményt, különösen akkor, ha az arculati mező nagy számú egyedi kifejezést tartalmaz. A "facet=category,count:5" például az első öt kategóriát kapja meg az eredményben. Ha a darabszám paraméter kisebb, mint az egyedi kifejezések száma, előfordulhat, hogy az eredmények nem pontosak. Ennek az az oka, hogy a rendszer hogyan osztja el az arculati lekérdezéseket a szegmensek között. Ha az összes szegmensben pontos számot szeretne kapni, nullára vagy olyan értékre állíthatja be a darabszámot, amely nagyobb vagy egyenlő a facetable mező egyedi értékeinek számánál. A kompromisszum nagyobb késést jelent.

"rendezés" lehet "darabszám", "-count", "value", "-value". A darabszám használatával csökkenő sorrendbe rendezheti a darabszámot. A -count használatával növekvő sorrendben rendezheti a számokat. Érték alapján növekvő rendezés. A -value segítségével csökkenő sorrendbe rendezheti az értékeket (például "facet=category,count:3,sort:count" az első három kategóriát kapja meg a aspektusban, és csökkenő sorrendben jeleníti meg az egyes városneveket tartalmazó dokumentumok számát). Ha az első három kategória a Költségvetés, a Motel és a Luxus, és a Budget öt találatot, Motel hat, a Luxus négy, akkor a gyűjtők sorrendben Motel, Költségvetés, Luxus. Az -value (facet=rating,sort:-value) érték szerint csökkenő sorrendben (például ha az értékelések 1 és 5 között vannak, a gyűjtők 5, 4, 3, 2, 1 sorrendben jelennek meg, függetlenül attól, hogy hány dokumentum felel meg az egyes minősítéseknek).

"értékek" csövesen tagolt numerikus vagy Edm.DateTimeOffset értékekre állíthatók be, amely dinamikus adatbeviteli értékeket (például "facet=baseRate,values:10 | A 20" három gyűjtőt hoz létre: egyet az alapkamat 0-ig, de nem tartalmazza a 10-et, egyet a 10-ig, de nem beleértve a 20-t, egyet pedig a 20-ig vagy annál magasabbig). A "facet=lastRenovationDate,values:2010-02-01T00:00:00Z" sztring két gyűjtőt hoz létre: egyet a 2010 februárja előtt felújított szállodákhoz, egyet pedig a 2010. február 1-jei vagy újabb felújítású szállodákhoz. Az értékeknek sorrendben, növekvő sorrendben kell szerepelnie a várt eredmények lekéréséhez.

"intervallum" számok esetén 0-nál nagyobb egész szám, vagy a dátum időértékeinek perc, óra, nap, hét, hónap, negyedév, év. Például a "facet=baseRate,interval:100" gyűjtőket állít elő a 100-es méretű alapkamattartományok alapján. Ha az alapkamatok 60 és 600 usd között vannak, akkor 0-100, 100-200, 200-300, 300-400, 400-500 és 500-600 gyűjtők lesznek. A "facet=lastRenovationDate,interval:year" sztring minden évben egy gyűjtőt hoz létre a szállodák felújításakor.

"timeoffset" értéke ([+-]hh:mm, [+-]hhmm vagy [+-]hh). Ha ezt használja, az időeltérési paramétert össze kell kapcsolni az intervallum beállítással, és csak akkor, ha az Edm.DateTimeOffset típusú mezőre van alkalmazva. Az érték az időhatárok beállításához figyelembe venni kívánt UTC időeltolást adja meg. Például: "facet=lastRenovationDate,interval:day,timeoffset:-01:00" a naphatárt használja, amely 01:00:00 (UTC) időpontban (a cél időzónában éjfélkor) kezdődik.

darabszám és rendezés ugyanabban a aspektusban kombinálható, de nem kombinálhatók intervallummal vagy értékekkel, és az intervallum és az értékek nem kombinálhatók egymással.

dátum időintervallumainak kiszámítása az UTC-idő alapján történik, ha az időeltolás nincs megadva. Például: a "facet=lastRenovationDate,interval:day" esetében a nap határa 00:00:00 UTC-kor kezdődik.
featuresMode (előzetes verzió) Logikai Szabadon választható. Az érvényes értékek "engedélyezve" és "letiltva" vannak. Az alapértelmezett érték a "letiltva". Az az érték, amely meghatározza, hogy az eredményeknek tartalmazniuk kell-e lekérdezés eredményfunkcióit,, amelyek egy dokumentum relevanciapontszámának kiszámítására szolgálnak a lekérdezéshez képest, például mező-hasonlóságonként. Az "engedélyezve" funkcióval további lekérdezési eredmények jeleníthetők meg: mező-hasonlósági pontszám, mezőnkénti kifejezés gyakorisága és az egyedi jogkivonatok mezőnkénti száma. További információ: Hasonlóság és pontozás.
$filter húr Szabadon választható. Strukturált keresési kifejezés a standard OData szintaxisban. Szűrőben csak szűrhető mezők használhatók. A POST használatával történő meghívás esetén ezt a paramétert szűrőnek nevezzük $filter helyett. Az Azure AI Search OData kifejezésszintaxisát az Azure AI Search által támogatott OData-kifejezés-nyelvhelyesség részhalmazában találja.
kiemel húr Szabadon választható. A találatkiemelésekhez használt vesszővel tagolt mezőnevek halmaza. Csak kereshető mezők használhatók a találatok kiemeléséhez. Az Azure AI Search alapértelmezés szerint mezőnként legfeljebb öt kiemelést ad vissza. A korlát mezőnként konfigurálható a mező neve után a "-<kiemelések maximális száma>" hozzáfűzésével. A "highlight=title-3,description-10" például legfeljebb három kiemelt találatot ad vissza a címmezőből, és legfeljebb 10 találatot a leírásmezőből. A kiemelések maximális számának 1 és 1000 közötti egész számnak kell lennie.
highlightPostTag húr Szabadon választható. Alapértelmezés szerint "</em>". A kiemelt kifejezéshez hozzáfűző sztringcímke. A highlightPreTag értéket kell megadni. Az URL-címben lévő fenntartott karaktereknek százalékkódoltnak kell lenniük (például a #helyett %23).
highlightPreTag húr Szabadon választható. Alapértelmezés szerint "</em>". A kiemelt kifejezésre előre felerősített sztringcímke. A highlightPostTag értéket kell beállítani. Az URL-címben lévő fenntartott karaktereknek százalékkódoltnak kell lenniük (például a #helyett %23).
minimális hozzáférés egész szám Szabadon választható. Az érvényes értékek egy 0 és 100 közötti szám, amely annak az indexnek a százalékos arányát jelzi, amelynek elérhetőnek kell lennie ahhoz, hogy a lekérdezést sikeresként lehessen jelenteni. Alapértelmezés szerint "100".

Száz százalékos lefedettség azt jelenti, hogy minden szegmens válaszolt a kérésre (sem a szolgáltatás állapotával kapcsolatos problémák, sem a karbantartási tevékenységek nem csökkentették a lefedettséget). Az alapértelmezett beállításnál a teljesnél kisebb lefedettség az 503-ás HTTP-állapotkódot adja vissza.

Minimális helyreállítás csökkentése akkor lehet hasznos, ha 503 hiba történik, és növelni szeretné a lekérdezés sikerességének valószínűségét, különösen az egy replikához konfigurált szolgáltatások esetében. Ha a minimumfeltárás és a keresés sikeres, az HTTP 200 értéket ad vissza, és egy @search.coverage értéket tartalmaz a válaszban, amely a lekérdezésben szereplő index százalékos arányát jelzi. Ebben a forgatókönyvben nem minden egyező dokumentum szerepel a keresési eredmények között, de ha a keresés rendelkezésre állása fontosabb a visszahívásnál, akkor a lefedettség csökkentése életképes kockázatcsökkentési stratégia lehet.
$orderby húr Szabadon választható. Vesszővel tagolt kifejezések listája az eredmények rendezéséhez. A POST használatával történő meghívás esetén ez a paraméter a $orderby helyett orderby névvel van elnevezve. Minden kifejezés lehet mezőnév vagy a geo.distance() függvény hívása. Minden kifejezést követhet az "asc" a növekvő, a "desc" pedig a csökkenő jelzéshez. Ha a rendezési mezőben null értékek szerepelnek, a null értékek először növekvő sorrendben jelennek meg, és csökkenő sorrendben tartanak. Az alapértelmezett érték növekvő sorrend. A dokumentumok egyezésének pontszáma megszakítja a kötelékeket. Ha nincs megadva $orderby, az alapértelmezett rendezési sorrend a dokumentumegyezés pontszáma szerint csökkenő lesz. A $orderby legfeljebb 32 záradékot tartalmaz.
queryLanguage (előzetes verzió) húr Szabadon választható. Az érvényes értékek támogatott nyelvi. Alapértelmezés szerint "en-us". Ezt a paramétert be kell állítani, ha a speller=lexicon vagy a queryType=szemantic függvényt használja. A queryLanguage-ban megadott nyelvet használják a helyesírás-ellenőrzéshez, valamint a szemantikai modellekhez, amelyek újrafedik az eredményeket, és kinyernek egy feliratot vagy választ. A queryLanguage-hoz használt kódtárak függetlenek más területi alapú mezőattribútumtól, például nyelvelemzők indexeléshez és teljes szöveges kereséshez.
queryType húr Szabadon választható. Az érvényes értékek a következők: "simple", "full", vagy "szemantic" (előzetes verzió). Alapértelmezés szerint "egyszerű". Ezt az értéket a vektorkeresés figyelmen kívül hagyja, de a hibrid forgatókönyvekben a szöveges keresésre vonatkozik.

"simple" a lekérdezési sztringeket az egyszerű lekérdezési szintaxis használatával értelmezi, amely lehetővé teszi az olyan szimbólumok használatát, mint a +, a *és a "". A lekérdezések alapértelmezés szerint az egyes dokumentumok összes kereshető mezőjében (vagy a keresőmezőkben megjelölt mezőkben) kiértékelésre kerülnek.

"full" a teljes Lucene lekérdezési szintaxissal értelmezi a lekérdezési sztringeket, amely lehetővé teszi a mezőspecifikus és súlyozott kereséseket. A Lucene lekérdezési nyelv tartománykeresése nem támogatott a $filter mellett, amely hasonló funkciókat kínál.

a "szemantika" javítja a keresési eredmények pontosságát azáltal, hogy a Bing korpuszon betanított rangsorolási modell használatával az első 50 találatot a kulcsszavak helyett természetes nyelven kifejezett lekérdezésekre tanítja. Ha szemantikusra állítja a lekérdezés típusát, akkor a queryLanguage és a szemanticConfiguration értéket is be kell állítania. Ha a lekérdezési bemenet természetes nyelven lett kialakítva ("mi az a ...) a 3 legjobb választ is vissza szeretné adni, akkor igény szerint feliratokat is beállíthat, hogy kinyerje a legfontosabb részeket a legmagasabb rangsorolt dokumentumokból.
scoringParameter húr Szabadon választható. Egy pontozófüggvényben (például referencePointParameter) definiált paraméterek értékeit jelzi a "name-value1,value2,..." formátumban A POST használatával történő meghívás esetén ezt a paramétert scoringParametersnek nevezzük a scoringParameter helyett. Emellett sztringek JSON-tömbjeként is megadhatja, ahol minden sztring külön név-érték pár.

Függvényt tartalmazó pontozási profilok esetén a függvényt - karakterrel válassza el a bemeneti listától. Egy "mylocation" nevű függvény például "&scoringParameter=mylocation--122.2,44.8" lenne. Az első kötőjel elválasztja a függvény nevét az értéklistától, míg a második kötőjel az első érték része (ebben a példában a hosszúság).

Olyan pontozási paraméterek esetén, mint például a vesszőket tartalmazó címkék kiemelése, a lista ilyen értékeit egyetlen idézőjel használatával elkerülheti. Ha maguk az értékek egyetlen idézőjelet tartalmaznak, a duplázással elkerülheti őket. Tegyük fel, hogy rendelkezik egy "mytag" nevű címkenövelő paraméterrel, és a "Hello, O'Brien" és "Smith" címkeértékeket szeretné növelni, a lekérdezési sztring beállítás ezután a következő lesz: "&scoringParameter=mytag-'Hello, O''Brien',Smith". Az idézőjelek csak vesszőket tartalmazó értékekhez szükségesek.
scoringProfile húr Szabadon választható. Egy pontozási profil neve, amely kiértékeli az egyező dokumentumok egyező pontszámait az eredmények rendezése érdekében.
scoringStatistics húr Szabadon választható. Az érvényes értékek a "helyi" vagy a "globális" értékek. Alapértelmezés szerint "helyi". Megadhatja, hogy számítsa ki a pontozási statisztikákat, például a dokumentum gyakoriságát, globálisan (az összes szegmensben) a következetesebb pontozás érdekében, vagy helyileg (az aktuális szegmensen) az alacsonyabb késés érdekében. Lásd pontozási statisztikákat az Azure AI Search. A pontozási statisztikák mindig helyileg lesznek kiszámítva az homályos keresést (~)használó kifejezésekhez.
keresés húr Szabadon választható. A keresendő szöveg. Ezt az értéket a vektorkeresés figyelmen kívül hagyja, de a hibrid forgatókönyvekben a szöveges keresésre vonatkozik. A REST API-kban a rendszer alapértelmezés szerint minden kereshető mezőt keres, kivéve, ha a searchFields van megadva. Az indexben a kereshető mezőkben lévő szöveg jogkivonatos, így több kifejezés is elválasztható szóközzel (például: "search=hello world"). Bármely kifejezéshez használjon * (ez logikai szűrőlekérdezések esetén lehet hasznos). A paraméter kihagyása ugyanolyan hatással van, mint a *beállítása. A keresési szintaxissal kapcsolatos részletekért tekintse meg egyszerű lekérdezési szintaxist.

Az eredmények néha meglepőek lehetnek a kereshető mezők lekérdezése során. A tokenizer olyan logikát tartalmaz, amely az angol nyelvű szövegekben gyakran előforduló eseteket, például az aposztrófokat, a számok vesszőit stb. kezeli. A "search=123,456" kifejezés például egyetlen "123 456" kifejezéssel fog megegyezni a "123" és a "456" egyedi kifejezés helyett, mivel a vesszőket több ezer elválasztóként használják angol nyelven. Ezért azt javasoljuk, hogy írásjelek helyett használjon szóközt a keresési paraméterben lévő kifejezések elkülönítéséhez.
searchMode húr Szabadon választható. Az érvényes értékek az "any" vagy az "all" (az összes) alapértelmezett értéke a "bármely" értékre. Megadja, hogy a keresési kifejezések bármelyikét vagy mindegyikét egyezőnek kell-e tekinteni ahhoz, hogy a dokumentumot egyezésnek számítsa.
searchFields húr Szabadon választható. A megadott szöveg kereséséhez használt vesszővel tagolt mezőnevek listája. A célmezőket kereshetőként kell megjelölni az indexsémában, és Edm.String, Edm.ComplexTypevagy Collection(Edm.String)típusúnak kell lenniük.
$select húr Szabadon választható. Az eredményhalmazba felvenni kívánt vesszővel tagolt mezők listája. Ebben a záradékban csak beolvashatóként megjelölt mezők vehetők fel. Ha nincs meghatározva, vagy *értékre van állítva, a sémában lekérdezhetőként megjelölt összes mező szerepel a kivetítésben. A POST használatával történő meghívás esetén ez a paraméter a $select helyett a Select nevet adja.
szemanticConfiguration (előzetes verzió) húr Szabadon választható. Kötelező, ha queryType="szemantic". Annak a szemantikai konfigurációnak a neve, amely felsorolja, hogy mely mezőket kell használni a szemantikai rangsoroláshoz, a feliratokhoz, a kiemelésekhez és a válaszokhoz. További információ: Szemantikai lekérdezés létrehozása.
sessionId húr Szabadon választható. A sessionId használatával javíthatja a több replikával rendelkező keresési szolgáltatások relevanciapont-konzisztenciáját. Többreplika-konfigurációkban az egyes dokumentumok relevanciájú pontszámai között kisebb különbségek lehetnek ugyanazon lekérdezéshez. Amikor meg van adva egy munkamenet-azonosító, a szolgáltatás mindent megtesz annak érdekében, hogy egy adott kérést ugyanarra a replikára irányítson át az adott munkamenethez. Ügyeljen arra, hogy ugyanazon munkamenet-azonosító értékek ismételt használata megzavarhatja a kérések terheléselosztását a replikák között, és hátrányosan befolyásolhatja a keresési szolgáltatás teljesítményét. A munkamenet-azonosítóként használt érték nem kezdődhet "_" karakterrel. Ha egy szolgáltatás nem rendelkezik replikákkal, ez a paraméter nincs hatással a teljesítményre vagy a pontszám konzisztenciájára.
$skip egész szám Szabadon választható. A kihagyandó keresési eredmények száma. A POST használatával történő meghívás esetén ezt a paramétert a rendszer kihagyásnak nevezi $skip helyett. Ez az érték nem lehet nagyobb 100 000-nél. Ha egymás után kell beolvasnia a dokumentumokat, de a korlátozás miatt nem tudja használni a $skip, érdemes lehet $orderby olyan mezőben használni, amely egyedi értékeket tartalmaz az index minden dokumentumához (például a dokumentumkulcshoz), és $filter egy tartomány lekérdezéssel.
helyesírás-ellenőrző (előzetes verzió) Húr Szabadon választható. Az érvényes értékek a "none" és a "lexikon". Az alapértelmezett érték a "none". A visszahívás javítása az egyes keresési lekérdezési kifejezések helyesírás-javításával. Egyszerű, teljes és szemantikai lekérdezéstípusokon is használhatja. Ha ezt használja, a helyesírás-ellenőrző paraméterhez queryLanguage szükséges. További információ és példák: Helyesírás-ellenőrzés hozzáadása lekérdezésekhez.
$top egész szám Szabadon választható. A lekérendő keresési eredmények száma. Ez az alapértelmezett érték 50. A POST használatával történő meghívás esetén ez a paraméter a $top helyett a felső névvel lesz elnevezve. Ha 1000-nél nagyobb értéket ad meg, és több mint 1000 találatot ad meg, a rendszer csak az első 1000 találatot adja vissza, valamint a következő találatoldalra mutató hivatkozást (lásd az alábbi példában a "@odata.nextLink" elemet).

Azure AI Search kiszolgálóoldali lapozási használatával megakadályozza, hogy a lekérdezések egyszerre túl sok dokumentumot beolvasjanak. Az alapértelmezett oldalméret 50, míg a maximális oldalméret 1000. Ez azt jelenti, hogy alapértelmezés szerint keresési dokumentumok legfeljebb 50 találatot ad vissza, ha nem adja meg a $top. Ha több mint 50 találat van, a válaszban legfeljebb 50 találat következő oldalának lekérésére vonatkozó információk találhatók (lásd az alábbi Példák "@odata.nextLink" és "@search.nextPageParameters" című szakaszát. Hasonlóképpen, ha 1000-nél nagyobb értéket ad meg $top, és több mint 1000 találat van, csak az első 1000 találat lesz visszaadva, valamint az 1000 találat következő oldalának lekéréséhez szükséges információk.
vektorok (előzetes verzió) tömb Szabadon választható. A tömb objektumtípusa vektoros lekérdezés. A vektoros lekérdezések lekérdezési paraméterei.

"érték" egy keresési lekérdezés vektoros ábrázolása. Ezt a reprezentációt külsőleg kell kialakítani. Az Azure AI Search nem hoz létre beágyazásokat.

"k" egy egész szám, amely a legközelebbi szomszédok számát adja meg, hogy top találatként térjen vissza. Az alapértelmezett érték 50. A minimum 1, a maximum pedig 10 000.

"mezők" vektoradatokat tartalmazó vesszővel tagolt listamezők. A "mezők" listában csak Collection(Edm.Single) típusú mezők vehetők fel.

Válasz

Állapotkód: A rendszer a sikeres válaszhoz 200 OK-t ad vissza. Ebben a cikkben két mintaválasz található, egyet a szemantikai kereséshez és a featuresMode-hoz.

Mintaválasz szemantikai lekérdezéshez

Az első példa a szemantikai lekérdezés legfelső eredményére adott teljes választ jeleníti meg, "hogyan alakulnak a felhők".

  • A "@search.answers" kifejezés akkor jelenik meg, amikor megadja a válaszparamétert, és amikor a lekérdezés és az index célmezői olyan tartalmat tartalmaznak, amely válaszként felismerhető. A @search.answers tömb, amely kulcsokkal, szövegekkel és kiemelésekkel rendelkezik. A pontszám a válasz erősségének mutatója.

  • Az "érték" a válasz törzse. A @search.rerankerScore a szemantikai rangsorolási algoritmus rendeli hozzá, és az eredmények rangsorolására szolgál (@search.score a BM25 hasonlósági algoritmusból származik, amelyet a kezdeti eredmények kiértékelésekor használnak). A feliratok egyszerű szöveget és kiemelt verziókat tartalmaznak. Ez a példa OCR- és entitásfelismerő képességekkel készült. A kinyert és egyesített tartalom mezői szerepelnek a válaszban.

{
    "@search.answers": [
        {
            "key": "aHR0cHM6Ly9oZWlkaXN0YmxvYnN0b3JhZ2UuYmxvYi5jb3JlLndpbmRvd3MubmV0L25hc2EtZWJvb2stMS01MC9wYWdlLTQ1LnBkZg2",
            "text": "Sunlight heats the land all day, warming that moist air and causing it to rise high into the atmosphere until it cools and condenses into water droplets. Clouds generally form where air is ascending (over land in this case),   but not where it is descending (over the river).",
            "highlights": "Sunlight heats the land all day, warming that moist air and causing it to rise high into the   atmosphere until it cools and condenses into water droplets. Clouds generally form<em> where air is ascending</em> (over land in this case),   but not where it is<em> descending</em> (over the river).",
            "score": 0.94639826
        }
    ],
    "value": [
        {
            "@search.score": 0.5479723,
            "@search.rerankerScore": 1.0321671911515296,
            "@search.captions": [
                {
                    "text": "Like all clouds, it forms when the air reaches its dew point—the temperature at which an air mass is cool enough for its water vapor to condense into liquid droplets. This false-color image shows valley fog, which is common in the Pacific Northwest of North America.",
                    "highlights": "Like all<em> clouds</em>, it<em> forms</em> when the air reaches its dew point—the temperature at    which an air mass is cool enough for its water vapor to condense into liquid droplets. This false-color image shows valley<em> fog</em>, which is common in the Pacific Northwest of North America."
                }
            ],
            "content": "\nA\nT\n\nM\nO\n\nS\nP\n\nH\nE\n\nR\nE\n\nE\nA\n\nR\nT\n\nH\n\n34\n\nValley Fog\nCanada\n\nFog is essentially a cloud lying on the ground. Like all clouds, it forms when the air reaches its dew point—the temperature at  \n\nwhich an air mass is cool enough for its water vapor to condense into liquid droplets.\n\nThis false-color image shows valley fog, which is common in the Pacific Northwest of North America. On clear winter nights, the \n\nground and overlying air cool off rapidly, especially at high elevations. Cold air is denser than warm air, and it sinks down into the \n\nvalleys. The moist air in the valleys gets chilled to its dew point, and fog forms. If undisturbed by winds, such fog may persist for \n\ndays. The Terra satellite captured this image of foggy valleys northeast of Vancouver in February 2010.\n\n\n",
            "metadata_storage_path": "aHR0cHM6Ly9oZWlkaXN0YmxvYnN0b3JhZ2UuYmxvYi5jb3JlLndpbmRvd3MubmV0L25hc2EtZWJvb2stMS01MC9wYWdlLTQxLnBkZg2",
            "people": [],
            "locations": [
                "Pacific Northwest",
                "North America",
                "Vancouver"
            ],
            "merged_content": "\nA\nT\n\nM\nO\n\nS\nP\n\nH\nE\n\nR\nE\n\nE\nA\n\nR\nT\n\nH\n\n34\n\nValley Fog\nCanada\n\nFog is essentially a cloud lying on the ground. Like all clouds, it forms when the air reaches its dew point—the temperature at  \n\nwhich an air mass is cool enough for its water vapor to condense into liquid droplets.\n\nThis false-color image shows valley fog, which is common in the Pacific Northwest of North America. On clear winter nights, the \n\nground and overlying air cool off rapidly, especially at high elevations. Cold air is denser than warm air, and it sinks down into the \n\nvalleys. The moist air in the valleys gets chilled to its dew point, and fog forms. If undisturbed by winds, such fog may persist for \n\ndays. The Terra satellite captured this image of foggy valleys northeast of Vancouver in February 2010.\n\n\n",
            "text": [],
            "layoutText": []
        }
    ]
}

Mintaválasz a featuresMode szolgáltatáshoz

Ez a példa a featuresMode-t tartalmazó lekérdezés "@search.features" kimenetét mutatja be.

  {
    "@odata.count": # (if $count=true was provided in the query),
    "@search.coverage": # (if minimumCoverage was provided in the query),
    "@search.facets": { (if faceting was specified in the query)
      "facet_field": [
        {
          "value": facet_entry_value (for non-range facets),
          "from": facet_entry_value (for range facets),
          "to": facet_entry_value (for range facets),
          "count": number_of_documents
        }
      ],
      ...
    },
    "@search.nextPageParameters": { (request body to fetch the next page of results if not all results could be returned in this response and Search was called with POST)
      "count": ... (value from request body if present),
      "facets": ... (value from request body if present),
      "featuresMode" : ... (value from request body if present),
      "filter": ... (value from request body if present),
      "highlight": ... (value from request body if present),
      "highlightPreTag": ... (value from request body if present),
      "highlightPostTag": ... (value from request body if present),
      "minimumCoverage": ... (value from request body if present),
      "orderby": ... (value from request body if present),
      "scoringParameters": ... (value from request body if present),
      "scoringProfile": ... (value from request body if present),
      "scoringStatistics": ... (value from request body if present),
      "search": ... (value from request body if present),
      "searchFields": ... (value from request body if present),
      "searchMode": ... (value from request body if present),
      "select": ... (value from request body if present),
      "sessionId" : ... (value from request body if present),
      "skip": ... (page size plus value from request body if present),
      "top": ... (value from request body if present minus page size),
    },
    "value": [
      {
        "@search.score": document_score (if a text query was provided),
        "@search.highlights": {
          field_name: [ subset of text, ... ],
          ...
        },
        "@search.features": {
          "field_name": {
            "uniqueTokenMatches": feature_score,
            "similarityScore": feature_score,
            "termFrequency": feature_score,
          },
          ...
        },
        key_field_name: document_key,
        field_name: field_value (retrievable fields or specified projection),
        ...
      },
      ...
    ],
    "@odata.nextLink": (URL to fetch the next page of results if not all results could be returned in this response; Applies to both GET and POST)
  }

Példák

További példákat Azure AI Search OData-kifejezésszintaxisában.

Példa: egyszerű keresési

Dokumentumok keresése az indexben egyszerű lekérdezési szintaxissal. Ez a lekérdezés olyan szállodákat ad vissza, ahol a kereshető mezők a "kényelem" és a "hely" kifejezést tartalmazzák, de a "motel" kifejezést nem:

Get /indexes/hotels/docs?search=comfort +location –motel&searchMode=all&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
    {  
      "search": "comfort +location -motel",  
      "searchMode": "all"  
    }  

Borravaló

A searchMode=all használata felülbírálja a searchMode=anyalapértelmezett értékét, biztosítva, hogy -motel az "OR NOT" helyett "ÉS NEM" értéket jelent. A searchMode=allnélkül a "VAGY NEM" kifejezés jelenik meg, amely a keresési eredmények korlátozása helyett kiterjeszthető, és ez egyes felhasználók számára nem magától értetődő lehet.

Példa: teljes Lucene-keresés

Dokumentumok keresése az indexben Lucene lekérdezési szintaxissal (lásd Lucene lekérdezési szintaxisát az Azure AI Search). Ez a lekérdezés olyan szállodákat ad vissza, ahol a kategóriamező tartalmazza a "budget" kifejezést, és az összes kereshető mezőt, amely a "nemrég felújított" kifejezést tartalmazza. A "nemrég felújított" kifejezést tartalmazó dokumentumok rangsorolása magasabb a "kiemelési érték" kifejezés eredményeként (3)

GET /indexes/hotels/docs?search=Category:budget AND \"recently renovated\"^3&searchMode=all&api-version=2021-04-30-Preview&querytype=full`
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
    {  
      "search": "Category:budget AND \"recently renovated\"^3",  
      "queryType": "full",  
      "searchMode": "all"  
}  

Példa: szemantikai keresés

A szemantikai rangsorolási modell meghívása válaszokkal, feliratokkal és kiemelt tartalommal. A lekérdezésre adott válasz az előző szakaszban található.

POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
{
  "search": "how do clouds form",
  "queryType": "semantic",
  "semanticConfiguration": "my-semantic-config",
  "queryLanguage": "en-us",
  "answers": "extractive",
  "captions": "extractive",
  "count": "true"
}

Példa: vektorkeresési

Olyan indexek esetében, amelyek Collection(Edm.Single) típusú mezőkkel és vektorkonfigurációval rendelkezik, vektoros lekérdezési paramétereket adhat meg. A vektoros lekérdezési paraméterek közé tartoznak a lekérdezés hatókörében lévő vektormezők, a visszaadandó első találatok "k" száma, valamint a lekérdezés bemenetének vektoros ábrázolása.

A "select" paraméter hozzáadása akkor hasznos, ha az index szövegmezőket tartalmaz. Az egyezés és a relevancia vektorokon alapul, de az emberi olvasásra alkalmas tartalmakat tartalmazó mezők hasznosak az eredményeket olvasó felhasználók számára. Másik lehetőségként olyan kódot is írhat, amely szöveggé alakítja a keresési eredmények vektoradatait.

POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/search?api-version={{api-version}}
Content-Type: application/json
api-key: {{admin-api-key}}
{
    "search": (this parameter is ignored in vector search),
    "vectors": [{
        "value": [
            -0.009154141,
            0.018708462,
            . . . 
            -0.02178128,
            -0.00086512347
        ],
        "fields": "contentVector",
        "k": 5
    }],
    "select": "title, content, category"
}

Példa: orderby

Keressen rá az indexre, és adja vissza a találatokat dátum szerint csökkenő sorrendben.

GET /indexes/hotels/docs?search=*&$orderby=LastRenovationDate desc&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
    {  
      "search": "*",  
      "orderby": "LastRenovationDate desc"
    }  

Példa: szűrés OData-kifejezéssel

Egy adott szűrőkifejezésnek megfelelő dokumentumok lekérése:

GET /indexes/hotels/docs?$filter=(Rooms/BaseRate ge 60 and Rooms/BaseRate lt 300) or HotelName eq 'Fancy Stay'&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
    {  
      "filter": "(Rooms/BaseRate ge 60 and Rooms/BaseRate lt 300) or HotelName eq 'Fancy Stay'"  
    }  

Példa: faceted search

Az összetett keresés során keressen rá az indexre, és kérje le a kategóriák, értékelések, címkék, valamint adott tartományokban lévő baseRate elemekkel kapcsolatos aspektusait.

GET /indexes/hotels/docs?search=*&facet=Category&facet=Rating&facet=Tags&facet=Rooms/BaseRate,values:80|150|220&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
    {  
      "search": "test",  
      "facets": [ "Category", "Rating", "Tags", "Rooms/BaseRate,values:80|150|220" ]  
    }  

Figyelje meg, hogy az utolsó szempont egy almezőn van. A aspektusok a szülődokumentumot (Szállodák) és nem a közbenső aldokumentumokat (Szobák) számolják, így a válasz meghatározza az egyes árgyűjtőkben található szobák számát.

Példa: Az arculati lekérdezés szűkítése

Szűrő használatával szűkítse le az előző arculati lekérdezés eredményét, miután a felhasználó a 3. minősítést és a "Motel" kategóriát választja.

GET /indexes/hotels/docs?search=*&facet=tags&facet=Rooms/BaseRate,values:80|150|220&$filter=Rating eq 3 and Category eq 'Motel'&api-version=2021-04-30-Preview  
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview 
    {  
      "search": "test",  
      "facets": [ "tags", "Rooms/BaseRate,values:80|150|220" ],  
      "filter": "Rating eq 3 and Category eq 'Motel'"  
    }  

Példa: részletes keresés az egyes kategóriákra vonatkozó korlátozásokkal

Az arculati keresésben állítsa be a lekérdezésben visszaadott egyedi kifejezések felső korlátját. Az alapértelmezett érték 10, de ezt az értéket az aspektusattribútum count paraméterével növelheti vagy csökkentheti. Ez a példa a város 5-höz korlátozott aspektusait adja vissza.

GET /indexes/hotels/docs?search=*&facet=Address/City,count:5&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
    {  
      "search": "test",  
      "facets": [ "Address/City,count:5" ]  
    }  

Példa: helyszíni keresési

Keresés az indexben adott mezőkben (például egy nyelvmezőben)

GET /indexes/hotels/docs?search=hôtel&searchFields=Description_fr&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
    {  
      "search": "hôtel",  
      "searchFields": "Description_fr"
    }  

Keresés az indexben több mező között. A kereshető mezőket például több nyelven is tárolhatja és kérdezheti le, mind ugyanabban az indexben. Ha az angol és a francia leírás egy dokumentumban együtt szerepel, a lekérdezés eredményében bármelyiket vagy az összeset visszaadhatja:

GET /indexes/hotels/docs?search=hotel&searchFields=Description,Description_fr&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
    {  
      "search": "hotel",  
      "searchFields": "Description, Description_fr"
    }  

Egyszerre csak egy indexet kérdezhet le. Ne hozzon létre több indexet az egyes nyelvekhez, hacsak nem tervez egyenként lekérdezni.

Példa: lapozási eredmények

Az elemek első oldalának lekérése (az oldalméret 10):

GET /indexes/hotels/docs?search=*&$skip=0&$top=10&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
    {  
      "search": "*",  
      "skip": 0,  
      "top": 10  
    }  

Az elemek második oldalának lekérése (az oldalméret 10):

GET /indexes/hotels/docs?search=*&$skip=10&$top=10&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
    {  
      "search": "*",  
      "skip": 10,  
      "top": 10  
    }  

Példa: az eredményhalmaz mezőinek korlátozása

Adott mezőkészlet lekérése:

GET /indexes/hotels/docs?search=*&$select=HotelName,Description&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
    {  
      "search": "*",  
      "select": "HotelName, Description"
    }  

Példa: találatok kiemelése az eredményekben

Keressen rá az indexre, és találatkiemelésekkel adja vissza a töredékeket:

GET /indexes/hotels/docs?search=something&highlight=Description&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
    {  
      "search": "something",  
      "highlight": "Description"  
    }  

Példa: Térinformatikai keresés

Keressen rá az indexre, és adja vissza a referenciahelytől közelebbről távolabb eső dokumentumokat:

GET /indexes/hotels/docs?search=something&$orderby=geo.distance(Location, geography'POINT(-122.12315 47.88121)')&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
    {  
      "search": "something",  
      "orderby": "geo.distance(Location, geography'POINT(-122.12315 47.88121)')"
    }  

Példa: "keresés általam" (a közeli helyek relevanciájának növelése

Keressen rá az indexre, feltéve, hogy van egy "geo" nevű pontozóprofil két távolsági pontozási függvénysel, az egyik a "currentLocation" nevű paramétert, a másik pedig a "lastLocation" paramétert definiálja. Az alábbi példában a "currentLocation" egy kötőjel (-) elválasztójelével rendelkezik. Ezt követik a hosszúsági és szélességi koordináták, ahol a hosszúság negatív érték.

GET /indexes/hotels/docs?search=something&scoringProfile=geo&scoringParameter=currentLocation--122.123,44.77233&scoringParameter=lastLocation--121.499,44.2113&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
    {  
      "search": "something",  
      "scoringProfile": "geo",  
      "scoringParameters": [ "currentLocation--122.123,44.77233", "lastLocation--121.499,44.2113" ]  
    }  

Példa: teljes indexre való lekérdezés szegmensek helyett

Dokumentumok keresése az indexben, miközben a következetes pontozást részesíti előnyben az alacsonyabb késéssel szemben. Ez a lekérdezés kiszámítja a dokumentum gyakoriságát az egész indexben, és minden erőfeszítést megtesz annak érdekében, hogy ugyanazt a replikát célozza meg minden lekérdezéshez ugyanazon a "munkameneten" belül, ami segít stabil és reprodukálható rangsort létrehozni.

GET /indexes/hotels/docs?search=hotel&sessionId=mySessionId&scoringStatistics=global&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
    {  
      "search": "hotel",  
      "sessionId": "mySessionId",
      "scoringStatistics" :"global"
    }  

Példa: pontozási statisztikák (featuresMode)

Keresse meg a dokumentumokat az indexben, és adja vissza az egyes találatok információlekérési funkcióinak listáját, amely leírja a megfeleltethető dokumentum és a lekérdezés közötti pontozást. A lekérdezés emellett a teljes index dokumentumfrekvenciáit is kiszámítja, hogy egységesebb pontozást eredményezjen.

GET /indexes/hotels/docs?search=hotel&featuresMode=enabled&scoringStatistics=global&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
    {  
      "search": "hotel",  
      "featuresMode": "enabled",
      "scoringStatistics" :"global"
    }  

Példa egy search.features tartalmazó válaszra, amely az alábbihoz hasonló:

    "@search.score": 0.91875637,
    "@search.features": {
        "Description": {
            "uniqueTokenMatches": 1,
            "similarityScore": 0.2917966,
            "termFrequency": 2
        },
        "HotelName": {
            "uniqueTokenMatches": 1,
            "similarityScore": 0.44458693,
            "termFrequency": 1
        }
      . . .

Meghatározások

Ez a szakasz olyan paraméterek részleteit ismerteti, amelyek túl összetettek ahhoz, hogy a főtáblában szerepeljenek.

Láncszem Leírás
queryLanguage A helyesírás- és szemantikai keresés támogatott nyelveinek listája.

queryLanguage

A queryLanguage paraméter érvényes értékeit a következő táblázatban, a "queryLanguage" oszlopban adták meg, és nem különböztetik meg a kis- és nagybetűket. A paraméter egészének alapértelmezett értéke a "en-us". Minden nyelvben van egy alapértelmezett változat minden két karakterből álló nyelvi kódhoz. Ha például az "es" értéket adja meg, a rendszer alapértelmezés szerint a "es-us" értéket használja. A queryLanguage paraméter szükséges a "queryType=szemantic" vagy a "speller=lexicon" lekérdezési kérelemhez. A teljes kérelemhez csak egy queryLanguage érték tartozik, és ez az érték a szemantikai rangsoroláshoz, a feliratokhoz, a válaszokhoz és a helyesíráshoz lesz használva (az egyes funkciók esetében nincs felülbírálás).

Jelenleg a nyelvi támogatás funkciónként változik. Csak az angol, a spanyol, a francia és a német támogatja a funkciók teljes készletét, de figyelje meg, hogy a helyesírás-ellenőrzés kevesebb változatot implementál.

Ha olyan nyelvi kódot ad meg, amelyet egy adott funkció nem támogat, például EN-GB helyesírás-ellenőrzővel, a szolgáltatás HTTP 400-as értéket ad vissza.

További információ az egyes funkciók használatáról: Szemantikai rangsorolás és feliratok engedélyezése, Szemantikai válasz visszaadása, és Helyesírás-ellenőrzés hozzáadása lekérdezésekhez.

Az "(előzetes verzió)" megjelölés azt jelzi, hogy az ellenőrzési tesztelés az összes funkcióban (szemantikai rangsorolás, feliratok, válaszok és helyesírás-ellenőrzés) folyamatban van vagy függőben van. Javasoljuk, hogy az alábbi táblázatban használja az összes nyelvi változatot, de javasoljuk az előzetes verziójú nyelvek további tesztelését, hogy az eredmények érvényesek legyenek a tartalomra. A pipajellel ellátott és előzetes verziójú megjelöléssel nem rendelkező nyelvek egyenértékű adatkészletekkel lettek érvényesítve, és mérhető jelentőséggel bírnak.

Nyelv queryLanguage Szemantikai rangsoroló és feliratok Szemantikai válasz Helyesírás
Angol [en] en, en-US (alapértelmezett), en-GB, en-IN, en-CA, en-AU ✔️ ✔️ ✔️ (en, en-US)
Francia [fr] fr, fr-FR (alapértelmezett) fr-CA ✔️ ✔️ ✔️ (fr, fr-FR)
Német [de] de, de-DE (alapértelmezett) ✔️ ✔️ ✔️ (de, de-DE)
Spanyol [es] es, es-ES (alapértelmezett), es-MX ✔️ ✔️ ✔️ (es, es-ES)
Olasz [it] it, it-IT (alapértelmezett) ✔️ ✔️
Japán [ja] ja, ja-JP (alapértelmezett) ✔️ ✔️ (előzetes verzió)
Kínai [zh] zh, zh-CN (alapértelmezett), zh-TW ✔️ ✔️ (előzetes verzió)
Portugál [pt] pt, pt-BR (alapértelmezett), pt-PT ✔️ ✔️ (előzetes verzió)
Holland [nl] nl, nl-BE, nl-NL (alapértelmezett) ✔️ (előzetes verzió) ✔️ (előzetes verzió) ✔️ (nl, nl-NL)
Arab [ar] ar, ar-SA (alapértelmezett), ar-EG, ar-MA, ar-KW, ar-JO ✔️ (előzetes verzió) ✔️ (előzetes verzió)
Örmény hy-AM (alapértelmezett) ✔️ (előzetes verzió) ✔️ (előzetes verzió)
Bangla bn-IN (alapértelmezett) ✔️ (előzetes verzió) ✔️ (előzetes verzió)
Baszk eu-ES (alapértelmezett) ✔️ (előzetes verzió) ✔️ (előzetes verzió)
Bolgár [bg] bg, bg-BG (alapértelmezett) ✔️ (előzetes verzió) ✔️ (előzetes verzió)
Katalán [ca] ca, ca-ES (alapértelmezett) ✔️ (előzetes verzió) ✔️ (előzetes verzió)
Horvát [hr] hr, hr-HR (alapértelmezett), hr-BA ✔️ (előzetes verzió) ✔️ (előzetes verzió)
Cseh [cs] cs, cs-CZ (alapértelmezett) ✔️ (előzetes verzió) ✔️ (előzetes verzió)
Dán [da] da, da-DK (alapértelmezett) ✔️ (előzetes verzió) ✔️ (előzetes verzió)
Észt [et] et, et-EE (alapértelmezett) ✔️ (előzetes verzió) ✔️ (előzetes verzió)
Finn [fi] fi, fi-FI (alapértelmezett) ✔️ (előzetes verzió) ✔️ (előzetes verzió)
Galíciai gl-ES (alapértelmezett) ✔️ (előzetes verzió) ✔️ (előzetes verzió)
Görög [el] el, el-GR (alapértelmezett) ✔️ (előzetes verzió) ✔️ (előzetes verzió)
Gudzsaráti gu-IN (alapértelmezett) ✔️ (előzetes verzió) ✔️ (előzetes verzió)
Héber he-IL (alapértelmezett) ✔️ (előzetes verzió) ✔️ (előzetes verzió)
Hindi [hi] hi, hi-IN (alapértelmezett) ✔️ (előzetes verzió) ✔️ (előzetes verzió)
Magyar [hu] hu, hu-HU (alapértelmezett) ✔️ (előzetes verzió) ✔️ (előzetes verzió)
Izlandi [is] is, is-IS (alapértelmezett) ✔️ (előzetes verzió) ✔️ (előzetes verzió)
Indonéz [id] id, id-ID (alapértelmezett) ✔️ (előzetes verzió) ✔️ (előzetes verzió)
Ír ga-IE (alapértelmezett) ✔️ (előzetes verzió) ✔️ (előzetes verzió)
Kannada kn-IN (alapértelmezett) ✔️ (előzetes verzió) ✔️ (előzetes verzió)
Koreai [ko] ko, ko-KR (alapértelmezett) ✔️ (előzetes verzió) ✔️ (előzetes verzió)
Lett [lv] lv, lv-LV (alapértelmezett) ✔️ (előzetes verzió) ✔️ (előzetes verzió)
Litván [lt] lt, lt-LT (alapértelmezett) ✔️ (előzetes verzió) ✔️ (előzetes verzió)
Malajálam ml-IN (alapértelmezett) ✔️ (előzetes verzió) ✔️ (előzetes verzió)
Maláj [ms] ms, ms-MY (alapértelmezett), ms-BN ✔️ (előzetes verzió) ✔️ (előzetes verzió)
Marathi mr-IN (alapértelmezett) ✔️ (előzetes verzió) ✔️ (előzetes verzió)
Norvég [no] nem, no-NO (alapértelmezett), nb-NO ✔️ (előzetes verzió) ✔️ (előzetes verzió)
Perzsa fa-AE (alapértelmezett) ✔️ (előzetes verzió) ✔️ (előzetes verzió)
Lengyel [pl] pl, pl-PL (alapértelmezett) ✔️ (előzetes verzió) ✔️ (előzetes verzió)
Pandzsábi pa-IN (alapértelmezett) ✔️ (előzetes verzió) ✔️ (előzetes verzió)
Román [ro] ro, ro-RO (alapértelmezett) ✔️ (előzetes verzió) ✔️ (előzetes verzió)
Orosz [ru] ru, ru-RU (alapértelmezett) ✔️ (előzetes verzió) ✔️ (előzetes verzió)
Szerb [sr] (cirill vagy latin) sr, sr-BA (alapértelmezett), sr-ME, sr-RS ✔️ (előzetes verzió) ✔️ (előzetes verzió)
Szlovák [sk] sk, sk-SK (alapértelmezett) ✔️ (előzetes verzió) ✔️ (előzetes verzió)
Szlovén [sl] sl, sl-SL (alapértelmezett) ✔️ (előzetes verzió) ✔️ (előzetes verzió)
Tamil [ta] ta, ta-IN (alapértelmezett) ✔️ (előzetes verzió) ✔️ (előzetes verzió)
Svéd [sv] sv, sv-SE (alapértelmezett) ✔️ (előzetes verzió) ✔️ (előzetes verzió)
Telugu te-IN (alapértelmezett) ✔️ (előzetes verzió) ✔️ (előzetes verzió)
Thai [th] th, th-TH (alapértelmezett) ✔️ (előzetes verzió) ✔️ (előzetes verzió)
Török [tr] tr, tr-TR (alapértelmezett) ✔️ (előzetes verzió) ✔️ (előzetes verzió)
Ukrán [uk] uk, uk-UA (alapértelmezett) ✔️ (előzetes verzió) ✔️ (előzetes verzió)
Urdu ur-PK (alapértelmezett) ✔️ (előzetes verzió) ✔️ (előzetes verzió)
Vietnami [va] va, vi-VN (alapértelmezett) ✔️ (előzetes verzió) ✔️ (előzetes verzió)

Lásd még: