我正在尝试构建一个用于not
使用的弹性搜索查询bool
,因为not
已弃用。例如,匹配所有不属于foo@bar.com
.
我使用 elasticsearch-dsl 尝试了这些(按照这篇文章https://www.elastic.co/blog/lost-in-translation-boolean-operations-and-filters-in-the-bool-query):
{'query': {
'bool': {
'must_not': [{
'match': {
'author': 'foo@bar.com'
}
}]
}
}}
尽管'author': 'foo@bar.com'
存在其他文档,但这不会返回任何结果。
我也试过
{'query': {
'bool': {
'must_not': [{
'term': {
'author': 'foo@bar.com'
}
}]
}
}}
这会返回一些文件的组合,有些文件有'author': 'foo@bar.com'
,有些则没有。