我们有一个存储在ElasticSearch中的产品目录。
每个文档如下所示:
{
'family': 'products family'
'category': 'products category'
'name': 'product name'
'description': 'product description'
}
我们正在尝试构建一个查询,该查询将获得搜索词的模糊匹配,并按以下字段顺序对结果进行评分:
有办法吗?
最佳答案
一种简单的方法是使用多重匹配查询,为每个字段提供适当的提升。
{
"query": {
"multi_match": {
"query": "produce",
"fields": ["family^4","category^3","name^2","description"],
"fuzziness" : "AUTO",
"rewrite" : "constant_score_auto"
}
}
}
在同一字段上匹配的所有文档将获得相同的分数。
您可以通过调整rewrite参数来更改此行为
Article对此提供了进一步的见解。
关于search - ElasticSEarch的分数优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31121415/