2017-05-03 10 views
0

현재 탄성 매핑없이 일치 :탄성 검색 구문 정확한 analizinig

"properties": { 

"content": { 

    "type": "text", 

     "term_vector":"with_positions_offsets", 

    "fields": { 

     "keyword": { 

      "type": "keyword", 

      "ignore_above": 256 

     } 

    }, 

    "analyzer": "russian" 

    }   
} 

필드 "내용"태그에서 벗겨, 정확히 페이지 "몸"태그의 콘텐츠를 크롤링 사이트의 결과가 포함되어 있습니다. 작업은이 필드에 대해 세 가지 유형의 검색을 실현하는 것입니다. 1. 모든 지정된 단어 2. 정확히 텍스트 1 예를 들어

에서 지정된 단어 (3)의 어느 -이 경우를 들어 을 match_phrase - 경기 3의 경우를 들어 - 거기가와 렸기 때문에, analizing없이 match_phrase해야 "러시아어"analizer는 다른 결말로이 phraze을 찾아

더 운이 쿼리를 시도 곡용 :

"query": { 
"bool": { 
    "must": [ 
    { 
     "match_phrase": { 
      "content": { 
       "query": "some search phraze", 
     "analyzer": "keyword" 
     } 
     } 
    } 
    ] 
} 

답변

1

exact 일치하는 쿼리를 사용 Term Query하십시오. 그래서 쿼리는 다음과 같아야합니다

GET _search 
{ 
    "query": { 
    "term" : { "content.keyword" : "some search phraze" } 
    } 
} 
+1

결과가 없습니다. 조회수 = 0 – aleha

+0

몇 가지 샘플 문서를 제공 할 수 있습니까? – avr

+0

텍스트의 킬로바이트입니다. 추운 날은 백 단어 나 수천 개가됩니다. – aleha

0

자동 응답

This 대답은 재산 해결 문제를 나에게 많은

추가 추가 필드 "원시"를 도왔다.

"properties": { 
    "content": { 
     "type": "text", 
     "term_vector":"with_positions_offsets", 
     "fields": { 
      "keyword": { 
       "type": "keyword", 
       "ignore_above": 256 
      }, 
      "raw": { 
       "type": "text", 
       "index": "analyzed" 
      } 
     }, 
    "analyzer": "russian" 
    }   
} 

검색 쿼리는 다음과 같습니다

"query": { 
    "bool": { 
     "must": [ 
      { 
       "match_phrase": { 
        "content.raw": { 
          "query": "some search phraze", 
        } 
       } 
      } 
     ] 
    }