Index létrehozása (Azure AI Search REST API)

Az index a dokumentumok rendszerezésének és keresésének elsődleges módja az Azure AI Searchben, hasonlóan ahhoz, ahogyan egy tábla rekordokat rendez egy adatbázisban. Minden index rendelkezik olyan dokumentumgyűjteménysel, amely megfelel az index sémájának (mezőnevek, adattípusok és attribútumok), de az indexek további szerkezeteket (javaslattevőket, pontozási profilokat és CORS-konfigurációt) is meghatároznak, amelyek más keresési viselkedést határoznak meg.

A kérelemhez használhatJA a POST vagy a PUT elemet. Mindkét esetben a kérelem törzsében található JSON-dokumentum biztosítja az objektumdefiníciót.

POST https://[servicename].search.windows.net/indexes?api-version=[api-version]  
  Content-Type: application/json
  api-key: [admin key]  

Másik lehetőségként használhatja a PUT parancsot, és megadhatja az index nevét az URI-n.

PUT https://[servicename].search.windows.net/indexes/[index name]?api-version=[api-version]
  Content-Type: application/json
  api-key: [admin key]

MINDEN szolgáltatáskéréshez HTTPS szükséges. Ha az index nem létezik, létrejön. Ha már létezik, az új definícióra frissül.

Az index létrehozása létrehozza a sémát és a metaadatokat. Az index feltöltése külön művelet. Ehhez a lépéshez használhat indexelőt (lásd : Indexelőműveletek, támogatott adatforrásokhoz elérhető) vagy Dokumentumok hozzáadása, frissítése vagy törlése. Az invertált indexek a dokumentumok közzétételekor jönnek létre.

Megjegyzés

A létrehozható indexek maximális száma tarifacsomagonként változik. További információ: Szolgáltatáskorlátok.

URI-paraméterek

Paraméter Leírás
szolgáltatásnév Kötelező. Állítsa be ezt a keresési szolgáltatás egyedi, felhasználó által definiált nevére.
index neve Put használata esetén az URI-n kötelező megadni. A névnek kisbetűnek kell lennie, betűvel vagy számmal kell kezdődnie, nincsenek perjelei vagy pontjai, és 128 karakternél kevesebbnek kell lennie. A név elejének betűvel vagy számmal kell kezdődnie, de a többi név tartalmazhat bármilyen betűt, számot, aláhúzást és kötőjelet, feltéve, hogy az aláhúzásjelek és a kötőjelek nem egymást követőek.
api-verzió Kötelező. A támogatott verziók listáját lásd: API-verziók .

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 a következőre: application/json
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. A létrehozási kérelmeknek tartalmazniuk kell egy api-key , a rendszergazdai kulcsra beállított fejlécet (a lekérdezési kulcs helyett). 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

A kérelem törzse tartalmaz egy sémadefiníciót, amely tartalmazza az indexbe betáplált dokumentumok adatmezőinek listáját.

A következő JSON a definíció fő részeinek magas szintű ábrázolása.

