//连接服务器 RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(HttpHost.create("es服务器host"))); //确定index SearchRequest searchRequest = new SearchRequest("weather"); //function_score功能实现 //对城市为常熟的城市的分数×100 searchRequest.source().query(QueryBuilders.functionScoreQuery(boolQuery, new FunctionScoreQueryBuilder.FilterFunctionBuilder[]{ new FunctionScoreQueryBuilder.FilterFunctionBuilder (QueryBuilders.termQuery("city","常熟"), ScoreFunctionBuilders.weightFactorFunction(100)) }).boostMode(CombineFunction.MULTIPLY)); //查询结果,可以看到分数变化 SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT); response.getHits().forEach(new Consumer<SearchHit>() { @Override public void accept(SearchHit documentFields) { System.out.println(documentFields); } });
Java实现ES中function_score
于 2023-02-15 17:26:20 首次发布