根据this issue的说法,elasticsearch支持对索引(单个文档)或批量(多个文档)使用渗滤。没有给出大量的示例,因此,我想问一下该功能是5年前添加的。

不幸的是,我在ruby API elasticsearch-ruby中找不到关于此功能的任何信息。

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

谢谢。

更新:

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

如果我想在.Net中重写项目,看起来NEST library可以做到(请参阅页面底部)。

最佳答案

除了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,它最初是percolate in bulk feature request的结果而创建的,最终被称为multi percolate api。而且我看到elasticsearch-ruby有support
?percolate=*bulk功能似乎不在list of arguments for _bulk 中,并且实际上为此存在一个问题:github.com/elastic/elasticsearch-ruby/issues/176。

稍后编辑:我再次查看了此内容,并且我更倾向于相信在the percolator redesign github问题之后,此功能已在ES 1.0.0中完全删除。我没有看到有关删除此内容的具体说明,但是重新设计后的source code related to bulk indexing with percolator option 已被删除。此外,文档没有在任何地方指定此选项。通常,发生这种情况不是疏忽,但功能根本不存在。仍然与文档相关-不要忘记您在网上找到的与此相关的任何资源至少已有两年的历史,在假定它们仍然有效之前,我会先加些盐。

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

关于elasticsearch - 在Elasticsearch-ruby中使用渗滤剂进行批量索引,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31144490/

10-11 09:17