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

Az index a dokumentumok rendszerezésének és keresésének elsődleges Azure Cognitive Search, hasonlóan ahhoz, ahogy a tábla egy adatbázisban található rekordokat rendszerez. Minden index olyan dokumentumgyűjteménysel rendelkezik, amely megfelel az indexsémának (mezőnevek, adattípusok és attribútumok), de az indexek további szerkezeteket (javaslattóknak, pontozási profiloknak és CORS-konfigurációknak) is meghatároznak, amelyek más keresési viselkedéseket határoznak meg.

A kéréshez post vagy PUT is használható. Mindkét esetben a kérelem törzsében a JSON-dokumentum biztosítja az objektum definícióját.

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

Alternatív megoldásként használhatja a PUT-et, és megadhatja az index nevét az URI-on.

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

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

Az index létrehozása létrehozza a sémát és a metaadatokat. Az index felugrása egy különálló művelet. Ehhez a lépéshez használhat indexelőt (lásd: Indexelőműveletek , támogatott adatforrások esetén elérhető) vagy dokumentumok hozzáadása, frissítésevagy törlése. A fordított indexek a dokumentumok elküldéskor jönnek létre.

Megjegyzés

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

URI-paraméterek

Paraméter Leírás
szolgáltatás neve Kötelező. Állítsa be a keresési szolgáltatás egyedi, felhasználó által definiált nevét.
index neve Kötelező a PUT használata esetén az URI-on. A névnek kisbetűsnek kell lennie, betűvel vagy számmal kell kezdődnie, nem tartalmazhat perjelet vagy pontokat, és 128 karakternél rövidebbnek kell lennie. A név betűvel vagy számmal való elkezdését követően a név többi része bármilyen betűt, számot és kötőjelet tartalmazhat, ha a kötőjelek nem egymást követők.
api-verzió Kötelező. Az aktuális stabil verzió a api-version=2020-06-30 . További verziókért lásd: API-verziók.

Kérelemfejlécek

Az alábbi táblázat a szükséges és választható kérésfejléceket ismerteti.

Mezők Description
Content-Type Kötelező. Állítsa ezt a beállításra application/json
api-key Kötelező. A api-key a kérés hitelesítésére használatos a Search szolgáltatás. Ez egy sztringérték, amely a szolgáltatás egyedi. A létrehozási kérelmeknek tartalmazniuk kell egy, a rendszergazdai kulcshoz (és nem api-key egy lekérdezési kulcshoz) beállított fejlécet. Az API-kulcsot a keresési szolgáltatás irányítópultján találja a Azure Portal.

Kérelem törzse

A kérelem törzse tartalmaz egy sémadefiníciót, amely tartalmazza az adatmezők listáját az indexbe beemelt dokumentumokban.

