Skapa index (Azure Cognitive Search REST API)

Ett index är det främsta sättet att organisera och söka i dokument i Azure Cognitive Search, på liknande sätt som en tabell organiserar poster i en databas. Varje index har en samling dokument som alla överensstämmer med indexschemat (fältnamn, datatyper och attribut), men index anger också ytterligare konstruktioner (förslagstagare, bedömningsprofiler och CORS-konfiguration) som definierar andra sökbeteenden.

Du kan använda POST eller PUT på begäran. JSON-dokumentet i begärandetexten innehåller objektdefinitionen för båda.

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

Du kan också använda PUT och ange indexnamnet på URI:n.

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

HTTPS krävs för alla tjänstbegäranden. Om indexet inte finns skapas det. Om den redan finns uppdateras den till den nya definitionen.

När du skapar ett index upprättas schemat och metadata. Att fylla i indexet är en separat åtgärd. I det här steget kan du använda en indexerare (se indexeringsåtgärder, tillgängliga för datakällor som stöds) eller lägga till, uppdatera eller ta bort dokument. De inverterade indexen genereras när dokumenten publiceras.

Anteckning

Det maximala antalet index som du kan skapa varierar beroende på prisnivå. Mer information finns i Tjänstbegränsningar.

URI-parametrar

Parameter Beskrivning
tjänstnamn Krävs. Ange det unika, användardefinierade namnet på söktjänsten.
indexnamn Krävs på URI:n om du använder PUT. Namnet måste vara gemener, börja med en bokstav eller siffra, ha inga snedstreck eller punkter och vara färre än 128 tecken. När du har startat namnet med en bokstav eller siffra kan resten av namnet innehålla valfri bokstav, siffra och bindestreck, så länge bindestrecken inte är på varandra följande.
api-version Krävs. Den aktuella stabila versionen är api-version=2020-06-30. Fler versioner finns i API-versioner .

Rubriker för begäran

I följande tabell beskrivs de obligatoriska och valfria begärandehuvudena.

Fält Description
Content-Type Krävs. Ange detta till application/json
api-key Krävs. api-key används för att autentisera begäran till din tjänsten Search. Det är ett strängvärde som är unikt för din tjänst. Skapa begäranden måste innehålla en api-key rubrik som är inställd på din administratörsnyckel (till skillnad från en frågenyckel). Du hittar API-nyckeln på instrumentpanelen för söktjänsten i Azure Portal.

Begärandetext

Brödtexten i begäran innehåller en schemadefinition som innehåller listan över datafält i dokument som ska matas in i det här indexet.

Följande JSON är en övergripande representation av de viktigaste delarna i definitionen.

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

Begäran innehåller följande egenskaper:

Egenskap Beskrivning
name Krävs. Namnet på indexet. Ett indexnamn får bara innehålla gemener, siffror eller bindestreck, får inte börja eller sluta med bindestreck och får innehålla högst 128 tecken.
beskrivning En valfri beskrivning.
Fält Krävs. En samling fälthattar matas in i det här indexet, inklusive namn, datatyp och attribut som definierar tillåtna åtgärder i fältet. Datatyper överensstämmer med entitetsdatamodellen (EDM). Mer information finns i Datatyper som stöds. Det måste finnas ett fält i samlingen som anges som nyckelfält . Det måste vara ett strängfält. Det här fältet representerar den unika identifieraren, som ibland kallas dokument-ID, för varje dokument som lagras med indexet. Dokumentnycklar är skiftlägeskänsliga. Till exempel anses ett dokument med nyckeln "abc" skilja sig från ett dokument med nyckeln "ABC".
Likhet Valfritt. För tjänster som skapats före den 15 juli 2020 anger du att den här egenskapen ska använda BM25-rankningsalgoritmen. Giltiga värden inkluderar "#Microsoft.Azure.Search.ClassicSimilarity" eller "#Microsoft.Azure.Search.BM25Similarity". API-versioner som stöder den här egenskapen inkluderar 2020-06-30 och 2019-05-06-Preview. Mer information finns i Rankningsalgoritmer i Azure Cognitive Search.
förslagstagare Valfritt. Används för automatiskt kompletterade frågor eller föreslagna sökresultat, ett per index. Det är en datastruktur som lagrar prefix för matchning på partiella frågor som komplettera automatiskt och förslag. Består av ett name och förslagskänsligt fält som tillhandahåller innehåll för automatiskt kompletterade frågor och föreslagna resultat. searchMode krävs och anges alltid till analyzingInfixMatching. Den anger att matchning sker på valfri term i frågesträngen.
scoringProfiles Valfritt. Används för rangordning av anpassade sökpoäng. Ange defaultScoringProfile att använda en anpassad profil som standard, som anropas när en anpassad profil inte anges i frågesträngen. Mer information om element finns i Lägga till bedömningsprofiler i ett sökindex och exemplet i nästa avsnitt.
analyzeers, charFilters, tokenizers, tokenFilters Valfritt. Ange de här avsnitten i indexet om du definierar anpassade analysverktyg. Som standard är dessa avsnitt null.
defaultScoringProfile Valfritt. Namnet på en anpassad bedömningsprofil som skriver över standardbedömningsbeteendena.
corsOptions Valfritt. JavaScript på klientsidan kan inte anropa några API:er som standard eftersom webbläsaren förhindrar alla begäranden om korsande ursprung. Om du vill tillåta korsande frågor till ditt index aktiverar du CORS (Resursdelning för korsande ursprung) genom att ange attributet corsOptions. Av säkerhetsskäl stöder endast fråge-API:er CORS. Avsnittet corsOptions innehåller:

