Elasticsearch 5在布尔过滤器Java API之后执行高斯函数
我试图用Elasticsearch5 Java API进行查询,但我有点困惑 我想将此查询转换为Java API:Elasticsearch 5在布尔过滤器Java API之后执行高斯函数,java,elasticsearch-5,Java,elasticsearch 5,我试图用Elasticsearch5 Java API进行查询,但我有点困惑 我想将此查询转换为Java API: { "query":{ "function_score": { "query": { "bool": { "must": [ {"term": { "machineNumber": "2" }},
{
"query":{
"function_score": {
"query": {
"bool": {
"must": [
{"term": { "machineNumber": "2" }},
{ "range" : {"epoch" : {
"gte" : 1493546400000,
"lte" : 1493967600000
}}}
]
}
},
"gauss": {
"epoch": {
"origin": "1493775811046",
"scale": "1s"
}
}
}
}
}
我试过几件事,但最新的一件事是:
QueryBuilder qb = boolQuery()
.must(QueryBuilders.termQuery("machineNumber", machineNumber))
.must(QueryBuilders.rangeQuery("epoch").gte(startDate).lte(endDate));
FilterFunctionBuilder[] functions = {
new FunctionScoreQueryBuilder.FilterFunctionBuilder(
ScoreFunctionBuilders.gaussDecayFunction("epoch", "1493775811046", "1s")
)
};
SearchResponse nearest_temp_ej = client.prepareSearch("temperature-test-2")
.setTypes("type")
.setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
.setQuery(QueryBuilders.functionScoreQuery(qb).filterFunctionBuilders(functions))
.execute().actionGet();
此代码无法正常工作,IDE告诉我:
functionScoreQueryBuilder类中的FilterFunctionBuilder方法
无法应用于给定的类型
任何帮助都将不胜感激