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

A következőre vonatkozik: 2023-07-01-Preview, 2021-04-30-Preview, 2020-06-30-Preview

Fontos

2023-07-01-Preview hozzáadja a következőt:

  • "vektorok" lekérdezési paraméter, amely a vektoros lekérdezési kéréseket határozza meg. Minden objektumnak tartalmaznia kell a lekérdezés vektoros ábrázolását, az eredményekben visszaadandó legközelebbi szomszédok "k" számát, valamint a lekérdezés végrehajtása során használandó vektormezőket.

2021-04-30-Preview hozzáadja:

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

2020-06-30-Preview hozzáadja:

  • A "queryType=szemantic" támogatja a szemantikai rerankingot és a válaszokat.
  • A szemantikai lekérdezésben a "searchFields" a feliratok és válaszok megfogalmazásához használt mezők prioritási sorrendjét határozza meg. Ezt a megközelítést a "szemanticConfiguration" váltotta fel 2021-04-30-Preview-ban, és már elavult.
  • A "speller" lehetővé teszi a helyesírás-javítást a lekérdezés bemenetén.
  • A "queryLanguage" a "queryType=szemantic" és a "speller" kifejezéshez egyaránt szükséges.
  • A "featuresMode" kicsomagol egy 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 egyetlen index dokumentumgyűjteményét célozza meg egy keresési szolgáltatásban. Olyan paramétereket tartalmaz, amelyek meghatározzák a megfeleltetés feltételeit, valamint a választ formázó paramétereket. Indexalias használatával is megcélozhat egy adott indexet, nem pedig magát az indexnevet.

A legtöbb lekérdezéshez használhatJA a GET vagy a POST parancsot, de a POST-ot a vektorkereséshez kell használnia, mert a vektoros lekérdezési paraméterek nem férnek el az URI-ben. A lekérdezési paraméterek a GET-kérések lekérdezési sztringjében és a POST-kérések kéréstö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 "keresési" 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]  

A GET használatával történő hívás esetén 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álata esetén. Ezeknél az alkalmazásoknál 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-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égére vonatkozó korlátozásokról további információt az Azure AI Search OData Expression Szintaxisa című témakörben talál.

URI-paraméterek

Paraméter Leírás
szolgáltatásnév Kötelező. Állítsa ezt a nevet a keresési szolgáltatás egyedi, felhasználó által definiált nevére.
indexnév/dokumentumok Kötelező. Egy elnevezett index dokumentumgyűjteményét adja meg. Az indexalias neve az indexnév helyett is használható.
lekérdezési paraméterek A lekérdezési paramétereket a GET-kérések URI-ja és a POST-kérések kéréstörzse határozza meg.
api-verzió Kötelező. Az aktuális verzió a következő 2023-07-01-Preview: . További verziókért lásd: API-verziók .

URL-kódolási javaslatok