allowedOrigins (Obligatoriskt) En kommaavgränsad lista över ursprung som ska beviljas åtkomst till ditt index, där varje ursprung vanligtvis är av formatet protocol://< fully-qualified-domain-name>:<port> (även om <porten> ofta utelämnas). Det innebär att javascript-kod som hanteras från dessa ursprung kan köra frågor mot ditt index (förutsatt att det ger rätt api-key). Om du vill tillåta åtkomst till alla ursprung anger du * som ett enda objekt i matrisen allowedOrigins . Detta rekommenderas inte för produktion, men kan vara användbart för utveckling eller felsökning.

maxAgeInSeconds (Valfritt) Webbläsare använder det här värdet för att fastställa varaktigheten (i sekunder) för att cachelagras förinställda CORS-svar. Detta måste vara ett icke-negativt heltal. Ju större det här värdet är, desto bättre prestanda blir det, men ju längre tid det tar för CORS-principändringarna att börja gälla. Om den inte har angetts används en standardvaraktighet på 5 minuter.
encryptionKey Valfritt. Används för att kryptera en synonymmappning med dina egna nycklar som hanteras i din Azure-Key Vault. Tillgänglig för fakturerbara söktjänster som skapats på eller efter 2019-01-01.

Ett encryptionKey avsnitt innehåller en användardefinierad keyVaultKeyName (obligatorisk), en systemgenererad keyVaultKeyVersion (obligatorisk) och en keyVaultUri som tillhandahåller nyckeln (obligatoriskt, även kallat DNS-namn). Ett exempel på en URI kan vara "https://my-keyvault-name.vault.azure.net".

Du kan också ange accessCredentials om du inte använder en hanterad systemidentitet. Egenskaper för accessCredentials inkluderar applicationId (Azure Active Directory-program-ID som har beviljats åtkomstbehörigheter till din angivna Azure-Key Vault) och applicationSecret (autentiseringsnyckel för det angivna Azure AD-programmet). Ett exempel i nästa avsnitt illustrerar syntaxen.

Fältdefinitioner

Följande attribut kan anges i ett fält när du skapar ett index.

Attribut Beskrivning
name Krävs. Anger namnet på fältet, som måste vara unikt i fältsamlingen för indexet eller det överordnade fältet.
typ Krävs. Anger datatypen för fältet. Fält kan vara enkla eller komplexa. Enkla fält är av primitiva typer, t.ex Edm.String . för text eller Edm.Int32 för heltal. Komplexa fält kan ha underfält som själva är enkla eller komplexa. På så sätt kan du modellera objekt och matriser med objekt, vilket i sin tur gör att du kan ladda upp de flesta JSON-objektstrukturer till ditt index. En fullständig lista över typer som stöds finns i Datatyper som stöds (Azure Cognitive Search).
key Krävs. Ange det här attributet till true för att ange att ett fälts värden unikt identifierar dokument i indexet. Den maximala längden på värden i ett nyckelfält är 1 024 tecken. Exakt ett toppnivåfält i varje index måste väljas som nyckelfält och det måste vara av typen Edm.String. Standardvärdet är false för enkla fält och null för komplexa fält.

