2016-06-13 6 views
0
나는 아래의 검색 쿼리를 사용하고

:탄성 검색 쿼리 문자열 자바 API는 모든 결과에 같은 점수를 제공

{ "에서"

: "0", "크기": "20", "쿼리": {

이 커다란 히트는 적절한 점수로 히트/결과를 반환하는 반면, 나는 " 같은 elasticsearch 전송 클라이언트를 통해 같은 노력하고있어 :

String queryString = "{" 
      + "\"query_string\" : {\n" + 
      "  \"fields\" : [\"title\"],\n" + 
      "  \"query\" : "+ "\"" + searchQuery + "\",\n" + 
      "  \"analyze_wildcard\": true \n" + 
      " }}\n"; 

SearchResponse response2 = client.prepareSearch(indexName).setTypes(successZoneTypeName).setFrom(0).setSize(30).setQuery(QueryBuilders.queryStringQuery(queryString)).get(); 

이것은 모든 히트에 대해 동일한 점수로 결과를 반환합니다.

심지어 농담 클라이언트를 사용해도 결과가 동일합니다. 결과에 적절한 점수를 얻지 못하고 있습니다.

답변

1

이것은 Java를 통해 쿼리 문자열 쿼리를 작성하는 적절한 방법이 아닙니다. 이 방법으로해야합니다 :

+0

와일드 카드 검색의 경우 searchQuery를 별표 '*'와 연결하면 왜 모든 레코드의 점수가 1이됩니까? – abhineet

+0

다른 SO 독자들에게도 도움이되므로 새로운 질문을해야 할 것입니다. – Val

+0

당신이 제안한대로 [link] (http://stackoverflow.com/questions/37875057/why-is-that-if-the-search-string-is-concatenated-with-asterisk-news)에 대한 별도의 질문을 만들었습니다. in-case-of-wi) 또한이 질문에서조차도 '*'때문에 동일한 점수 1을 얻고 있다는 것을 깨달았습니다. 그렇지 않으면 잘 작동합니다. – abhineet