2016-09-27 65 views
0

我使用了ElasticSearch java客户端。我用query_string进行搜索,我得到了回应,但得分总是1.0。Elasticsearch java api,命中分数始终为1.0

代码:

String query = "{\"query\": {\"query_string\": {\"query\": \"weblog data4\"}}}"; 
    SearchRequestBuilder builder = client 
      .prepareSearch("flume-2016-08-10") 
      .setQuery(query) 
      .addHighlightedField("*") 
      .setHighlighterRequireFieldMatch(false) 
      .setFrom(0).setSize(60).setExplain(true); 
    SearchResponse response = builder.execute().actionGet(); 

    System.out.println(response.toString()); 
    System.out.println(response.getHits().getAt(0).getSource()); 
    System.out.println(response.getHits().getAt(0).getHighlightFields()); 
    client.close(); 

结果是:

score = 1.0

然而,我在elaseticsearch头做搜索,我得到的响应与正确的分数。

enter image description here

所以,我如何得到正确的得分与Java?

回答

0

这解决了我的问题:

变化:

查询字符串= “{\” 查询\ “:{\” QUERY_STRING \ “:{\” 查询\ “:\” 博客DATA4 \ “}}}”;

到:

串查询= “{\” QUERY_STRING \ “:{\” 查询\ “:\” 博客DATA4 \ “}}”;

更多细节: answer by jpountz