ElasticSearch多字段权重排序
时间: 2023-12-18 07:05:55 浏览: 75
在 Elasticsearch 中,可以使用 "function_score" 查询来实现多字段的权重排序。 "function_score" 查询允许您为每个文档计算一个分数,并在查询结果中按该分数排序。可以使用 "boost_mode" 参数来指定怎样组合每个字段的分数。例如,可以使用 "sum" 模式将所有字段的分数相加,或使用 "avg" 模式计算所有字段的平均分数。
具体查询示例:
```
{
"query": {
"function_score": {
"query": {
"match": {
"title": "Elasticsearch"
}
},
"functions": [
{
"field_value_factor": {
"field": "price",
"factor": 1.2,
"modifier": "sqrt"
}
},
{
"field_value_factor": {
"field": "rating",
"factor": 2,
"modifier": "ln"
}
}
],
"score_mode": "sum",
"boost_mode": "sum"
}
}
}
```
这里我们将price和rating这两个字段做排序, score_mode是组合方式, boost_mode是对分数的调整.
阅读全文