Nyckelfält kan användas för att söka efter dokument direkt och uppdatera eller ta bort specifika dokument. Värdena för nyckelfält hanteras på ett skiftlägeskänsligt sätt när du letar upp eller indexerar dokument. Mer information finns i Uppslagsdokument (Azure Cognitive Search REST API) och Lägg till, uppdatera eller ta bort dokument (Azure Cognitive Search REST API).
hämtningsbar Anger om fältet kan returneras i ett sökresultat. Ange det här attributet till false om du vill använda ett fält (till exempel marginal) som en filter-, sorterings- eller bedömningsmekanism, men inte vill att fältet ska vara synligt för slutanvändaren. Det här attributet måste vara true för nyckelfält och måste vara null för komplexa fält. Det här attributet kan ändras i befintliga fält. Om du anger hämtningsbar till true ökar inte indexlagringskraven. Standardvärdet är true för enkla fält och null för komplexa fält.
Sökbara Anger om fältet är sökbart i fulltext och kan refereras till i sökfrågor. Det innebär att den kommer att genomgå lexikal analys , till exempel ordbrytning under indexering. Om du anger ett sökbart fält till ett värde som "Solig dag" normaliseras det internt och delas upp i de enskilda tokens "soliga" och "dag". Detta möjliggör fulltextsökningar för dessa termer. Fält av typen Edm.String eller Collection(Edm.String) är sökbara som standard. Det här attributet måste vara false för enkla fält med andra datatyper som inte är strängar, och det måste vara null för komplexa fält.

Ett sökbart fält förbrukar extra utrymme i indexet eftersom Azure Cognitive Search bearbetar innehållet i dessa fält och organiserar dem i hjälpdatastrukturer för att utföra en bra sökning. Om du vill spara utrymme i indexet och du inte behöver ett fält som ska inkluderas i sökningar anger du sökbart till false. Mer information finns i Så här fungerar fulltextsökning i Azure Cognitive Search.
filtreringsbar Anger om fältet ska refereras till i $filter frågor. Filtreringsbar skiljer sig från sökbar i hur strängar hanteras. Fält av typen Edm.String eller Collection(Edm.String) som är filterbara genomgår inte lexikal analys, så jämförelser är endast för exakta matchningar. Om du till exempel ställer in ett sådant fält f på "Solig dag" $filter=f eq 'sunny' hittar du inga matchningar, men $filter=f eq 'Sunny day' kommer att göra det. Det här attributet måste vara null för komplexa fält. Standardvärdet är true för enkla fält och null för komplexa fält. Om du vill minska indexstorleken anger du det här attributet till false på fält som du inte kommer att filtrera på.
Sorterbar Anger om fältet ska refereras till i $orderby uttryck. Som standard sorterar Azure Cognitive Search resultat efter poäng, men i många fall vill användarna sortera efter fält i dokumenten. Ett enkelt fält kan bara sorteras om det är envärdesvärde (det har ett enda värde i det överordnade dokumentets omfång).

Enkla samlingsfält kan inte sorteras eftersom de är flervärdesfält. Enkla delfält i komplexa samlingar är också flervärdesbaserade och kan därför inte sorteras. Detta gäller oavsett om det är ett omedelbart överordnat fält, eller ett överordnat fält, som är den komplexa samlingen. Komplexa fält kan inte sorteras och det sorterbara attributet måste vara null för sådana fält. Standardvärdet för sorterbar är true för enkla enkelfält med en enda värde, false för enkla flervärdesfält och null för komplexa fält.
fasettbar Anger om fältet ska refereras till i fasetterade frågor. Används vanligtvis i en presentation av sökresultat som innehåller antal träffar per kategori (till exempel söka efter digitalkameror och se träffar efter varumärke, megapixlar, pris och så vidare). Det här attributet måste vara null för komplexa fält. Fält av typen Edm.GeographyPoint eller Collection(Edm.GeographyPoint) kan inte vara fasettbara. Standardvärdet är true för alla andra enkla fält. Om du vill minska indexstorleken anger du det här attributet till false för fält som du inte kommer att fasettera på.
Analyzer Anger den lexikala analysatorn för tokenisering av strängar under indexerings- och frågeåtgärder. Giltiga värden för den här egenskapen är bland annat språkanalysverktyg, inbyggda analysverktyg och anpassade analysverktyg. Standardvärdet är standard.lucene. Det här attributet kan bara användas med sökbara strängfält och kan inte ställas in tillsammans med antingen searchAnalyzer eller indexAnalyzer. När analysatorn har valts och fältet har skapats i indexet kan det inte ändras för fältet. Måste vara null för komplexa fält.
searchAnalyzer Ange den här egenskapen tillsammans med indexAnalyzer för att ange olika lexikala analysverktyg för indexering och frågor. Om du använder den här egenskapen anger du analyzer till och kontrollerar att null indexAnalyzer är inställt på ett tillåtet värde. Giltiga värden för den här egenskapen är inbyggda analysverktyg och anpassade analysverktyg. Det här attributet kan endast användas med sökbara fält. Sökanalyseraren kan uppdateras i ett befintligt fält eftersom det endast används vid frågetillfället. Måste vara null för komplexa fält.
indexAnalyzer Ange den här egenskapen tillsammans med searchAnalyzer för att ange olika lexikala analysverktyg för indexering och frågor. Om du använder den här egenskapen anger du analyzer till och kontrollerar att null searchAnalyzer har angetts till ett tillåtet värde. Giltiga värden för den här egenskapen är inbyggda analysverktyg och anpassade analysverktyg. Det här attributet kan endast användas med sökbara fält. När indexanalyseraren har valts kan den inte ändras för fältet. Måste vara null för komplexa fält.
synonymKartor En lista över namnen på synonymkartor som ska associeras med det här fältet. Det här attributet kan endast användas med sökbara fält. För närvarande stöds endast en synonymkarta per fält. Genom att tilldela en synonymkarta till ett fält ser du till att frågetermer som är riktade mot det fältet expanderas vid frågetillfället med hjälp av reglerna i synonymkartan. Det här attributet kan ändras i befintliga fält. Måste vara null eller en tom samling för komplexa fält.
fields En lista över underfält om det här är ett fält av typen Edm.ComplexType eller Collection(Edm.ComplexType). Måste vara null eller tomt för enkla fält. Mer information om hur och när du ska använda underfält finns i Modellera komplexa datatyper i Azure Cognitive Search.

