2016-10-28 2 views
0

ES 5.0에서 필드 데이터는 기본적으로 텍스트 필드에서 비활성화됩니다. 중복을 제거하고 기존 설정과 동일한 결과를 얻을 수있는 방법, 즉 아래 쿼리에서 필드 데이터가 비활성화 된 경우 어떻게합니까?탄성 검색 5.0 복제 제거/최적화

{ 
    "aggs": { 
    "query": { 
     "terms": { 
     "field": "name" 
     } 
    , 
     "aggs": { 
     "top": { 
      "top_hits": { 
      "size": 1 
      } 
     } 


     } 
    } 
    }, 
    "size": 0, 
    "query": { 

      "multi_match": { 
      "query": "laura", 
      "operator": "OR", 
      "fields": [ 

       "name" 

      ] 
      } 
    } 
} 
+0

오류가 있습니까? – ChintanShah25

+0

@ ChintanShah25 예, 오류 400입니다. https://jsfiddle.net/68zjzp0p/ – ProgLearner

답변

1

당신은 ES 5.x를 텍스트 필드에 enable fielddata해야합니다. 힙 공간을 많이 소모하므로 caution과 함께 사용하십시오.

업데이트 후

PUT your_index/_mapping/your_type 
{ 
    "properties": { 
    "name": { 
     "type":  "text", 
     "fielddata": true 
    } 
    } 
} 

와 가진 당신의 매핑은 쿼리를 실행합니다.