2016-06-18 2 views
2

":Feed:"과 정확히 일치하는 문자열을 message 필드에 입력하고 해당 날짜를 모두 되돌리려 고합니다. 내가 가진 json도 일반 단어 " feed "과 일치하는 것으로 보입니다. 내가 어디로 잘못 가고 있는지 확실하지 않습니다. 이 쿼리에 JSON을 "constant_score" 추가해야합니까? 내가 현재 가지고있는 JSON은 다음과 같습니다 : 여기에 언급탄성 검색 쿼리에서 정확히 일치

{ 
    "query": { 
     "bool": { 
      "must": { 
       "query_string": { 
        "fields": ["message"], 
        "query": "\\:Feed\\:" 
       } 
      }, 
      "must": { 
       "range": { 
        "timestamp": { 
         "gte": "now-1d", 
         "lte": "now" 
        } 
       } 
      } 
     } 
    } 
} 
+0

매핑의 {index : "not_analyzed"}에 메시지를 설정해보십시오. 입력에 대한 감사합니다. – keety

+0

감사합니다. 불행히도 색인을 변경할 수있는 권한이 없습니다. 필자는 필드가 "not_analyzed"이면'* \\ : Feed \\ : * '와 같은 것을 찾아야한다고 생각합니다. 나는 운이없는 것처럼 보입니다. – Dhanesh

답변

3

으로 : Finding Exact Values을, 필드가 인덱스 때 분석 된 이후 - 당신이 토큰을 정확히 일치 수있는 방법이 없다 ("을"). 토큰을 검색 할 수 있어야 매핑이 "not_analyzed"되어야하며 데이터를 다시 인덱싱해야합니다.

메시지 필드에 ": feed :"만 쉽게 일치 시키려면 ":"을 토큰 화하지 않는 분석기를 계략으로 만들려고 할 수 있으므로 간단한 방법으로 필드를 쿼리 할 수 ​​있습니다 와일드 문자 대신 "일치"쿼리.