Anteckning

Fält av typen Edm.String som är filterbara, sorterbara eller fasettbara kan vara högst 32 kilobyte långa. Detta beror på att värden för sådana fält behandlas som en enda sökterm och den maximala längden på en term i Azure Cognitive Search är 32 kilobyte. Om du behöver lagra mer text än detta i ett enda strängfält måste du uttryckligen ange filterbar, sorterbar och fasettbar i false indexdefinitionen.

Att ange ett fält som sökbart, filterbart, sorterbart eller fasettbart påverkar indexstorleken och frågeprestandan. Ange inte attributen för fält som inte är avsedda att refereras till i frågeuttryck.

Om ett fält inte är inställt på att vara sökbart, filterbart, sorterbart eller fasettbart kan fältet inte refereras till i något frågeuttryck. Detta är användbart för fält som inte används i frågor, men som behövs i sökresultaten.

Anteckning

Det maximala antalet index som du kan skapa varierar beroende på prisnivå. Mer information finns i Tjänstbegränsningar.

Svarsåtgärder

För en lyckad begäran bör du se statuskoden "201 Skapad".

Svarstexten innehåller som standard JSON för indexdefinitionen som skapades. Men om rubriken Prioritera begäran är inställd på return=minimal är svarstexten tom och statuskoden för lyckad status blir "204 Inget innehåll" i stället för "201 Skapad". Detta gäller oavsett om PUT eller POST används för att skapa indexet.

Exempel

Exempel: Ett indexschema

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

Exempel: Förslagsgivare

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

En förslagslämnare refereras efter namn på frågebegäranden som innehåller antingen API:et För förslag eller Komplettera automatiskt, beroende på om du vill returnera en matchning eller resten av en frågeterm. Mer information om hur du skapar och använder en förslagshållare finns i Skapa en förslagshållare.

Exempel: Likhet för sökrelevans

Den här egenskapen anger rangordningsalgoritmen som används för att skapa en relevanspoäng i sökresultat för en fulltextsökningsfråga. I tjänster som skapats efter den 15 juli 2020 ignoreras den här egenskapen eftersom likhetsalgoritmen alltid är BM25. För befintliga tjänster som skapades före den 15 juli 2020 kan du välja BM25 genom att ange den här konstruktionen på följande sätt:

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

Exempel: CORS-alternativ

JavaScript på klientsidan kan inte anropa några API:er som standard eftersom webbläsaren förhindrar alla begäranden mellan ursprung. Om du vill tillåta frågor mellan ursprung till ditt index aktiverar du CORS (Resursdelning mellan ursprung (Wikipedia)) genom att ange corsOptions attributet. Av säkerhetsskäl stöder endast fråge-API:er CORS.

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

Exempel: Krypteringsnycklar

Krypteringsnycklar är kundhanterade nycklar som används för ytterligare kryptering. Mer information finns i Kryptering med kundhanterade nycklar i 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)"}
      }
} 

Exempel: Bedömningsprofiler

En bedömningsprofil är ett avsnitt i schemat som definierar anpassade bedömningsbeteenden som gör att du kan påverka vilka dokument som visas högre i sökresultaten. Bedömningsprofiler består av fältvikter och funktioner. Om du vill använda dem anger du en profil efter namn på frågesträngen. Mer information finns i Lägga till bedömningsprofiler i ett sökindex för mer information.

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

Se även