A GET REST API közvetlen meghívásakor ne felejtse el URL-kódolással megadni a lekérdezési paramétereket. A Dokumentumok keresése 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éterekhez ajánlott. Ha véletlenül URL-kódolással kódolja a teljes lekérdezési sztringet (minden 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 az Azure AI Search .NET ügyfélkódtár használatakor nincs szükség URL-kódolásra, amely kezeli a kódolást.

Kérelemfejlécek

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

Mezők Description
Content-Type Kötelező. Á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 kérést a keresési szolgáltatásnak. A dokumentumok gyűjteményére irányuló lekérdezési kérelmek api-kulcsként megadhatnak rendszergazdai kulcsot vagy lekérdezéskulcsot. A lekérdezéskulcsot a dokumentumgyűjtemény írásvédett műveleteihez használja a rendszer. A részletekért lásd: Csatlakozás az Azure AI Search szolgáltatáshoz kulcshitelesítés 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 eredményt. A részleges válasz különböző okokból fordulhat elő, például ha a lekérdezés túl sok dokumentumot ad vissza úgy, hogy nem adja meg a $top, vagy ha a $top értéke túl nagy. Ilyen esetekben az Azure AI Search tartalmazza a @odata.nextLink megjegyzést a válasz törzsében, és azt is @search.nextPageParameters , hogy post kérés volt-e. A széljegyzetek értékeivel egy másik keresési kérést is megfogalmazhat 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ásának nevezik, a széljegyzeteket pedig folytatási jogkivonatoknak nevezzük. A megjegyzések szintaxisáról és a válasz törzsében való megjelenésükről a Válasz szakaszban található példában olvashat.

Az Azure AI Search 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 tartalmaznak 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éréseknek a GET (és a POST) függvényt is használniuk kell.

Megjegyzés

A és célja @odata.nextLink@search.nextPageParameters a szolgáltatás védelme a túl sok eredményt kérő lekérdezésekkel szemben, nem pedig a lapozás általános mechanizmusának biztosítása. 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 kell lennie, 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 a GET-et meghívják, és JSON-tulajdonságokként a kérelem törzsében, amikor POST-tal hívják meg őket. Egyes paraméterek szintaxisa némileg eltér a GET és a POST függvény között. Ezeket a különbségeket az alábbi táblázatban jegyezzük fel.

Név Típus Description
válaszok (előzetes verzió) sztring Választható. Az érvényes értékek a "none" és a "extractive". Alapértelmezés szerint a "none" (nincs) értékre van kapcsolva. Ez a paraméter csak akkor érvényes, ha a lekérdezés típusa "szemantikai". Ha a "kivonatoló" értékre van állítva, a lekérdezés a legmagasabb szemantikailag rangsorolt dokumentumok fő szakaszaiból hoz létre és ad vissza válaszokat. Az alapértelmezett érték egy válasz, de a darabszám hozzáadásával legfeljebb 10-et adhat meg. A "answers": "extractive|count-3" kifejezés például három választ ad vissza. A válasz visszaadásához a megcélzott mezőben olyan szó szerinti tartalomnak kell szerepelnie, amely válasznak tűnik. A válaszokhoz használt nyelvi modellek úgy vannak betanulva, hogy felismerjék a válaszokat, és ne generálják őket. Emellett magának a lekérdezésnek kérdésként kell kinéznie.
api-verzió sztring Kötelező. A kéréshez használt REST API verziója. A támogatott verziók listáját az API-verziók című témakörben találja. Ehhez a művelethez az API-verzió URI-paraméterként van megadva, függetlenül attól, hogy get vagy POST használatával hívja-e meg a Keresési dokumentumok szolgáltatást .
feliratok (előzetes verzió) sztring Választható. Az érvényes értékek a "none" és a "extractive". Alapértelmezés szerint a "none" (nincs) értékre van kapcsolva. Ez a paraméter csak akkor érvényes, ha a lekérdezés típusa "szemantikai". Ha a "kivonatoló" értékre van állítva, a lekérdezés a legmagasabb rangsorban lévő dokumentumok kulcsrészeiből kinyert feliratokat adja vissza. Ha a feliratok "kivonatoló" értékre van állítva, a kiemelés alapértelmezés szerint engedélyezve van, és konfigurálható a (|) cső karakter hozzáfűzésével, majd a "highlight-true</false>" beállítással, például a "extractive|highlight-true" beállítással.
$count boolean Választható. Az érvényes értékek "igaz" vagy "hamis". Alapértelmezés szerint "false" (hamis). Ha POST használatával hívja meg, a paraméter neve count lesz a $count helyett. Meghatározza, hogy lekérje-e az eredmények teljes számát. Ez az érték az összes olyan dokumentum száma, amely megfelel a keresési és $filter paramétereknek, 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 a aktívan hozzáadott, frissített vagy törölt dokumentumok alatt vagy felül lesz jelentve. Ha csak a dokumentum nélküli darabszámot szeretné megkapni, használhatja a $top=0 értéket.
aspektusok vagy aspektusok sztring Választható. Egy olyan mező, amelyet fel kell meddőíteni, ahol a mező "facetable" (facetable) attribútummal van elosztva. Ha a GET metódussal hívja meg, facet az egy mező (facet: field1). A POST metódussal történő meghívásakor a paraméter neve a helyettfacet, facets 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.

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

A "count" a 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 a kiemelt 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 aspektuseredményekben. Ha a count paraméter kisebb, mint az egyedi kifejezések száma, előfordulhat, hogy az eredmények nem pontosak. Ennek az az oka, ahogyan az arculati lekérdezések el vannak osztva a szegmensek között. Ha az összes szegmensben pontos számot szeretne kapni, a darabszámot nullára vagy olyan értékre állíthatja, amely nagyobb vagy egyenlő a facetable mező egyedi értékeinek számával. A kompromisszum nagyobb késést jelent.

A "rendezés" értéke lehet "count", "-count", "value", "-value". A darabszám használatával csökkenő sorrendbe rendezhet darabszám szerint. A -count függvénnyel növekvő sorrendet rendezhet szám szerint. Az érték használatával növekvő sorrendbe rendezhet érték szerint. A -value függvénnyel csökkenő sorrendben rendezhet érték szerint (például a "facet=category,count:3,sort:count" a aspektus első három kategóriáját kapja, é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, Budget, Luxus. A -value esetében a "facet=rating,sort:-value" gyűjtőket hoz létre az összes lehetséges értékeléshez, érték szerinti 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 értékeléseknek).

Az "értékek" értéke lehet pipe-delimited numerikus vagy Edm.DateTimeOffset érték, amely a aspektusbejegyzési értékek dinamikus készletét adja meg (például "facet=baseRate,values:10 | A 20" három gyűjtőt állít elő: egyet az alapkamat 0-ig, de nem tartalmazza a 10-et, egyet a 10-hez, a 20-ig, egyet pedig a 20-hoz és a magasabbhoz). A "facet=lastRenovationDate,values:2010-02-01T00:00:00Z" sztring két gyűjtőt hoz létre: egyet a 2010. február 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 szekvenciálisan, növekvő sorrendben kell szerepelnie a várt eredmények eléréséhez.

Az "intervallum" a számok esetében 0-nál nagyobb egész számintervallum, a dátum-időértékek esetében pedig perc, óra, nap, hét, hónap, negyedév, év. Például a "facet=baseRate,interval:100" gyűjtőket hoz létre a 100-es méretű alapkamattartományok alapján. Ha az alapkamatok 60 és 600 dollár 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 állít elő a szállodák felújításakor.

A "timeoffset" értéke ([+-]hh:mm, [+-]hhmm vagy [+-]hh). Ha ezt használja, az időoffset 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 határozza meg az UTC időeltolódását az időhatárok beállításához. Például: "facet=lastRenovationDate,interval:day,timeoffset:-01:00" a 01:00:00 (UTC) időponttól (a cél időzónában éjfélkor) kezdődő naphatárt használja.

a darabszám és a rendezés kombinálható ugyanabban a aspektusspecifikációban, de nem kombinálhatók intervallummal vagy értékekkel, és az intervallum és az értékek nem kombinálhatók.

Ha nincs megadva időeltolás, akkor a dátumidő időközi aspektusait az UTC idő alapján számítja ki a rendszer. Például: a "facet=lastRenovationDate,interval:day" esetében a naphatár 00:00:00 UTC-kor kezdődik.
featuresMode (előzetes verzió) boolean Választható. Az érvényes értékek "engedélyezve" és "letiltva". Az alapértelmezett érték a "letiltva". Egy érték, amely meghatározza, hogy az eredményeknek tartalmazniuk kell-e a lekérdezési eredmények funkcióit, amelyek egy dokumentum lekérdezéshez viszonyított relevanciapontszámának kiszámítására szolgálnak, például mezőnkénti hasonlóság alapján. Az "engedélyezve" funkcióval további lekérdezési eredmények jeleníthetők meg: mezőnkénti hasonlósági pontszám, mezőalapú kifejezés gyakorisága és az egyező egyedi tokenek mezőszáma. További információ: Hasonlóság és pontozás.
$filter sztring Választható. Strukturált keresési kifejezés a standard OData szintaxisban. Szűrőben csak szűrhető mezők használhatók. Ha POST használatával hívja meg, ezt a paramétert a rendszer szűrőnek nevezi el a $filter helyett. Az Azure AI Search által támogatott OData-kifejezéshelyességi szintaxissal kapcsolatos részletekért tekintse meg az Azure AI Search OData-kifejezésszintaxisát ismertető cikket.
Kiemelni sztring Választható. A találatok kiemeléséhez használt vesszővel tagolt mezőnevek halmaza. A találatok kiemeléséhez csak kereshető mezők használhatók. Alapértelmezés szerint az Azure AI Search mezőnként legfeljebb öt kiemelést ad vissza. A korlát mezőnként konfigurálható úgy, hogy a mező neve után hozzáfűzi a "-<max # of highlights>" értéket. 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ás mezőből. A kiemelések maximális számának 1 és 1000 közötti egész számnak kell lennie.
highlightPostTag sztring Választható. Az alapértelmezett érték: "</em>". A kiemelt kifejezéshez hozzáfűző sztringcímke. A highlightPreTag paraméterrel kell beállítani. Az URL-cím fenntartott karaktereinek százalékban kódoltnak kell lenniük (például a #helyett %23).
highlightPreTag sztring Választható. Alapértelmezés szerint a értékre van kapcsolva "</em>". Egy sztringcímke, amely a kiemelt kifejezésre van előzve. A highlightPostTag értéket kell megadni. Az URL-cím fenntartott karaktereinek százalékban kódoltnak kell lenniük (például a #helyett %23).
minimumCoverage egész szám Választható. Az érvényes értékek egy 0 és 100 közötti szám, amely azt jelzi, hogy az index hány százalékban lesz elérhető a lekérdezés kiszolgálásához, mielőtt sikeresként lehetne jelenteni. Alapértelmezés szerint "100".

A száz százalékos lefedettség azt jelenti, hogy minden szegmens válaszolt a kérésre (sem a szolgáltatásállapot-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 kevesebb, mint teljes lefedettség adja vissza az 503-os HTTP-állapotkódot.

A minimális adatátvétel csökkentése akkor lehet hasznos, ha 503 hiba történik, és növelni szeretné a lekérdezések 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 beállítja a minimumátvételt, és a Keresés sikeres, a HTTP 200 értéket adja vissza, és a válaszban szerepel egy @search.coverage érték, 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, mint a visszahívás, akkor a lefedettség csökkentése életképes kockázatcsökkentési stratégia lehet.
$orderby sztring Választható. Vesszővel tagolt kifejezések listája az eredmények szerint történő rendezéshez. A POST használatával történő hívás esetén ez a paraméter a $orderby helyett orderby névvel lesz 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, majd csökkenő sorrendben. Az alapértelmezett érték a növekvő sorrend. A kapcsolatokat a dokumentumok egyező pontszámai fogják megszakítani. 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ó) sztring Választható. Az érvényes értékek támogatott nyelvek. 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 nyelv a helyesírás-ellenőrzéshez és a szemantikai modellekhez is használható, amelyek a képaláírás vagy válasz kinyerésére szolgálnak. A queryLanguage függvénytárak függetlenek más területi alapú mezőattribútumoktól, például az indexeléshez és a teljes szöveges kereséshez használt nyelvelemzőkétől .
queryType sztring Választható. Az érvényes értékek az "egyszerű", a "full" vagy a "szemantikus" (előzetes verzió). Alapértelmezés szerint "egyszerű". Ezt az értéket nem veszi figyelembe a vektorkeresés, de a hibrid forgatókönyvekben a szöveges keresésre vonatkozik.

Az "egyszerű" a lekérdezési sztringeket az egyszerű lekérdezési szintaxissal értelmezi, amely lehetővé teszi az olyan szimbólumok használatát, mint +a , *, és "". A lekérdezések alapértelmezés szerint az egyes dokumentumok összes kereshető mezőjében (vagy a keresőmezőkben jelzett mezőkben) vannak kiértékelve.

A "full" a lekérdezési sztringeket a teljes Lucene lekérdezési szintaxissal értelmezi, 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.

" szemantika" javítja a keresési eredmények pontosságát azáltal, hogy az első 50 találatot egy, a Bing corpuson betanított rangsorolási modellel javítja a természetes nyelven kifejezett lekérdezésekhez, szemben a kulcsszavakkal. Ha a lekérdezés típusát szemantikai értékre állítja, akkor a queryLanguage és a semanticConfiguration beállítást is be kell állítania. Ha a lekérdezési bemenet természetes nyelven lett megfogalmazva (mi az a ...), akkor is megadhat válaszokat, ha az első 3 választ is vissza szeretné adni, és igény szerint feliratokat is beállíthat a legfontosabb szakaszok kinyeréséhez a legmagasabb rangsorolt dokumentumokból.
scoringParameter sztring Választható. Egy pontozási függvényben (például referenciaPontParameter) definiált paraméterek értékeit jelzi a "name-value1,value2,..." formátumban A POST használatával történő hívás esetén ez a paraméter scoringParameters névvel van elnevezve a scoringParameter helyett. Azt is meg kell adnia, hogy egy JSON-tömb sztringek, ahol minden sztring egy külön név-érték pár.

Függvényt tartalmazó pontozási profilok esetén a függvényt egy karakterrel - válassza el a bemeneti listától. Egy nevű "mylocation" függvény például "&scoringParameter=mylocation--122.2,44.8". 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 a vesszőket tartalmazó címkenövelés, egyetlen idézőjelek használatával kerülheti el az ilyen értékeket a listában. Ha maguk az értékek egyetlen idézőjelet tartalmaznak, a duplikálással feloldhatja őket. Tegyük fel, hogy van egy nevű "mytag" címkét növelő paramétere, és a "Hello, O'Brien" és a "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 sztring 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 sztring Választható. Az érvényes értékek "helyi" vagy "globális". 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) az egységesebb pontozás érdekében, vagy helyileg (az aktuális szegmensen) az alacsonyabb késés érdekében. Lásd: Pontozási statisztikák az Azure AI Searchben. A pontozási statisztikákat a rendszer mindig helyileg számítja ki a homályos keresést (~) használó kifejezések esetében.
keresés sztring Választható. A keresett szöveg. Ezt az értéket nem veszi figyelembe a vektorkeresés, de a hibrid forgatókönyvekben a szöveges keresésre vonatkozik. A REST API-kban a rendszer alapértelmezés szerint az összes kereshető mezőt megkeresi, kivéve, ha a keresőmezők meg vannak adva. 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ésnek megfeleltethető a használata * (ez logikai szűrőlekérdezések esetén lehet hasznos). A paraméter kihagyása ugyanazzal a hatással jár, mint a értékre állítása *. A keresési szintaxissal kapcsolatos részletekért lásd: Egyszerű lekérdezési szintaxis .

Az eredmények néha meglepőek lehetnek a kereshető mezők lekérdezése során. A jogkivonat-jelölő olyan logikát tartalmaz, amely az angol szövegben 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" egyéni kifejezések helyett, mivel a vesszőket több ezer elválasztóként használják nagy számokhoz angolul. 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 sztring Választható. Az érvényes értékek az "any" vagy az "all" Alapértelmezett értékek az "any" é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ésként lehessen megszámolni.
searchFields sztring Választható. A vesszővel elválasztott mezőnevek listája a megadott szöveg kereséséhez. A célmezőket kereshetőként kell megjelölni az indexsémában, és a , Edm.ComplexTypevagy Collection(Edm.String)a típusúnak Edm.Stringkell lennie.
$select sztring Választható. Az eredményhalmazba felvenni kívánt vesszővel tagolt mezők listája. Ebben a záradékban csak lekérdezhetőként megjelölt mezők vehetők fel. Ha nincs meghatározva vagy értékre *van állítva, akkor a sémában lekérdezhetőként megjelölt összes mező szerepel a leképezésben. Ha POST használatával hívja meg, a paraméter neve select lesz $select helyett.
szemanticConfiguration (előzetes verzió) sztring 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.
Munkamenet sztring Választható. A sessionId használatával javíthatja a több replikával rendelkező keresési szolgáltatások relevanciapont-konzisztenciáját. A többreplika-konfigurációkban az egyes dokumentumok relevanciapontszámai között kisebb különbségek lehetnek ugyanazon lekérdezés esetében. 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. Legyen óvatos, ha ugyanazokat a munkamenet-azonosító értékeket ismételten használja fel, 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 sessionIdké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 Választható. A kihagyandó keresési eredmények száma. Ha POST használatával hívja meg, ezt a paramétert a rendszer kihagyja a $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őn használni, amely egyedi értékekkel rendelkezik az index minden dokumentumához (például a dokumentumkulcshoz), és $filter egy tartomány lekérdezésével.
helyesírás-ellenőrző (előzetes verzió) Sztring Választható. Az érvényes értékek a "nincs" és a "lexikon". Az alapértelmezett érték a "nincs". 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ípusokhoz is használhatja. Ha használja, a helyesírás-ellenőrző paraméterhez queryLanguage szükséges. További információkért és példákért lásd: Helyesírás-ellenőrzés hozzáadása a lekérdezésekhez.
$top egész szám 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ásakor ezt a paramétert a rendszer a $top helyett felső névvel adja meg. Ha 1000-nél nagyobb értéket ad meg, és több mint 1000 találat van, csak az első 1000 találatot adja vissza, valamint egy hivatkozást a következő találatoldalra (lásd az alábbi példában a "@odata.nextLink" részt).

Az Azure AI Search kiszolgálóoldali lapozással megakadályozza, hogy a lekérdezések egyszerre túl sok dokumentumot lekértek. Az alapértelmezett oldalméret 50, a maximális oldalméret pedig 1000. Ez azt jelenti, hogy a Keresési dokumentumok alapértelmezés szerint legfeljebb 50 találatot ad vissza, ha nem adja meg $top. Ha több mint 50 találat van, a válasz legfeljebb 50 találat következő oldalának lekérésére vonatkozó információkat tartalmaz (lásd az alábbi példákban a "@odata.nextLink" és a "@search.nextPageParameters" részt). 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 a legfeljebb 1000 találat következő oldalának lekéréséhez szükséges információk.
vektorok (előzetes verzió) array Választható. A tömbben lévő objektumtípus egy vektoros lekérdezés. A vektoros lekérdezések lekérdezési paraméterei.

Az "é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.

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

A "mezők" vektoradatokat tartalmazó, vesszővel tagolt listamezők. Csak a típusú Collection(Edm.Single) mezők szerepelhetnek a "mezők" listában.

Reagálás

Állapotkód: Sikeres válasz esetén a rendszer 200 OK-t ad vissza. Ebben a cikkben két mintaválasz található, egyet a szemantikai kereséshez és a featuresMode kifejezéshez.

Mintaválasz szemantikai lekérdezéshez

Az első példában a " hogyan alakulnak a felhők" szemantikai lekérdezés legfelső eredményére adott teljes válasz látható.

  • A "@search.answers" kifejezés akkor jelenik meg, amikor megadja az answers paramétert, és amikor a lekérdezés és az index megcélzott mezői olyan tartalmat tartalmaznak, amely felismerhető válaszként. A @search.answers kulcsot, szöveget és kiemeléseket tartalmazó tömb. A pontszám a válasz erősségét jelzi.

  • Az "érték" a válasz törzse. A-t @search.rerankerScore a szemantikai rangsorolási algoritmus rendeli hozzá, és az eredmények rangsorolásához használatos (@search.score a BM25 hasonlósági algoritmusból származik, amelyet a kezdeti eredmények pontozásához használnak). A feliratok egyszerű szöveget és kiemelt verziókat tartalmaznak. Ez a példa OCR- és entitásfelismerési képességekkel lett létrehozva. 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": []
        }
    ]
}