{  
  "name": (optional on PUT; required on POST) "Name of the index",  
  "fields": [  
    {  
      "name": "name_of_field",  
      "type": "Edm.String | Edm.Int32 | Edm.Int64 | Edm.Double | Edm.Boolean | Edm.DateTimeOffset | Edm.GeographyPoint | Edm.ComplexType | Collection(Edm.String) | Collection(Edm.Int32) | Collection(Edm.Int64) | Collection(Edm.Double) | Collection(Edm.Boolean) | Collection(Edm.DateTimeOffset) | Collection(Edm.GeographyPoint) | Collection(Edm.ComplexType)",  
      "searchable": true (default where applicable) | false (only Edm.String and Collection(Edm.String) fields can be searchable),  
      "filterable": true (default) | false,  
      "sortable": true (default where applicable) | false (Collection(Edm.String) fields cannot be sortable),  
      "facetable": true (default where applicable) | false (Edm.GeographyPoint fields cannot be facetable),  
      "key": true | false (default, only Edm.String fields can be keys, enable on one field only),  
      "retrievable": true (default) | false,  
      "analyzer": "name_of_analyzer_for_search_and_indexing", (only if 'searchAnalyzer' and 'indexAnalyzer' are not set)
      "searchAnalyzer": "name_of_search_analyzer", (only if 'indexAnalyzer' is set and 'analyzer' is not set)
      "indexAnalyzer": "name_of_indexing_analyzer", (only if 'searchAnalyzer' is set and 'analyzer' is not set)
      "synonymMaps": [ "name_of_synonym_map" ] (optional, only one synonym map per field is currently supported),
      "fields" : [ ... ] (optional, a list of sub-fields if this is a field of type Edm.ComplexType or Collection(Edm.ComplexType). Must be null or empty for simple fields.)
    }
  ],
  "similarity": (optional) { },
  "suggesters": (optional) [ ... ],  
  "scoringProfiles": (optional) [ ... ],  
  "analyzers":(optional) [ ... ],
  "charFilters":(optional) [ ... ],
  "tokenizers":(optional) [ ... ],
  "tokenFilters":(optional) [ ... ],
  "defaultScoringProfile": (optional) "Name of a custom scoring profile to use as the default",  
  "corsOptions": (optional) { },
  "encryptionKey":(optional) { }  
}  

A kérelem a következő tulajdonságokat tartalmazza:

Tulajdonság Leírás
name Kötelező. Az index neve. Az indexnevek csak kisbetűket, számjegyeket vagy kötőjeleket tartalmazhatnak, nem kezdődhetnek és nem végződhetnek kötőjelekkel, és legfeljebb 128 karakter hosszúságúak lehetnek.
Mezők Kötelező. Az indexbe betáplált mezők gyűjteménye, beleértve a nevet, az adattípust és az attribútumokat, amelyek engedélyezhető műveleteket határoznak meg ezen a mezőn. Az adattípusok megfelelnek az Entity Data Model (EDM) modellnek. További információkért lásd a támogatott adattárak típusait. A gyűjteményben egy olyan mezőnek kell lennie, amely kulcsmezőként van megadva. Sztringmezőnek kell lennie. Ez a mező az indexben tárolt minden egyes dokumentum egyedi azonosítóját (más néven dokumentumazonosítót) jelöli. A dokumentumkulcsok megkülönböztetik a kis- és nagybetűket. Például az "abc" kulccsal rendelkező dokumentumokat az "ABC" kulcsú dokumentumtól eltérőnek tekintik.
Hasonlóság Választható. A 2020. július 15. előtt létrehozott szolgáltatások esetében állítsa be ezt a tulajdonságot a BM25 rangsorolási algoritmus használatára. Az érvényes értékek közé tartozik a vagy "#Microsoft.Azure.Search.BM25Similarity"a "#Microsoft.Azure.Search.ClassicSimilarity" . A tulajdonságot támogató API-verziók közé tartozik a 2020-06-30 és a 2019-05-06-Preview. További információ: Algoritmusok rangsorolása az Azure AI Searchben.
javaslattevők Választható. Az automatikusan kiegészült lekérdezésekhez vagy a javasolt keresési eredményekhez használható, indexenként egyet. Ez egy adatstruktúra, amely előtagokat tárol a részleges lekérdezések, például az automatikus kiegészítés és a javaslatok egyeztetéséhez. Egy és a name javaslattevővel kapcsolatos mezőkből áll, amelyek tartalommal szolgálnak az automatikusan kiegészült lekérdezésekhez és a javasolt eredményekhez. searchMode kötelező, és mindig a értékre van analyzingInfixMatchingállítva. Meghatározza, hogy az egyeztetés a lekérdezési sztring bármely kifejezésében megtörténjen.
scoringProfiles Választható. Egyéni keresési pontszámok rangsorolásához használatos. Állítsa be defaultScoringProfile úgy, hogy az egyéni profilt használja alapértelmezettként, és akkor hívja meg, amikor nincs megadva egyéni profil a lekérdezési sztringben. További információ az elemekről: Pontozási profilok hozzáadása keresési indexhez és a következő szakaszban szereplő példa.
elemzők, charFilters, tokenizers, tokenFilters Választható. Egyéni elemzők definiálása esetén adja meg az index ezen szakaszait. Alapértelmezés szerint ezek a szakaszok null értékűek.
defaultScoringProfile Választható. Az alapértelmezett pontozási viselkedést felülíró egyéni pontozási profil neve.
corsOptions Választható. Az ügyféloldali JavaScript alapértelmezés szerint nem tud api-kat meghívni, mivel a böngésző megakadályozza az összes forrásközi kérést. Ha engedélyezni szeretné a forrásközi lekérdezéseket az indexhez, engedélyezze a CORS-t (forrásközi erőforrás-megosztást) a corsOptions attribútum beállításával. Biztonsági okokból csak a lekérdezési API-k támogatják a CORS-t. A corsOptions szakasz a következőket tartalmazza:

