不需要打分
// 根据索引创建查询请求SearchRequest searchRequest = new SearchRequest("person");SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();// 构建查询语句searchSourceBuilder.query(QueryBuilders.termQuery("name.keyword", "张无忌"));System.out.println("searchSourceBuilder=====================" + searchSourceBuilder);searchRequest.source(searchSourceBuilder);SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT);System.out.println(JSONObject.toJSON(response));
仔细观察查询结果,会发现ES查询结果中会带有_score这一项,ES会根据结果匹配程度进行评分。打分是会耗费性能的,如果确认自己的查询不需要评分,就设置查询语句关闭评分:
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();// 这样构造的查询条件,将不进行score计算,从而提高查询效率searchSourceBuilder.query(QueryBuilders.constantScoreQuery(QueryBuilders.termQuery("sect.keyword", "明教")));