A featuresMode mintaválasza

Ez a példa a featuresMode értéket 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 az Azure AI Search OData Kifejezésszintaxisában talál.

Példa: egyszerű keresés

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" szót 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"  
    }  

Tipp

A felülbírálások használata searchMode=all az alapértelmezett értékre searchMode=anyvan kapcsolva, ami azt jelenti, hogy -motel "ÉS NEM", nem pedig "VAGY NEM". A nélkül searchMode=alla "VAGY NEM" kifejezés jelenik meg, amely nem korlátozza, hanem kibővíti a keresési eredményeket, é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 az Azure AI Searchben). 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 "közelmúltban felújított" kifejezést tartalmazó dokumentumok a kiemelési érték (3) miatt magasabbra vannak rangsorolva

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

Hívja meg a szemantikai rangsorolási modellt 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: vektoros keresés

A típusú Collection(Edm.Single) mezőkkel és vektorkonfigurációval rendelkező indexek esetében 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én belüli vektormezők, a visszaadandó találatok "k" száma és 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 tartalmat tartalmazó mezők hasznosak az eredmények olvasói számára. Másik lehetőségként olyan kódot is írhat, amely szöveggé alakítja a keresési eredményekben szereplő vektoradatokat.

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és használatával

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: arculati keresés

Egy részletes keresés során keressen rá az indexre, és kérje le a kategóriák, értékelések, címkék, valamint az adott tartományokban található baseRate elemekkel kapcsolatos aspektusokat.

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. Az aspektusok a szülődokumentumot (Szállodák) és nem a köztes aldokumentumokat (Szobák) számolják, így a válasz meghatározza, hogy hány szálloda rendelkezik szobával az egyes árgyűjtőkben.

