简体   繁体   English

Elasticsearch Java API,命中分数始终为1.0

[英]Elasticsearch java api, hits score always be 1.0

I used ElasticSearch java client. 我使用了ElasticSearch java客户端。 I do search with query_string , and I get response, but score always be 1.0 . 我确实使用query_string搜索,但得到响应,但得分始终为1.0。

code is: 代码是:

    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();

result is: 结果是:

分数= 1.0

However, I do search in elaseticsearch-head, I get response with correct score. 但是,我确实在elaseticsearch-head中搜索,但得到的分数正确。

在此处输入图片说明

So, How do I get correct score with java? 那么,如何使用Java获得正确的分数?

This solved my problem: 这解决了我的问题:

change: 更改:

String query = "{\\"query\\": {\\"query_string\\": {\\"query\\": \\"weblog data4\\"}}}"; 字符串查询=“ {\\” query \\“:{\\” query_string \\“:{\\” query \\“:\\” weblog data4 \\“}}}”“;

to: 至:

String query = "{\\"query_string\\": {\\"query\\": \\"weblog data4\\"}}"; 字符串查询=“ {\\” query_string \\“:{\\” query \\“:\\” weblog data4 \\“}}”;

more details: answer by jpountz 更多详细信息: jpountz回答

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM