【发布时间】:2018-09-13 08:46:06
【问题描述】:
假设我有一个包含两个字段的索引:title 和 loc,我想在这两个字段中搜索并获得“最佳”匹配。所以如果我有三个项目:
{"title": "castle", "loc": "something"},
{"title": "something castle something", "loc": "something,pontivy,something"},
{"title": "something else", "loc": "something"}
...我想获得第二个在其title 中具有"castle" 和在其loc 中的"pontivy"。 我试着简化了例子和基础,有点复杂。所以我尝试了这个查询,但似乎不准确(这是一种感觉,不太容易解释):
GET merimee/_search/?
{
"query": {
"multi_match" : {
"query": "castle pontivy",
"fields": [ "title", "loc" ]
}
}
}
在各个字段中搜索并获得与所有字段匹配的正确方法吗?
不确定我的问题是否足够清楚,如果需要,我可以编辑。
编辑:
故事是:用户输入“castle pontivy”,我想得到这个查询的“最佳”结果,这是第二个,因为它在“title”中包含“castle”,在“loc”中包含“pontivy” .换句话说,我想要在两个领域都有最好结果的结果。
【问题讨论】:
-
您可以尝试 2 匹配,然后使用逻辑 AND 运算符
-
@Saramali 谢谢!我不确定是否理解,您可以发表您的评论作为答案吗?
标签: elasticsearch kibana