2017-02-07 4 views
0

弾性検索5.1.2弾性検索5.1 - ランダムなスコアのためのJava API

私はバージョン2.2にrandomeスコアのJava APIのクエリを作ったが、バージョン5.1には適していません。ここに私のコードがあります(バージョン2.2で動作します)。

FunctionScoreQueryBuilder functionQuery = QueryBuilders.functionScoreQuery(boolQuery); 
functionQuery 
     .add(ScoreFunctionBuilders.randomFunction(1)) // error from 'add' 
     .boostMode("replace"); 

5.1バージョンコードとしてどのように変換できますか?

答えて

1

これは5.1.2で動作するはずです:

final BoolQueryBuilder boolQuery = QueryBuilders.boolQuery(); 
final FunctionScoreQueryBuilder functionScoreQueryBuilder = QueryBuilders 
       .functionScoreQuery(boolQuery, ScoreFunctionBuilders.randomFunction(1)) 
       .boostMode(CombineFunction.REPLACE); 
+0

感謝。私の期待通りに機能します。 ES 5.xに関するこれに関する参考資料はありますか? –

+0

@ J.Done、正直言って、潜在的で、それは何かでなければなりませんでした – Mysterion

+0

@Mysterion私はあなたの答えを調べましたが、部分的に変換することができますが、このようなクエリの場合https://stackoverflow.com/questions/45953306/how-to-covert-this-elastic-search-functional-score-query-to-java-api – praveen