渗滤器在elasticsearch中是什么意思?


74

即使我阅读了Elasticsearch的文档以了解什么是渗滤器。我仍然很难理解它的含义以及以简单的方式在何处使用它。谁能为我提供更多详细信息?


4
这儿这儿。我阅读了四遍ES文档,即使我确定我知道他们在说什么,这些文档也只是说得不对。
Jonesome恢复Monica 2015年

Answers:


111

通常,您要做的是索引文档并通过查询将其取回。简而言之,渗透过滤器允许您执行的操作是对查询建立索引,并针对索引的查询对文档进行渗透,以了解它们匹配的查询。这也称为反向搜索,因为您所做的与您习惯的相反。

渗滤器有不同的用例,第一个是存储用户兴趣的任何平台,以便在适当的内容一出现就立即将其发送给适当的用户。

例如,某个用户订阅了特定主题,并且当该主题的新文章出现时,就会向感兴趣的用户发送通知。您可以使用查询DSL将用户的兴趣表达为Elasticsearch查询,也可以将其注册为Elasticsearch,因为它是文档。每次发布新文章时,都无需编入索引,就可以对其进行过滤以了解哪些用户对此感兴趣。此时,您知道谁需要接收包含文章链接的通知(不过,elasticsearch不会发送通知)。另一个步骤也将是索引内容本身,但这不是必需的。

查看此演示文稿,以查看其他一些用例和其他功能,以及与从Elasticsearch 1.0开始的渗透器结合使用的功能。


相当于RDBMS系统的就是插入触发器,对不对?
Eugen

1
首先,无需对文档进行索引即可使渗滤器工作。来自Elastic博客A common misconception for those new to Percolator is that alerting is a side-effect of inserting documents, similar to a database trigger. This is not the case.
Devi

2
我对问题的理解是一样的-只要您提到用户兴趣用例-我就明白了。谢谢
DavidC '16

22

简单来说percolator

用户:嘿过滤器!你有什么可以帮我的吗?

渗滤器: Hai用户!我可以帮助您获得感兴趣的警报。

用户:太好了!接下来我该怎么办?

渗滤器:请以Elasticsearch中索引的查询的形式告诉我您的兴趣。

用户:我已经准备好所有我感兴趣的内容作为查询并将它们编入Elasticsearch。这么简单吗?

渗滤器:是的!就这么简单!如果所有文件符合您的兴趣(查询),我都会查看所有收到的文件并与您联系!

用户:太棒了!我很好奇,想知道您如何确定哪些文件符合我的兴趣。

渗滤器:这是一个很好的问题!答案很简单!您已将兴趣索引为对Elasticsearch的查询,对吗?我使用它们并针对传入文档运行所有这些查询(不是完全是为了简单起见,所有假设)都是针对传入文档的查询(这些文档不需要编制索引,可以发送进行渗滤!)。实际上,此过程称为渗滤!如果有任何文档与您的任何查询匹配,那么我会将结果发送给客户端(也可能是您)!


3
至少从Elasticsearch(ES)版本6.2开始,此解释不正确。渗滤器本身不会帮助您获得警报,也不会监视传入的文档。您首先要在ES中对渗透查询进行索引,然后必须自己对文档进行渗透,以查看您的任何文档是否与渗透查询匹配。ES针对渗滤查询为您进行搜索,仅此而已。(@javanna也说明了同样的。)
阿伦
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.