must_not和filter的区别
时间: 2024-05-18 16:14:21 浏览: 98
详解spring security filter的工作原理
在 Elasticsearch 中,`must_not` 和 `filter` 都是用于过滤搜索结果的查询语句,但它们的区别在于:
- `must_not`:表示匹配不符合条件的文档。通常用于排除某些文档。例如:排除某个分类下的文档。
- `filter`:表示匹配符合条件的文档。通常用于筛选某些文档。例如:筛选某个日期范围内的文档。
另外,`filter` 会在查询结果中缓存,查询性能更高。而 `must_not` 不会被缓存,每次查询都需要重新计算。因此,如果需要频繁地进行某些条件的过滤,建议使用 `filter`。
综上所述,`must_not` 和 `filter` 的区别在于它们的作用不同,一个用于排除不符合条件的文档,一个用于筛选符合条件的文档;另外,`filter` 的查询性能更高,而 `must_not` 的查询性能较低。
阅读全文