在 elasticsearch-ruby 中使用渗滤液进行批量索引

Using percolate for bulk indexing in elasticsearch-ruby

根据this issue,elasticsearch 支持使用 percolate with index(单个文档)或 bulk(多个文档)。没有给出批量的例子,所以我按照问题的标题来说明这个功能是 5 年前添加的。

很遗憾,我在 ruby API、elasticsearch-ruby.

中找不到有关此功能可用的任何信息

有谁知道它是否可用,或者是否有代码示例?

谢谢。

更新:

This page 描述了如何在索引单个文档时进行过滤,并声称可以批量处理。现在,如何在 elasticsearch-ruby 中做到这一点?

看起来 NEST library 可以做到(见页面底部),如果我愿意用 .Net 重写我的项目。

除了 a simple _bulk operation_index 指定为索引以及将 _type 指定为 .percolator 之外,Ruby 中不应该有任何特殊方法:

POST /_bulk
{"index":{"_index":"some_index","_type":".percolator","_id":"1"}}
{"query":{"match":{"whatever_field":"some value 1"}}}
{"index":{"_index":"some_index","_type":".percolator","_id":"2"}}
{"query":{"match":{"whatever_field":"some value 2"}}}
{"index":{"_index":"some_index","_type":".percolator","_id":"3"}}
{"query":{"match":{"whatever_field":"some value 3"}}}

要发送多个渗透请求,有 mpercolate which, initially, was created as a result of percolate in bulk feature request and ended up being called multi percolate api. And I see that elasticsearch-ruby has support 个。

bulk?percolate=* 功能似乎不在 list of arguments for _bulk 中,事实上,为此打开了一个问题:github.com/elastic/elasticsearch-ruby/issues/176.

后期编辑:我又看了一遍,我更倾向于相信这个功能已经在 ES 1.0.0 中完全删除,在 the percolator redesign github issue. I'm not seeing a specific statement about this being removed, but the source code related to bulk indexing with percolator option 之后重新设计 已被删除 。此外,文档没有在任何地方指定此选项。通常,发生这种情况并不是疏忽,而是功能根本不存在。仍然与文档相关 - 不要忘记您在网上找到的任何关于此的资源至少已有两年历史,在假设它们仍然有效之前我会对它们持保留态度。

如果您在 Elasticsearch(没有 ruby、nest 或任何客户端)中使用 curl 或 Sense 测试它并发现它不起作用,我不会感到惊讶。我刚刚在 1.6 中对此进行了测试,但我没有看到该功能。

latest master documentation(属于当前未发布的 Elasticsearch 6.x)有一个关于渗透多个文档的部分。这是计划在 6.X 中发布的新功能,但不在 6.0 候选版本中。