Indexműveletek (Azure Cognitive Search REST API)

Indexeket hozhat létre és kezelhet Azure Cognitive Search szolgáltatásban egyszerű HTTP-kérésekkel (POST, GET, PUT, DELETE) egy adott indexerőforráson. Az index a keresési dokumentum szerkezetét határozza meg az index mezőgyűjteményén keresztül. A mezőnevek, adattípusok és attribútumok határozzák meg az egyes mezők konfigurálását, elemzését és használatát a lekérdezés időpontjában. A mező attribútumai például meghatározzák, hogy egy mező kereshető, szűrhető, rendezhető és így tovább.

Az index más szerkezeteket is definiál, például pontozási profilokat a relevanciahangoláshoz, javaslattevőket és egyéni elemzőket.

Példa

Az alábbi példa egy olyan indexsémát mutat be, amely mezőket, javaslattevőt, egyéni elemzőt és nyelvelemzőt tartalmaz. A mezők, javaslattevők, egyéni elemzők és pontozási profilok (nem láthatók) az index szakaszai. A nyelvelemző előre definiált, és a meződefinícióban hivatkozik rá.

A mezők gyűjteményében egy mezőnek kell a keresési dokumentum azonosítójaként lennie. Ennek a mezőnek a attribútuma "key": true (lásd az HotelId alábbi példában).

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

Az index létrehozása után feltölti az indexet feltöltő dokumentumokat. A következő lépéshez tekintse meg a Dokumentumok hozzáadása, frissítése vagy törlése című témakört.

Indexeken végzett műveletek

Minden keresési indexművelethez rendszergazdai API-kulcs szükséges, beleértve a GET-t is.

Lásd még