如何在ES 6 java api中使用FunctionScoreQueryBuilder?

如何在ES 6 java api中使用FunctionScoreQueryBuilder?,java,elasticsearch-6,Java,Elasticsearch 6,我想从ES1.7升级到6.0。我做了所有必要的更改,现在我发现FunctionScoreQueryBuilder有问题 我创建了一个BoolQueryBuilder过滤器,效果很好。现在我想在结果中添加分数,但结果与我没有添加分数功能的结果相同 ScoreFunctionBuilder fb = ScoreFunctionBuilders.scriptFunction("_score * (doc['field'].value!=0? 50000:1) ") FunctionScoreQuer

我想从ES1.7升级到6.0。我做了所有必要的更改,现在我发现FunctionScoreQueryBuilder有问题

我创建了一个BoolQueryBuilder过滤器,效果很好。现在我想在结果中添加分数,但结果与我没有添加分数功能的结果相同

ScoreFunctionBuilder fb = ScoreFunctionBuilders.scriptFunction("_score * (doc['field'].value!=0? 50000:1) ")

FunctionScoreQueryBuilder fsb = new FunctionScoreQueryBuilder(filter,fb)

SearchRequestBuilder srbPaged = client.prepareSearch(indexName)
            .setFetchSource(includes, excludes)
            .setQuery(fsb)

您发布的代码只是更改了字段[score]的值, 你应该按分数对结果排序。 就像

srbPaged.sort(“\u score”,SortOrder.DESC)

好的答案有更好的解释