Az alábbi 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 index neve csak kisbetűket, számjegyeket vagy kötőjeleket tartalmazhat, nem kezdődhet vagy végződhet kötőjellel, és legfeljebb 128 karakter hosszú lehet.
leírás Nem kötelező leírás.
Mezők Kötelező. Ebbe az indexbe egy mezőgyűjtő-gyűjtemény lesz beirányelve, beleértve a nevet, az adattípust és az attribútumokat, amelyek az adott mezőn engedélyezik a műveleteket. Az adattípusok megfelelnek az Entitásadatmodellnek (EDM). További információ: Támogatott adattípusok. A gyűjteményben egy mezőnek kell lennie, amely kulcsmezőként van megadva. Sztringmezőnek kell lennie. Ez a mező az indexszel tárolt minden egyes dokumentum egyedi azonosítóját (más néven dokumentumazonosítóját) jelöli. A dokumentumkulcsok megkülönböztetik a kis- és nagybetűket. Például az "abc" kulccsal és az "ABC" kulccsal nem azonos dokumentumnak minősül.
Hasonlóság Választható. A 2020. július 15. előtt létrehozott szolgáltatásokhoz állítsa be ezt a tulajdonságot a BM25 rangsorolási algoritmus használatára. Az érvényes értékek a "#Microsoft.Azure.Search.ClassicSimilarity" következők: vagy "#Microsoft.Azure.Search.BM25Similarity" . 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ó: Ranking algorithms in Azure Cognitive Search.
javaslattóknak Választható. Automatikusan kiegésű lekérdezésekhez vagy javasolt keresési eredményekhez használatos, indexenként egyet. Ez egy olyan 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 javaslattáló mezőkből áll, amelyek az automatikusan kiegészítésű lekérdezésekhez és a javasolt eredményekhez biztosítanak name tartalmat. searchMode kötelező, és mindig állítsa a beállítását a (beállítás) analyzingInfixMatching beállításra. Megadja, hogy a lekérdezési sztring bármely kifejezésében egyezés történik.
scoringProfiles (pontozási profilok) Választható. Az egyéni keresési pontszám rangsorolására használatos. Ha a lekérdezési sztringben nincs egyéni profil megadva, a rendszer egy egyéni profil alapértelmezettként való defaultScoringProfile használatára van beállítva. Az elemekkel kapcsolatos további információkért lásd a pontozási profilok keresési indexhez való hozzáadását és a következő szakaszban található példát.
elemzők, charFilters, tokenizers, tokenFilters Választható. Ha egyéni elemzőket definiál, 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 hívni, mivel a böngésző megakadályozza az összes eredetközi kérést. Ha engedélyezni szeretné az eredetközi lekérdezéseket az indexhez, engedélyezze a CORS -t (cross-Origin Resource Sharing) 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ő) Azon eredetek vesszővel tagolt listája, amelyek hozzáférést kapnak az indexhez, ahol az egyes eredetek általában a protocol:// : formában szerepelnek (bár a gyakran <fully-qualified-domain-name> <port> <port> kimarad). Ez azt jelenti, hogy az ebből a forrásból kiszolgált JavaScript-kód lekérdezheti az indexet (feltéve, hogy a megfelelőt api-key biztosítja). Ha minden forráshoz engedélyezni szeretné a hozzáférést, adja meg a értéket * egyetlen elemként a allowedOrigins tömbben. Ez éles környezetben nem ajánlott, de hasznos lehet a fejlesztéshez vagy a hibakereséshez.

maxAgeInSeconds (Nem kötelező) A böngészők ezzel az értékkel határozzák meg az előzetes CORS-válaszok gyorsítótárazható időtartamát (másodpercben). Ennek nem negatív egész számnak kell lennie. Minél nagyobb ez az érték, annál jobb teljesítmény lesz, de minél tovább tart a CORS-szabályzat módosításainak életbe lépete. Ha nincs beállítva, a rendszer az alapértelmezett 5 perces időtartamot használja.
encryptionKey (titkosítási kulcs) Választható. Egy szinonimatérkép titkosítására használható saját kulcsokkal, amelyek a saját Azure Key Vault. A 2019. 01. 01. 01. után létrehozott számlázható keresési szolgáltatásokhoz érhető el.

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

Azt is megadhatja, hogy accessCredentials nem felügyelt rendszeridentitást használ-e. A accessCredentials tulajdonságai: (Azure Active Directory alkalmazásazonosító, amely hozzáférési engedélyt kapott a megadott Azure Key Vault) és (a megadott applicationId Azure AD-alkalmazás hitelesítési applicationSecret kulcsa). A következő szakaszban egy példa szemlélteti a szintaxist.

Meződefiníciók

A következő attribútumok egy mezőhöz beállíthatók index létrehozásakor.

