5

我正在尝试查询 ElasticSearch 以获取当前存储在系统上的所有过滤器查询。我的第一个想法是使用类型过滤器执行 match_all,但从我的测试来看,如果我执行 match_all 查询,它们似乎不会返回。我一生都找不到正确的方法来查询它们或任何有关它的文档,因此非常感谢您的帮助。

此外,任何其他关于如何以与其他类型不同的方式处理存储的过滤器查询的信息都值得赞赏。

4

1 回答 1

8

对于 5.x 及更高版本

Percolator 文档应该像任何其他文档一样在查询中返回。

可以在此处找到有关此新行为的文档。

请注意,在 6.x 中删除映射类型后,不清楚 percolator 索引类型会发生什么。读者可能会假设它将被删除,并且渗滤器将/应该存储在单独的索引中。无论如何,通常建议将渗滤器分成独立的索引。另请注意,此 6.x 类型删除不应影响此问题的答案。

对于 5.0 之前的版本

这将返回存储在您的 elasticsearch 集群中的所有过滤器文档:

POST _all/.percolator/_search

这会在 _all 索引(您注册的每个索引)中搜索 .percolator 类型的文档。

它基本上完成了您上面描述的操作:“带有类型过滤器的 match_all”。然而,它以稍微不同的方式完成它。

我没有玩过这个,但我认为如果您正在寻找特定类型的过滤器,这实际上允许您对过滤器执行查询/过滤器。

于 2014-12-29T18:54:38.993 回答