Elasticsearch 5. Execute a gauss function after a bool filter Java API

I'm trying to make a query with Elasticsearch5 Java API and I'm getting a little bit confused.

I want to transalte this query to Java API:

{
    "query":{
        "function_score": {
            "query": {
                "bool": {
                    "must": [
                        {"term": { "machineNumber": "2" }},
                        { "range" : {"epoch" : {
                                            "gte" : 1493546400000,
                                            "lte" : 1493967600000
                                        }}}
                    ]
                }
            },
            "gauss": {
                "epoch": {
                      "origin": "1493775811046", 
                      "scale": "1s"
                }
            }
        }
    }
}

I've tryied several things but the latest thing I've tryied is as follows:

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();

This code doesn't work fine, the IDE tells me:

method filterFunctionBuilders in class functionScoreQueryBuilder cannot be applied to given types.

Any help would be appreciated.

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.