allowedOrigins (Kötelező) Az indexhez hozzáférést kapó források vesszővel tagolt listája, ahol az egyes források általában az űrlap protocol://<-qualified-domain-name>:<port> (bár a <port> gyakran hiányzik). Ez azt jelenti, hogy a forrásból kiszolgált JavaScript-kódok lekérdezhetik az indexet (feltéve, hogy a megfelelőt api-keyadja meg). Ha engedélyezni szeretné az összes forráshoz való hozzáférést, adja meg * egyetlen elemként a allowedOrigins tömbben. Ez éles környezetben nem ajánlott, de fejlesztési vagy hibakeresési célokra hasznos lehet.

maxAgeInSeconds (Nem kötelező) A böngészők ezt az értéket használják a CORS elővizsgálati válaszainak gyorsítótárazásához szükséges időtartam (másodpercben) meghatározásához. Ennek nem negatív egész számnak kell lennie. Minél nagyobb ez az érték, annál jobb lesz a teljesítmény, de minél tovább tart a CORS-szabályzatmódosítások érvénybe lépése. Ha nincs beállítva, a rendszer az alapértelmezett 5 perces időtartamot használja.
encryptionKey Választható. Szinonimatérkép titkosítására szolgál, saját kulcsokkal, az Azure Key Vault felügyelve. A 2019-01-01-01-en vagy azt követően létrehozott számlázható keresési szolgáltatásokhoz érhető el.

A encryptionKey szakasz tartalmaz egy felhasználó által definiált keyVaultKeyName (kötelező), egy rendszer által létrehozott keyVaultKeyVersion (kötelező) és egy keyVaultUri kulcsot (kötelező, más néven DNS-nevet). Az URI például a "https://my-keyvault-name.vault.azure.net"" lehet.

Igény szerint megadhatja accessCredentials , hogy nem felügyelt rendszeridentitást használ-e. accessCredentials A következők applicationId tulajdonságai: (Microsoft Entra ID alkalmazásazonosító, amely hozzáférési engedélyeket kapott a megadott Azure-Key Vault) és applicationSecret (a regisztrált alkalmazás hitelesítési kulcsa). A következő szakaszban egy példa szemlélteti a szintaxist.

Meződefiníciók

Az index létrehozásakor a következő attribútumok állíthatók be egy mezőn.

Attribútum Leírás
name Kötelező. Beállítja a mező nevét, amelynek egyedinek kell lennie az index vagy szülőmező mezőgyűjteményében.
típus Kötelező. Beállítja a mező adattípusát. A mezők lehetnek egyszerűek vagy összetettek. Az egyszerű mezők primitív típusúak, például Edm.String szöveghez vagy Edm.Int32 egész számokhoz. Az összetett mezők tartalmazhatnak olyan almezőket, amelyek maguk is egyszerűek vagy összetettek. Ez lehetővé teszi objektumok és objektumtömbök modellezését, így a legtöbb JSON-objektumstruktúrát feltöltheti az indexbe. A támogatott típusok teljes listáját a Támogatott adattípusok (Azure AI-keresés) című témakörben találja.
kulcs Kötelező. Állítsa ezt az attribútumot true (igaz) értékre, hogy egy mező értékei egyedileg azonosítják az index dokumentumait. A kulcsmezők értékeinek maximális hossza 1024 karakter. Minden indexben pontosan egy legfelső szintű mezőt kell kiválasztani kulcsmezőként, és típusának Edm.Stringkell lennie. Az alapértelmezett érték az false egyszerű mezőkhöz és null az összetett mezőkhöz tartozik.

