2013-02-14 2 views
3

맞춤 검색으로 간단한 결과를 얻을 수있는 간단한 검색을 설정하는 것이 좋습니다. 사용자 지정 점수를 기준으로 다시 정렬하는 것이 좋습니다.Elasticsearch 쿼리가 너무 많음 결과

문제는 그이 쿼리

"query": { 
    "query_string": { 
     "query": query_term, 
     "fields": ["name_auto"], 
    } 
} 

참고 : name_auto은 고무줄에 에지 N 그램 필드

나는 항상 쿼리가 어떤 의미를하지 않는 경우도 설정 결과를 얻을 수 .

예 :

나는 모든 안드로이드 응용 프로그램의 이름으로 채워진 elastcisearch 인덱스를 가지고있다. 내가 얼굴를 검색 할 경우 은 내가

문제는 내가 쿼리 할 때이다 [... 페이스 북, 페이스 북 메신저,] Play 스토어에 대한 의견, menans 수를 기준으로 정렬 그것에 관련된 모든 결과를 다시 얻을 facesomeuselesschars 나는 여전히 이전과 같은 결과를 얻지 만 "someuselesschars"와 일치하는 것은 없다는 것을 확실히 명심하십시오.

는 사람은 약

+0

아마도 최소 분의 그램 크기가 쿼리 시작과 일치 할만큼 커서 쿼리가 ngram 분석기에 의해 처리되고 있습니까? – LeeGee

답변

2

ElasticSearch 항상 그 결과의 점수가 좋지 않더라도 검색어와 일치하는 결과를 반환 할 수 있습니다. 'facesomeuselesschars'에 대한 검색어는 귀하의 ngram 때문에 '얼굴'이있는 항목과 일치합니다 (예 : 검색어의 처음 네 글자는 색인의 여러 토큰과 일치합니다).

쿼리의 나머지 문자는 반환 된 일치 항목의 점수를 단순히 낮추지 만 반환되지는 않습니다.

결과에 도달해야하는 최소 점수를 설정하려면 min_score 매개 변수를 사용할 수 있습니다.