Attribútum Leírás
name Kötelező. Beállítja a mező nevét, amelynek egyedinek kell lennie az index vagy a szülőmező mezőgyűjteményében.
típus Kötelező. Beállítja a mező adattípusát. A mezők egyszerűek vagy összetettek is. Az egyszerű mezők egyszerű típusok, például szöveg vagy egész Edm.String Edm.Int32 szám típusúak. Az összetett mezők almezői maguk is egyszerűek vagy összetettek. Ez lehetővé teszi objektumok és objektumtömbök modellezését, ami lehetővé teszi a legtöbb JSON-objektumstruktúrá feltöltését az indexbe. A támogatott típusok teljes listájáért (Azure Cognitive Search) támogatott adattípusok listáját.
kulcs Kötelező. Állítsa ezt az attribútumot true (igaz)értékre annak jelölésére, hogy egy mező értékei egyedileg azonosítják az indexben a dokumentumokat. Egy kulcsmező é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 kell Edm.String lennie. Az alapértelmezett érték false egyszerű mezőkhöz és null összetett mezőkhöz.

A kulcsmezőkkel dokumentumok közvetlenül kereshetőek, és frissíthetőek vagy törölhetők bizonyos dokumentumok. A kulcsmezők értékeit a rendszer megkülönbözteti a kis- és nagybetűktől, amikor dokumentumokat keres vagy indexel. A részletekért lásd: Dokumentumok (Azure Cognitive Search REST API)és Dokumentumok hozzáadása, frissítése (Azure Cognitive Search REST API) törlése.
lekért Azt jelzi, hogy a mező visszaadható-e a keresési eredményekben. Állítsa ezt az attribútumot a következőre: , ha egy mezőt (például margót) szűrési, rendezési vagy pontozási mechanizmusként szeretne használni, de nem szeretné, hogy a mező látható legyen false a végfelhasználó számára. Ennek az attribútumnak kulcsmezőkhöz, és összetett mezőkhöz true null kell lennie. Ez az attribútum meglévő mezőkön módosítható. A lekért érték beállítása true nem növeli az indextárolási követelményeket. Az alapértelmezett érték true egyszerű mezőkhöz és null összetett mezőkhöz.
Kereshető Azt jelzi, hogy a mező kereshető-e teljes szövegesen, és hivatkozhat-e rá a keresési lekérdezésekben. Ez azt jelenti, hogy az indexelés során lexikális elemzésen, például szótörésen fog átesni. Ha egy kereshető mezőt például "Sunny day" értékre ad meg, az belsőleg normalizálva lesz, és az egyes jogkivonatra (sunny) és day (nap) " " lesz " " felosztva. Ez lehetővé teszi a kifejezések teljes szöveges keresését. A vagy Edm.String típusú mezők alapértelmezés szerint Collection(Edm.String) kereshetők. Ennek az attribútumnak más nem sztring adattípusok egyszerű mezőihez kell lennie, összetett false null mezőkhöz pedig.

