elasticsearch Elasticsearch:获得精确匹配,然后是模糊匹配
我运行以下查询:elasticsearch Elasticsearch:获得精确匹配,然后是模糊匹配,elasticsearch,kibana,elasticsearch,Kibana,我运行以下查询: GET /thing/_search/? { "query": { "multi_match" : { "query": "castle pontivy", "type": "most_fields", "fields": [ "title", "loc" ] } } } 它工作并返回thing的结果,其中title和loc按相关顺序包含castle和/或pontivy。很好 现在我想继
GET /thing/_search/?
{
"query": {
"multi_match" : {
"query": "castle pontivy",
"type": "most_fields",
"fields": [ "title", "loc" ]
}
}
}
它工作并返回thing
的结果,其中title
和loc
按相关顺序包含castle
和/或pontivy
。很好
现在我想继续这样查询,但我也希望结果更符合title
。这意味着,如果一个项目完全匹配其标题中的castle pontivy
,则必须将其作为第一个元素返回(然后其他结果按常规处理)
有什么方法可以做到这一点吗?你可以做一个
短语匹配,然后给它一个提升
5分,所以不管默认分数是多少,它都会加上+5分。如果你想在得分方面获得更多,请仔细研究(我建议你应该)
第二个multi_match将使用most_字段
匹配其余文档
{
"query":{
"bool":{
"should":[
{
"multi_match":{
"query":"castle pontivy",
"type":"phrase",
"fields":[
"title",
"loc"
],
"boost":5
}
},
{
"multi_match":{
"query":"castle pontivy",
"type":"most_fields",
"fields":[
"title",
"loc"
]
}
}
]
}
}
}
我们如何在这一点上增加模糊性?