A kulcsmezők a dokumentumok közvetlen keresésére és adott dokumentumok frissítésére vagy törlésére használhatók. A kulcsmezők értékeit a rendszer a dokumentumok keresésekor vagy indexelésekor megkülönbözteti a kis- és nagybetűk megkülönböztetésével. A részletekért lásd: Keresési dokumentum (Azure AI Search REST API) és Dokumentumok hozzáadása, frissítése vagy törlése (Azure AI Search REST API).
lekérdezhető Azt jelzi, hogy a mező visszaadható-e egy keresési eredményben. Állítsa ezt az attribútumot értékre false , ha egy mezőt (például margót) szeretne szűrőként, rendezési vagy pontozási mechanizmusként használni, de nem szeretné, hogy a mező látható legyen a végfelhasználó számára. Ennek az attribútumnak true kulcsmezőkhöz, összetett mezőkhöz kell lennie null . Ez az attribútum a meglévő mezőkön módosítható. A lekért érték true beállítása nem okoz növekedést az indextárolási követelményekben. Az alapértelmezett érték az true egyszerű mezőkhöz és null az összetett mezőkhöz tartozik.
Kereshető Azt jelzi, hogy a mező kereshető-e teljes szöveges formátumban, és hivatkozható-e rá a keresési lekérdezésekben. Ez azt jelenti, hogy lexikális elemzésen megy keresztül, például szótörést az indexelés során. Ha egy kereshető mezőt egy olyan értékre állít be, mint a "Napos nap", a rendszer belsőleg normalizálja azt, és felosztja az egyes "sunny" és "day" jogkivonatokra. Ez lehetővé teszi a kifejezések teljes szöveges keresését. A vagy Collection(Edm.String) típusú Edm.String mezők alapértelmezés szerint kereshetők. Ennek az attribútumnak más, nem sztring típusú egyszerű mezőkhöz kell lennie false , és összetett mezőkhöz kell lennie null .

A kereshető mezők extra helyet foglalnak el az indexben, mivel az Azure AI Search feldolgozni fogja ezeknek a mezőknek a tartalmát, és kiegészítő adatstruktúrákba rendezi őket a nagy teljesítményű kereséshez. Ha helyet szeretne menteni az indexben, és nincs szükség egy mezőre a keresésekben, állítsa a kereshető értéket értékre false. A részletekért lásd: A teljes szöveges keresés működése az Azure AI Searchben .
szűrhető Azt jelzi, hogy engedélyezi-e a mező hivatkozását a lekérdezésekben $filter . A szűrhető érték a sztringek kezelésének módjában különbözik a kereshetőtől. A típusú Edm.String vagy Collection(Edm.String) szűrhető mezők nem esnek át lexikális elemzésen, így az összehasonlítások csak pontos egyezéseket tartalmaznak. Ha például egy ilyen mezőt f "Napos nap" értékre állít be, $filter=f eq 'sunny' akkor nem talál egyezést, de $filter=f eq 'Sunny day' igen. Ennek az attribútumnak összetett mezőkhöz kell lennie null . Az alapértelmezett érték az true egyszerű mezőkhöz és null az összetett mezőkhöz tartozik. Az index méretének csökkentése érdekében állítsa ezt az attribútumot olyan mezőkre false , amelyekre nem fog szűrni.
Sortable Azt jelzi, hogy engedélyezi-e a mező hivatkozását kifejezésekben $orderby . Az Azure AI Search alapértelmezés szerint pontszám szerint rendezi az eredményeket, de sok esetben a felhasználók a dokumentumok mezői szerint szeretnének rendezni. Egy egyszerű mező csak akkor rendezhető, ha egyértékű (a szülődokumentum hatókörében egyetlen értékkel rendelkezik).

