【发布时间】:2018-08-05 22:15:39
【问题描述】:
我正在寻求您的帮助来构建以下解决方案:
这是什么查询: 如果五个字段(如街道、城市、姓氏、国家、大陆)中的任何一个,则查询该关键字是否存在 所以我想检查那些有美国或英国的领域中的任何一个
我正在寻求什么帮助。
获得分数 2: 如果在这五个(“街道”、“城市”、“姓氏”、“国家”、“大陆”)字段中的任何一个中都找到了“美国”、“英国”这两个关键词
获得 1 分: 如果在这五个(“街道”、“城市”、“姓氏”、“国家”、“大陆”)字段中的任何一个字段中找到“美国”、“联合王国”中的任何一个
得到0分: 如果在这五个(“街道”、“城市”、“姓氏”、“国家”、“大陆”)字段中的任何一个字段中都找不到“美国”、“英国”这些关键词
这样我就可以在前端结果中显示 0/2 或 1/2 或 2/2
现有查询:
GET main_index/_doc/_search
{
"query": {
"bool": {
"should": [
{
"multi_match": {
"fields": ["street","city","lastname","country","continent"],
"query": "united states",
"type": "phrase"
}
},
{
"multi_match": {
"fields": ["street","city","lastname","country","continent"],
"query": "united kingdom",
"type": "phrase"
}
}]
}
}
}
【问题讨论】:
-
这个答案应该会有所帮助:stackoverflow.com/questions/36843601/…(提示:使用命名查询以了解匹配的查询)
-
太好了,非常感谢您的帮助。我按照这种方法获得了查询名称列表。稍后在程序中我必须处理计算部分。
标签: elasticsearch