我试图查询ElasticSearch以查找当前存储在系统上的所有过滤器查询。我的第一个想法是使用类型过滤器进行match_all但是根据我的测试,如果我执行match_all查询,它们似乎不会被返回。我没有因为我的生活能够找到正确的方式来查询它们或任何文档,所以任何帮助都非常感谢。
此外,有关存储过滤器查询如何与其他类型区别对待的任何其他信息表示赞赏。
答案 0 :(得分:7)
对于5.x及更高版本
Percolator文档应与任何其他文档一样在查询中返回。
Documentation of this new behavior can be found here.
请注意,使用removal of mapping types in 6.x时,不清楚过滤器索引类型会发生什么。读者可以假设它将被移除并且过滤器将/应该存储在单独的索引中。通常建议将渗滤器分离成孤立的指数。另请注意,此6.x类型删除不应影响此问题的答案。
适用于5.0之前的版本
这将返回存储在elasticsearch集群中的所有过滤器文档:
POST _all/.percolator/_search
这将搜索_all索引(您已注册的每个索引)以查找.percolator类型的文档。
它基本上完成了您在上面描述的内容:“带有类型过滤器的match_all”。然而,它以稍微不同的方式完成它。
我没有玩过这么多,但我认为如果你正在寻找特定类型的过滤器,这实际上允许你对过滤器执行查询/过滤。