Elasticsearch java api,点击率始终为1.0

时间:2016-09-27 07:03:06

标签: java elasticsearch

我使用了ElasticSearch java客户端。我用query_string进行搜索,得到回复,但得分始终为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-head中搜索,我得到了正确分数的答案。

enter image description here

那么,如何使用java获得正确的分数?

1 个答案:

答案 0 :(得分:0)

这解决了我的问题:

变化:

  

String query =“{\”query \“:{\”query_string \“:{\”query \“:\”weblog data4 \“}}}”;

为:

  

String query =“{\”query_string \“:{\”query \“:\”weblog data4 \“}}”;

更多细节: answer by jpountz