Az egyszerű gyűjteménymezők nem rendezhetők, mivel többértékűek. Az összetett gyűjtemények egyszerű almezői szintén többértékűek, ezért nem rendezhetők. Ez akkor is igaz, ha egy közvetlen szülőmezőről vagy egy elődmezőről van szó, ez az összetett gyűjtemény. Az összetett mezők nem rendezhetők, és az ilyen mezőkhöz a rendezhető attribútumnak kell lennie null . A rendezhető mezők alapértelmezett értéke az true egyértékű egyszerű mezők, false a többértékű egyszerű mezők és null az összetett mezők.
facetable Azt jelzi, hogy engedélyezi-e a mező hivatkozását az aspektusos lekérdezésekben. Általában a találatok kategória szerinti számát (például digitális kamerák keresését és a találatok márka, megapixelek, ár stb. szerinti megtekintését) tartalmazó keresési eredmények bemutatójában használatos. Ennek az attribútumnak összetett mezőkhöz kell lennie null . A típusú Edm.GeographyPoint mezők Collection(Edm.GeographyPoint) nem lehetnek táblázatosak. Az alapértelmezett érték az true összes többi egyszerű mezőhöz tartozik. Az index méretének csökkentése érdekében állítsa ezt az attribútumot false olyan mezőkre, amelyekre nem fog jellemzőként hivatkozni.
Elemző Beállítja a lexikális elemzőt a sztringek tokenizálásához az indexelési és lekérdezési műveletek során. A tulajdonság érvényes értékei közé tartoznak a nyelvelemzők, a beépített elemzők és az egyéni elemzők. A mező alapértelmezett értéke: standard.lucene. Ez az attribútum csak kereshető sztringmezőkkel használható, és nem állítható be a searchAnalyzer vagy az indexAnalyzer paraméterrel együtt. Miután kiválasztotta az elemzőt, és a mező létrejött az indexben, nem módosítható a mezőhöz. Összetett mezőkhöz kell lennienull.
searchAnalyzer Állítsa be ezt a tulajdonságot az indexAnalyzerrel együtt, hogy különböző lexikális elemzőket adjon meg az indexeléshez és a lekérdezésekhez. Ha ezt a tulajdonságot használja, állítsa az elemző értékét értékre null , és győződjön meg arról, hogy az indexAnalyzer értéke engedélyezett. A tulajdonság érvényes értékei közé tartoznak a beépített elemzők és az egyéni elemzők. Ez az attribútum csak kereshető mezőkkel használható. A keresési elemző frissíthető egy meglévő mezőn, mivel csak lekérdezési időpontban használható. Összetett mezőkhöz kell lennienull.
indexAnalyzer Állítsa be ezt a tulajdonságot a searchAnalyzerrel együtt, hogy különböző lexikális elemzőket adjon meg az indexeléshez és a lekérdezésekhez. Ha ezt a tulajdonságot használja, állítsa az elemző értékét értékre null , és győződjön meg arról, hogy a searchAnalyzer értéke engedélyezett. A tulajdonság érvényes értékei közé tartoznak a beépített elemzők és az egyéni elemzők. Ez az attribútum csak kereshető mezőkkel használható. Az indexelemző kiválasztása után nem módosítható a mezőhöz. Összetett mezőkhöz kell lennienull.
szinonimatérképek A mezőhöz társítandó szinonimatérképek nevének listája. Ez az attribútum csak kereshető mezőkkel használható. Jelenleg mezőnként csak egy szinonimatérkép támogatott. Szinonimatérkép mezőhöz rendelése biztosítja, hogy a mezőt megcélzó lekérdezési kifejezések a szinonimatérkép szabályainak használatával lekérdezéskor ki legyenek bontva. Ez az attribútum a meglévő mezőkön módosítható. Összetett mezők esetén üres gyűjteménynek kell lennie null .
fields Almezők listája, ha ez egy vagy Collection(Edm.ComplexType)típusú Edm.ComplexType mező. Egyszerű mezők esetén üresnek vagy üresnek kell lennie null . Az almezők használatáról további információt az Összetett adattípusok modellezése az Azure AI Searchben című témakörben talál.

