我使用了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();
结果是:
但是,我在elaseticsearch-head中搜索,我得到了正确分数的答案。
那么,如何使用java获得正确的分数?
答案 0 :(得分:0)
这解决了我的问题:
变化:
String query =“{\”query \“:{\”query_string \“:{\”query \“:\”weblog data4 \“}}}”;
为:
String query =“{\”query_string \“:{\”query \“:\”weblog data4 \“}}”;
更多细节: answer by jpountz