在查询时,我试图仅获取其归一化分数(_score
除以max_score
)高于某个阈值的文档。有没有办法做到这一点?我尝试使用功能分数,但我得到SearchPhaseExecutionException
。
我的使用sense插件的查询:
POST my_index/my_type/_search
{
"query": {
"min_score": 0.4,
"function_score" : {
"query" :{
"query_string": { "_all": "test"}
},
"functions": [
{
"script_score": {
"script": "return _score / max_score;"
}
}
]
}
}
}
异常跟踪:"错误":" SearchPhaseExecutionException [无法执行阶段[查询],所有分片都失败; shardFailures
答案 0 :(得分:0)
您的查询语法错误。 “min_score”字段应位于查询块之外。而“query_string”的语法也是错误的。 Refer doc
试试这个:
POST my_index/my_type/_search
{
"min_score": 0.4,
"query": {
"function_score" : {
"query" :{
"query_string": {
"query": "test",
"fields": [
"_all"
]
}
},
"functions": [
{
"script_score": {
"script": "return _score / max_score;"
}
}
]
}
}
}
此外,错误跟踪应包含有关失败的信息。通常,您应该能够从那里识别/获取错误的方向。