A kereshető mezők több helyet foglalnak el az indexben, Azure Cognitive Search a rendszer feldolgozja a mezők tartalmát, és kiegészítő adatstruktúrákba rendezi őket a hatékony kereséshez. Ha helyet szeretne megtakarékosni az indexben, és nincs szüksége arra, hogy a keresések tartalmazni tudjanak egy mezőt, állítsa a Kereshető beállítását a következőre: false . A részletekért lásd: A teljes szöveges keresés működése Azure Cognitive Search a részleteket.
szűrhető Azt jelzi, hogy engedélyezi-e a mezőre való hivatkozást a $filter lekérdezésekben. A szűrhető eltér a kereshetőtől a sztringek kezelése esetében. A típusú vagy szűrhető mezők nem esnek át lexikális elemzésen, így az összehasonlítások csak Edm.String Collection(Edm.String) pontos egyezésekre használhatók. Ha például egy ilyen mezőt "Sunny day" (Napos nap) beállításra ad meg, a nem talál f $filter=f eq 'sunny' egyezéseket, de $filter=f eq 'Sunny day' igen. Ennek az attribútumnak összetett null mezőkhöz kell lennie. Az alapértelmezett érték true egyszerű mezőkhöz és null összetett mezőkhöz. Az indexméret csökkentéséhez állítsa ezt az attribútumot a(z) beállításra olyan mezőknél, amelyekre nem false szűr.
Sortable Azt jelzi, hogy engedélyezi-e a mező kifejezésben való $orderby hivatkozását. Alapértelmezés szerint Azure Cognitive Search pont szerint rendezi az eredményeket, de a felhasználók sok esetben a dokumentumok mezői szerint szeretnék rendezni a rendezést. Egy egyszerű mező csak akkor lehet rendezhető, ha egyértékes (egyetlen értékkel rendelkezik a szülődokumentum hatókörében).

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 attól függetlenül igaz, hogy közvetlen szülőmezőről vagy elődről van szó, ez az összetett gyűjtemény. Az összetett mezők nem rendezhetők, és a rendezhető attribútumnak ilyen null mezőkhöz kell lennie. A rendezhető mezők alapértelmezett beállítása az egyértékű egyszerű mezők, a többértékű egyszerű mezők és az true false összetett mezők null esetén.
facetable Azt jelzi, hogy engedélyezi-e a mezőre való hivatkozást a facet lekérdezésekben. Jellemzően olyan keresési eredmények bemutatásához használatos, amelyek tartalmazzák a találatok számát kategória szerint (például digitális kamerák keresése, találatok megtekintése márka, ár és így tovább). Ennek az attribútumnak összetett null mezőkhöz kell lennie. A vagy típusú Edm.GeographyPoint mezők Collection(Edm.GeographyPoint) nem írhatóak facetable típusúak. Az alapértelmezett érték true az összes többi egyszerű mezőre. Az indexméret csökkentéséhez állítsa ezt az attribútumot a(z) értékére olyan mezőknél, amelyeken nem false fog jellemzőt beállítani.
Elemző Beállítja a lexikális elemzőt a sztringek tokenizáláshoz az indexelési és lekérdezési műveletek során. A tulajdonság érvényes értékei közé tartoznak a nyelvielemzők, a beépítettelemzők és az egyéni elemzők. A mező alapértelmezett értéke: standard.lucene. Ez az attribútum csak kereshető mezőkkel használható, és nem állítható be a searchAnalyzer vagy az indexAnalyzer kifejezéssel együtt. Miután kiválasztotta az elemzőt, és létrehozta a mezőt az indexben, az nem módosítható a mezőben. Összetett null mezőkhöz kell lennie.
searchAnalyzer Ezt a tulajdonságot az indexAnalyzervel együtt állítva különböző lexikális elemzőket ad meg az indexeléshez és a lekérdezésekhez. Ha ezt a tulajdonságot használja, állítsa az elemzőt értékre, és győződjön meg arról, hogy az null indexAnalyzer engedélyezett értékre van állítva. 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éskor használható. Összetett null mezőkhöz kell lennie.
indexAnalyzer Ezt a tulajdonságot a searchAnalyzer használatával együtt adhatja meg az indexeléshez és a lekérdezésekhez használt különböző lexikális elemzők megadásához. Ha ezt a tulajdonságot használja, állítsa az elemzőt értékre, és győződjön meg arról, hogy a null searchAnalyzer engedélyezett értékre van állítva. 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ó. Miután kiválasztotta az indexelemzőt, az nem módosítható a mezőben. Összetett null mezőkhöz kell lennie.
szinonimaTérképek Azoknak a szinonimáknak a neve, amelyek ehhez a mezőhöz társítva vannak leképezve. Ez az attribútum csak kereshető mezőkkel használható. Jelenleg mezőnként csak egy szinonimatérkép támogatott. Szinonimatérkép hozzárendelése egy mezőhöz biztosítja, hogy a mezőre vonatkozó lekérdezési kifejezések lekérdezéskor ki vannak bontva a szinonimatérkép szabályaival. Ez az attribútum meglévő mezőkön módosítható. Összetett null mezőkhöz vagy üres gyűjteménynek kell lennie.
fields Almezők listája, ha a mező típusa Edm.ComplexType vagy Collection(Edm.ComplexType) . Egyszerű null mezőkhöz vagy üresnek kell lennie. Az almezők használatával kapcsolatos további Azure Cognitive Search lásd: Összetett adattípusok modellezése a mezőkben.

