[英]ElasticSearch sorting document based on fields that the phrase is found
在ElasticSearch中,如何根据以下字段的顺序查找短语来对文档进行排序。
搜索短语:迈阿密字段:标题,内容,主题
如果在“标题”,“内容”和“主题”中找到该短语,则它将在其他文档之前显示仅在“内容”中找到该短语。
也许有一种说法:如果在“标题”中找到短语,则权重为2;如果在“内容”中找到短语,则权重为1.5;如果在“主题”中找到的短语,则权重为1。
这将是_score的总和(权重)
我当前的查询看起来像
{
"index": "abc",
"type": "mydocuments",
"body": {
"query": {
"multi_match": {
"query": "miami",
"type": "phrase",
"fields": [
"title",
"content",
"topics",
"destinations"
]
}
}
}
}
您可以对带有插入符号^
字段使用增强功能,以使其得分高于其他匹配字段
{
"index": "abc",
"type": "mydocuments",
"body": {
"query": {
"multi_match": {
"query": "miami",
"type": "phrase",
"fields": [
"title^10",
"content^3",
"topics",
"destinations"
]
}
}
}
}
在这里,我对title
施加了10的权重,对content
施加了3的权重。 文档将以_score
降序返回,因此您需要提高您认为更重要的字段的分数; 用于提升的值取决于您,可能需要一些尝试和改进才能按您的首选顺序退回文档。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.