Megjegyzés

A szűrhető, rendezhető vagy facetable típusú Edm.String mezők hossza legfeljebb 32 kilobájt lehet. Ennek az az oka, hogy az ilyen mezők értékeit egyetlen keresési kifejezésként kezeli a rendszer, és az Azure AI Searchben egy kifejezés maximális hossza 32 kilobájt. Ha ennél több szöveget kell egyetlen sztringmezőben tárolnia, explicit módon kell beállítania a szűrhető, rendezhető és facetable false értéket az indexdefinícióban.

Ha egy mezőt kereshető, szűrhető, rendezhető vagy facetable típusúként állít be, az hatással van az index méretére és a lekérdezési teljesítményre. Ne állítsa be ezeket az attribútumokat olyan mezőkre, amelyekre nem kell hivatkozni a lekérdezési kifejezésekben.

Ha egy mező nincs beállítva kereshető, szűrhető, rendezhető vagy facetable típusúra, akkor a mezőre egyetlen lekérdezési kifejezésben sem lehet hivatkozni. Ez olyan mezők esetében hasznos, amelyeket nem használnak lekérdezésekben, de szükségesek a keresési eredményekben.

Megjegyzés

A létrehozható indexek maximális száma tarifacsomagonként változik. További információ: Szolgáltatási korlátok.

Reagálás

Sikeres kérés esetén a "201 Létrehozva" állapotkódnak kell megjelennie.

Alapértelmezés szerint a választörzs tartalmazza az indexdefiníció JSON-ját. Ha azonban a kérés fejléce Prefer értékre return=minimalvan állítva, a válasz törzse üres, a sikerességi állapotkód pedig "204 Nincs tartalom" a "201 Létrehozva" helyett. Ez attól függetlenül igaz, hogy a PUT vagy a POST használatával hozza létre az indexet.

Példák

Példa: Indexséma

{
  "name": "hotels",  
  "fields": [
    { "name": "HotelId", "type": "Edm.String", "key": true, "filterable": true },
    { "name": "HotelName", "type": "Edm.String", "searchable": true, "filterable": false, "sortable": true, "facetable": false },
    { "name": "Description", "type": "Edm.String", "searchable": true, "filterable": false, "sortable": false, "facetable": false, "analyzer": "en.microsoft" },
    { "name": "Description_fr", "type": "Edm.String", "searchable": true, "filterable": false, "sortable": false, "facetable": false, "analyzer": "fr.microsoft" },
    { "name": "Category", "type": "Edm.String", "searchable": true, "filterable": true, "sortable": true, "facetable": true },
    { "name": "Tags", "type": "Collection(Edm.String)", "searchable": true, "filterable": true, "sortable": false, "facetable": true, "analyzer": "tagsAnalyzer" },
    { "name": "ParkingIncluded", "type": "Edm.Boolean", "filterable": true, "sortable": true, "facetable": true },
    { "name": "LastRenovationDate", "type": "Edm.DateTimeOffset", "filterable": true, "sortable": true, "facetable": true },
    { "name": "Rating", "type": "Edm.Double", "filterable": true, "sortable": true, "facetable": true },
    { "name": "Address", "type": "Edm.ComplexType", 
      "fields": [
          { "name": "StreetAddress", "type": "Edm.String", "filterable": false, "sortable": false, "facetable": false, "searchable": true },
          { "name": "City", "type": "Edm.String", "searchable": true, "filterable": true, "sortable": true, "facetable": true },
          { "name": "StateProvince", "type": "Edm.String", "searchable": true, "filterable": true, "sortable": true, "facetable": true },
          { "name": "PostalCode", "type": "Edm.String", "searchable": true, "filterable": true, "sortable": true, "facetable": true },
          { "name": "Country", "type": "Edm.String", "searchable": true, "filterable": true, "sortable": true, "facetable": true }
        ]
    },
    { "name": "Location", "type": "Edm.GeographyPoint", "filterable": true, "sortable": true },
    { "name": "Rooms", "type": "Collection(Edm.ComplexType)", 
      "fields": [
          { "name": "Description", "type": "Edm.String", "searchable": true, "filterable": false, "sortable": false, "facetable": false, "analyzer": "en.lucene" },
          { "name": "Description_fr", "type": "Edm.String", "searchable": true, "filterable": false, "sortable": false, "facetable": false, "analyzer": "fr.lucene" },
          { "name": "Type", "type": "Edm.String", "searchable": true },
          { "name": "BaseRate", "type": "Edm.Double", "filterable": true, "facetable": true },
          { "name": "BedOptions", "type": "Edm.String", "searchable": true },
          { "name": "SleepsCount", "type": "Edm.Int32", "filterable": true, "facetable": true },
          { "name": "SmokingAllowed", "type": "Edm.Boolean", "filterable": true, "facetable": true },
          { "name": "Tags", "type": "Collection(Edm.String)", "searchable": true, "filterable": true, "facetable": true, "analyzer": "tagsAnalyzer" }
        ]
    }
  ],
  "suggesters": [
      { "name": "sg", "searchMode": "analyzingInfixMatching", "sourceFields": ["HotelName"] }
  ],
  "analyzers": [
    {
      "@odata.type": "#Microsoft.Azure.Search.CustomAnalyzer",
      "name": "tagsAnalyzer",
      "charFilters": [ "html_strip" ],
      "tokenizer": "standard_v2"
    }
  ]
}  

