我正在尝试查询名为index
的字段。此字段位于文档正文中,是_index
属性的副本。此字段可以包含2个值(保留2个索引):
用户可能或可能不会选择指定要搜索的索引。因此,目标索引设置为_all
。如果用户确实指定了索引,则仅返回该索引的结果。如果未指定,将返回所有索引的结果。
这是我当前的查询:
{
"index": "_all",
"body": {
"query": {
"bool": {
"should": [
{
"query_string": {
"query": "henry candidate"
}
}
],
"must": [
{
"match": {
"index": {
"query": "henry candidate",
"minimum_should_match": 1,
"fuzziness": 2,
"zero_terms_query": "all"
}
}
}
]
}
}
}
}
我试图通过几种方式实现这一点。我尝试将匹配项放在should
中但仍返回其他索引(“clientcontacts”)的结果。我尝试使用查询字符串查询实现它并进行查询(henry) OR (candidates)
并且还返回所有索引(我也不认为我可以在这里使用zero_terms_query
)
根据我的理解,zero_terms_query
匹配所有内容,如果找不到匹配的查询。但是,我不确定如何使用must
。
修改
阅读filter
,似乎这就是我想要的效果,因为我对这个查询的评分并不感到困惑,但是我必须允许使用拼写错误(因此{{1} }属性)。据我所知,fuzziness
仅匹配完全匹配,这是term
使用的属性。有什么我在这里可以忽略或者filter
不能使用吗?