인덱스 작업(Azure Cognitive Search REST API)

지정된 인덱스 리소스에 대한 간단한 HTTP 요청(POST, GET, PUT, DELETE)을 통해 Azure Cognitive Search 서비스에서 인덱스를 만들고 관리할 수 있습니다. 인덱스는 인덱스의 필드 컬렉션을 통해 검색 문서의 구조를 지정합니다. 필드 이름, 데이터 형식 및 특성은 쿼리 시 개별 필드를 구성, 분석 및 사용하는 방법을 결정합니다. 예를 들어 필드의 특성은 필드를 검색할 수 있는지, 필터링 가능한지, 정렬 가능한지 등을 결정합니다.

또한 인덱스는 관련성 튜닝, 제안기 및 사용자 지정 분석기를 위한 점수 매기기 프로필과 같은 다른 구문을 정의합니다.

예제

다음 예제에서는 필드, 제안기, 사용자 지정 분석기 및 언어 분석기를 포함하는 인덱스 스키마를 보여 줍니다. 필드, 제안기, 사용자 지정 분석기 및 점수 매기기 프로필(표시되지 않음)은 인덱스의 섹션입니다. 언어 분석기는 필드 정의에서 미리 정의되고 참조됩니다.

필드 컬렉션 내에서 하나의 필드가 검색 문서 식별자로 서비스되어야 합니다. 이 필드는 특성이 있습니다 "key": true (아래 예제 참조 HotelId ).

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

인덱스를 만든 후에는 인덱스를 채울 문서를 업로드합니다. 이 다음 단계는 문서 추가, 업데이트 또는 삭제 를 참조하세요.

인덱스에 대한 작업

GET을 비롯한 모든 검색 인덱스 작업에는 관리자 API 키가 필요합니다.

참조