Példa: Javaslattevők

 "suggesters": [  
   {  
     "name": "name of suggester",  
     "searchMode": "analyzingInfixMatching",  
     "sourceFields": ["field1", "field2", ...]  
   }  
 ]

A javaslattevők név alapján hivatkoznak a Javaslatok API-t vagy az automatikus kiegészítési API-t tartalmazó lekérdezési kérelmekre attól függően, hogy egyezést vagy a lekérdezési kifejezés hátralévő részét szeretné-e visszaadni. A javaslattevők létrehozásával és használatával kapcsolatos további információkért lásd: Javaslattevő létrehozása.

Példa: A keresési relevancia hasonlósága

Ez a tulajdonság beállítja a rangsorolási algoritmust, amellyel relevanciapontot hozhat létre egy teljes szöveges keresési lekérdezés keresési eredményeiben. A 2020. július 15. után létrehozott szolgáltatások esetében ez a tulajdonság figyelmen kívül lesz hagyva, mert a hasonlósági algoritmus mindig BM25. A 2020. július 15. előtt létrehozott meglévő szolgáltatások esetében a BM25-öt a következőképpen állíthatja be:

 "similarity": {
     "@odata.type": "#Microsoft.Azure.Search.BM25Similarity"
 }

Példa: CORS-beállítások

Az ügyféloldali JavaScript alapértelmezés szerint nem tud API-kat meghívni, mivel a böngésző megakadályozza az összes eltérő eredetű kérést. Ha engedélyezni szeretné az eltérő eredetű lekérdezéseket az indexben, engedélyezze a CORS-t (forrásközi erőforrás-megosztás (Wikipédia)) az corsOptions attribútum beállításával. Biztonsági okokból csak a lekérdezési API-k támogatják a CORS-t.

{
   "name": "hotels",  
   "fields": [ omitted for brevity],
   "suggesters": [ omitted for brevity  ],
   "analyzers": [ omitted for brevity ],
   "corsOptions": (optional) {  
       "allowedOrigins": ["*"] | ["https://docs.microsoft.com:80", "https://azure.microsoft.com:80", ...],  
       "maxAgeInSeconds": (optional) max_age_in_seconds (non-negative integer)  
     }
}

Példa: Titkosítási kulcsok

A titkosítási kulcsok az ügyfél által kezelt kulcsok, amelyeket további titkosításhoz használnak. További információ: Titkosítás ügyfél által felügyelt kulcsokkal az Azure Key Vault.