Példa: Aspektusalapú lekérdezés szűkítése

Szűrő használatával szűkítse le az előző aspektusú lekérdezés eredményét, miután a felhasználó a Rating 3 é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: arculati 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 a facet attribútum darabszám paraméterével növelheti vagy csökkentheti. Ez a példa a város aspektusait adja vissza, 5-ig korlátozva.

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és

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, mindezt ugyanabban az indexben. Ha az angol és a francia leírás egy dokumentumban együtt szerepel, a lekérdezési eredmények bármelyikét vagy mindegyikét 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. Csak akkor hozzon létre több indexet az egyes nyelvekhez, ha egyenként szeretne lekérdezni.

Példa: lapozó 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: 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 hivatkozási helytől közelebbről távolabb rendezett 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: "find by me" (a közeli helyek relevanciájának növelése)

Keressen rá az indexre, feltéve, hogy van egy "geo" nevű pontozási profil két távolsági pontozási függvénysel, az egyik az "currentLocation" nevű paramétert definiálja, a másik pedig a "lastLocation" paramétert definiálja. A következő példában az "currentLocation" egy kötőjel elválasztójelével rendelkezik (-). Ezt a hosszúsági és szélességi koordináták követik, 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 a teljes indexben, és mindent megtesz annak érdekében, hogy ugyanazt a replikát ugyanazon a "munkameneten" belül minden lekérdezéshez megcélzhatja, ami segít stabil és reprodukálható rangsorolást 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 eredmények információlekérési funkcióinak listáját, amely leírja a megfeleltetett dokumentum és a lekérdezés közötti pontozást. A lekérdezés emellett kiszámítja a dokumentum gyakoriságát a teljes indexben, 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 válaszra, amely a search.features következőhöz hasonlóan néz ki:

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

Definíciók

Ez a szakasz azokat a paramétereket ismerteti, amelyek túl összetettek ahhoz, hogy a főtáblában szerepeljenek.

Hivatkozás Description
queryLanguage A helyesírási é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 az "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 az "es-us" értéket használja. A queryLanguage paraméter a "queryType=szemantic" vagy a "speller=lexicon" lekérdezési kérelemhez szükséges. 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ás-ellenőrzőhöz lesz felhaszná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 nyelv támogatott a funkciók teljes készletében, 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 az 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 a lekérdezésekhez.

Az "(előzetes verzió)" megjelölés azt jelzi, hogy az ellenőrzési tesztelés az összes szolgáltatásban (szemantikai rangsorolás, feliratok, válaszok és helyesírás-ellenőrzés) folyamatban van vagy függőben van. Javasoljuk, hogy használja az összes nyelvi változatot az alábbi táblázatban, de javasoljuk, hogy tesztelje az előzetes verziójú nyelveket, hogy az eredmények érvényesek legyenek a tartalomra. A pipával és előzetes kijelöléssel nem rendelkező nyelvek egyenértékű adatkészletek használatával 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-CAen-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ó)
Gallego 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ó)
Malajziai [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] no, 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 betűs vagy latin betűs) 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