gpt4 book ai didi

Elasticsearch Java API Function Score Query with script 函数

转载 作者:行者123 更新时间:2023-11-29 02:51:54 27 4
gpt4 key购买 nike

我目前正在尝试使用 elasticsearch 的 Java API 构建此功能分数查询:

"query": {
"function_score": {
"query": {
"query_string": {
"query": " ( ((Feild1:\"KeyWord\"^100) OR (Feild2:\"KeyWord\"^50) ))",
"default_operator": "and"
}
},
"boost_mode": "replace",
"script_score": {
"script": "_score * doc [ 'calc_feild'].value"
}
}

但是我找不到任何关于 java api 和函数分数查询的文档。这是我目前所拥有的:

到此为止

searchParam = ((Feild1:\"KeyWord\"^100)  OR (Feild2:\"KeyWord\"^50))
searchBulider.setQuery(new FunctionScoreQueryBuilder(QueryBuilders.queryString(searchParam).defaultOperator(Operator.AND)).boostMode("replace"));

查询

"query" : {
"function_score" : {
"query" : {
"query_string" : {
"query" : " ( ((Feild1:\"KeyWord\"^100) OR (Feild2:\"KeyWord\"^50) ) )",
"default_operator" : "and"
}
},
"functions" : [ ],
"boost_mode" : "replace"
}

不知道以后的方法 下一个问题是如何在 FunctionScore Builder 中提供函数

函数为空?

谢谢

最佳答案

您走对了,这里是构建所需查询的完整代码:

searchParam = "((Feild1:\"KeyWord\"^100)  OR (Feild2:\"KeyWord\"^50))";
QueryStringQueryBuilder query = QueryBuilders.queryString(searchParam)
.defaultOperator(Operator.AND);
ScriptScoreFunctionBuilder scoreFunction = ScoreFunctionBuilders
.scriptFunction("_score * doc['calc_feild'].value");
searchBulider.setQuery(new FunctionScoreQueryBuilder(query, scoreFunction)
.boostMode("replace"));

关于Elasticsearch Java API Function Score Query with script 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44147782/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com