{
    "name": "hotels",  
    "fields": [ omitted for brevity],
    "suggesters": [ omitted for brevity  ],
    "analyzers": [ omitted for brevity ],
    "encryptionKey": (optional) { 
      "keyVaultKeyName": "Name of the Azure Key Vault key used for encryption",
      "keyVaultKeyVersion": "Version of the Azure Key Vault key",
      "keyVaultUri": "URI of Azure Key Vault, also referred to as DNS name, that provides the key. An example URI might be https://my-keyvault-name.vault.azure.net",
      "accessCredentials": (optional, only if not using managed system identity) {
        "applicationId": "AAD Application ID that was granted access permissions to your specified Azure Key Vault",
        "applicationSecret": "Authentication key of the specified AAD application)"}
      }
} 

Példa: Pontozási profilok

A pontozási profil a séma olyan szakasza, amely egyéni pontozási viselkedéseket határoz meg, amelyek segítségével befolyásolhatja, hogy mely dokumentumok jelenjenek meg magasabban a keresési eredményekben. A pontozási profilok mezősúlyokból és függvényekből állnak. A használatukhoz név szerint kell megadnia egy profilt a lekérdezési sztringen. További információ: Pontozási profilok hozzáadása keresési indexhez a részletekért.

{
   "name": "hotels",  
   "fields": [ omitted for brevity],
   "suggesters": [ omitted for brevity  ],
   "analyzers": [ omitted for brevity ],
   "scoringProfiles": [  
   {  
     "name": "name of scoring profile",  
     "text": (optional, only applies to searchable fields) {  
       "weights": {  
         "searchable_field_name": relative_weight_value (positive #'s),  
         ...  
       }  
     },  
     "functions": (optional) [  
       {  
         "type": "magnitude | freshness | distance | tag",  
         "boost": # (positive number used as multiplier for raw score != 1),  
         "fieldName": "...",  
         "interpolation": "constant | linear (default) | quadratic | logarithmic",  
         "magnitude": {  
           "boostingRangeStart": #,  
           "boostingRangeEnd": #,  
           "constantBoostBeyondRange": true | false (default)  
         },  
         "freshness": {  
           "boostingDuration": "..." (value representing timespan leading to now over which boosting occurs)  
         },  
         "distance": {  
           "referencePointParameter": "...", (parameter to be passed in queries to use as reference location)  
           "boostingDistance": # (the distance in kilometers from the reference location where the boosting range ends)  
         },  
         "tag": {  
           "tagsParameter": "..." (parameter to be passed in queries to specify a list of tags to compare against target fields)  
         }  
       }  
     ],  
     "functionAggregation": (optional, applies only when functions are specified)   
       "sum (default) | average | minimum | maximum | firstMatching"  
       }  
 ]
}

Példa: Szinonimák leképezése

Miután létrehozta a szinonimatérképet a keresési szolgáltatásban, hozzárendelheti a típusmezőkhöz searchableEdm.String vagy Collection(Edm.String) egy indexhez. Az alábbi indexdefiníció konfigurálja a "műfaj" mezőt a "mysynonymmap" szinonimatérkép használatára.

Az Index frissítése használatával hozzáadhatja ezt a tulajdonságot egy meglévő mezőhöz. A mezőtulajdonság synonymMaps határozza meg a leképezést (mezőnként egy). A meglévő mezők tulajdonságait bármikor frissítheti synonymMaps .

A szokásos módon kérdezhet le kifejezéseket vagy kifejezéseket (idézőjelek között). Az Azure AI Searchben a kétrészes kifejezéseket, például a "forró kádat" kifejezésként kell kifejezni, ellenkező esetben a rendszer minden kifejezést egymástól függetlenül értékel ki. Ha lekérdezi a "hot tub" kifejezést, a keresőmotor megkeresi ezt a kifejezést, valamint az Ön által definiált szinonimákat, például a jacuzzit.

POST /indexes?api-version=2020-06-30
{
    "name":"myindex",
    "fields":[
    ...
        {
            "name":"genre",
            "type":"Edm.String",
            "searchable":true,
            "analyzer":"en.lucene",
            "synonymMaps": [
                "mysynonymmap"
            ]
        }
    ]
    ...
}

Lásd még