找到问题的解决办法了么?

函数查询Java API使用方法(5.x版本) FunctionScoreQueryBuilder FieldValueFactorFunctionBuilder

Elasticsearch | 作者 xiaobingy | 发布于2017年09月06日 | 阅读数:13911

以下代码是2.x版本例子,5.x后QueryBuilder.add方法没有了,如何实现,请大神指教。
// FunctionScoreQueryBuilder query =
// QueryBuilders.functionScoreQuery(QueryBuilders.boolQuery()
// .should(QueryBuilders.matchQuery("title", "航母"))
// ).add(ScoreFunctionBuilders.scriptFunction(
// new Script("(_score + 1/(timestamp-doc['timestamp'].value.toDouble()+1))/2"
// ,ScriptType.INLINE,"groovy",params))
// ).scoreMode("first")
// .boostMode(CombineFunction.REPLACE);
已邀请:

xiaobingy

赞同来自: delecarnegie

谢谢,您的方法我再试试。
我这边是QueryBuilders.functionScoreQuery(QueryBuilder, FieldValueFactorFunctionBuilder),已OK。
方法形式上略有不同。

Cheetah

赞同来自:

FunctionScoreQueryBuilder

添加方法已删除,所有过滤器和函数必须作为构造函数参数提供,方法是创建一个FunctionScoreQueryBuilder.FilterFunctionBuilder对象数组,每个过滤器/函数对包含一个元素

xiaozhi - 90后小鲜肉

赞同来自:

{
  "from": 0,
  "size": 100,
  "query": {
    "bool": {
      "filter": {
        "script": {
          "script": {
            "inline": "doc['category_code'].value - doc['user_group_id'].value == 864",
            "lang": "painless"
          },
          "boost": 1
        }
      }
    }
  }
} 您好,请问 es 5/6 用java API 怎么实现

要回复问题请先登录注册