【问题标题】:Getting ElasticSearch Percolator Queries获取 ElasticSearch Percolator 查询
【发布时间】:2015-01-10 00:37:26
【问题描述】:

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

此外,感谢您提供有关如何将存储的过滤器查询与其他类型区别对待的任何其他信息。

【问题讨论】:

    标签: elasticsearch elasticsearch-percolate


    【解决方案1】:

    适用于 5.x 及更高版本

    过滤器文档应该在查询中返回,就像任何其他文档一样。

    Documentation of this new behavior can be found here.

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

    对于 5.0 之前的版本

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

    POST _all/.percolator/_search
    

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

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

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

    【讨论】:

    • 请注意,这适用于 5.0 之前的过滤器(请参阅 elastic.co/guide/en/elasticsearch/reference/5.4/…)。对于当前的实现,只需在索引过滤器查询的索引上使用 _search
    • 谢谢@AlexZakharenko!我更新了答案以反映新行为。请查看并留下您的任何进一步反馈。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-26
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-10
    相关资源
    最近更新 更多