Megjegyzés

A szűrhető, rendezhető vagy facetable típusú mezők hossza Edm.String akár 32 kilobájt is lehet. Ennek az az oka, hogy az ilyen mezők értékeit a rendszer egyetlen keresési kifejezésként kezeli, és a kifejezés maximális hossza a Azure Cognitive Search 32 kilobájt. Ha ennél több szöveget kell tárolnia egyetlen sztringmezőben, explicit módon meg kell határoznia a szűrhető, a rendezhető és a facetable értékeket az false indexdefinícióban.

A mezők kereshetőként, szűrhetőként, rendezhetőként vagy facetable-ként való beállítása hatással van az index méretére és a lekérdezési teljesítményre. Ezeket az attribútumokat ne állítsa be olyan mezőkön, amelyekre nem lehet hivatkozni a lekérdezési kifejezésekben.

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

Megjegyzés

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

Reagálás

Sikeres kérés esetén a "201 Létrehozva" állapotkódot kell látnia.

Alapértelmezés szerint a válasz törzse tartalmazza a létrehozott indexdefiníció JSON-ját. Ha azonban a Prefer request fejléc a return=minimal(minimális) értékre van állítva, a válasz törzse üres lesz, a sikeresség állapotkódja pedig "204 No Content" (201 Létrehozva) helyett "204 No Content" (201 Létrehozva). Ez az index létrehozásához használt PUT vagy POST értéktől függetlenül igaz.

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: Javaslattóknak

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

A javaslattévőre név alapján lehet hivatkozni olyan lekérdezési kérések esetében, amelyek tartalmazzák a Javaslatok API-t vagy az Automatikus kiegészítés API-tattól függően, hogy egyezést vagy a lekérdezési kifejezés hátralévő részét szeretné-e visszaadni. A javaslattátolók létrehozásáról és használatával kapcsolatos további információkért lásd: Javaslattajátító létrehozása.

Példa: A keresés relevanciájának hasonlósága

Ez a tulajdonság beállítja a relevanciapontszám létrehozásához használt rangsorolási algoritmust a teljes szöveges keresési lekérdezés keresési eredményeiben. A 2020. július 15. után létrehozott szolgáltatásokban ezt a tulajdonságot a rendszer figyelmen kívül hagyja, mert a hasonlóság algoritmusa mindig BM25. A 2020. július 15. előtt létrehozott meglévő szolgáltatásoknál a BM25-öt a következőképpen kell bebeállítással létrehoznia:

 "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 hívni, mivel a böngésző megakadályozza az összes eredetközi kérést. Ha engedélyezni szeretné az eredetközi lekérdezéseket az indexhez, engedélyezze a CORS -t (Cross-origin resource sharing (Wikipedia)) az attribútum corsOptions 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éldául: Titkosítási kulcsok

A titkosítási kulcsok az ügyfél által kezelt kulcsok, amelyek további titkosításhoz használatosak. További információ: Titkosítás ügyfél által kezelt kulcsokkala 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 egy olyan szakasza, amely egyéni pontozási viselkedéseket határoz meg, amelyek lehetővé tatják, hogy befolyásolni tudja, mely dokumentumok jelennek meg magasabban a keresési eredmények között. A pontozási profilok mezősúlyból és függvényből állnak. A használatukhoz adjon meg egy profilt név alapján a lekérdezési sztringben. További információ: Pontozási profilok hozzáadása keresési indexhez.

{
   "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"  
       }  
 ]
}

Lásd még