渗透器在弹性搜索中的含义/作用是啥?

Posted

技术标签:

【中文标题】渗透器在弹性搜索中的含义/作用是啥?【英文标题】:What does percolator mean/do in elasticsearch?渗透器在弹性搜索中的含义/作用是什么? 【发布时间】:2014-02-27 11:37:43 【问题描述】:

尽管我阅读了 Elasticsearch 的文档以了解什么是过滤器。我仍然很难理解它的含义以及它的简单用途。谁能提供更多细节?

【问题讨论】:

在这里。我将 ES 文档阅读了四次,尽管我确信我知道他们在说什么,但文档根本没有说清楚。 【参考方案1】:

您通常做的是索引文档并通过查询将它们取回。简而言之,渗透器允许您做的是索引您的查询并根据索引查询过滤文档以了解它们匹配哪些查询。它也被称为反向搜索,因为你所做的与你习惯的相反。

渗透器有不同的用例,第一个是存储用户兴趣的任何平台,以便在它进入时立即将正确的内容发送给正确的用户。

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

查看this presentation 以了解从 elasticsearch 1.0 开始与 percolator 结合使用的其他几个用例和其他功能。

【讨论】:

与 RDBMS 系统等效的是插入触发器,对吧? 文档不需要为 percolator 工作首先建立索引。来自Elastic blog,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. 我有同样的问题理解 - 只要你提到用户兴趣用例 - 我明白了。谢谢【参考方案2】:

简单来说percolator 是这样做的:

用户:嘿渗透器!你有什么可以帮助我的吗?

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

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

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

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

渗滤器:是的!就是这么简单!我会查看所有传入的文件,如果它们与您的任何兴趣(查询)相匹配,我会回复您!

用户:太棒了!我只是好奇,想知道怎么能 你找出哪些文件符合我的兴趣。

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

【讨论】:

至少从 Elasticsearch (ES) 版本 6.2 开始,这种解释是不正确的。渗滤器本身不会帮助您获得警报,也不会监视传入的文件。您首先在 ES 中索引 percolate 查询,然后您必须自己过滤文档以查看您的任何文档是否与 percolate 查询匹配。 ES 会针对渗透查询为您进行搜索,仅此而已。 (@javanna 也有同样的解释。)【参考方案3】:

在后台,percolate query 将获取您想要渗透的内容(例如,您想要提醒的那篇新闻文章),Elasticsearch 将使用该文档创建一个微小的内存索引。

您会有一堆已注册的查询(例如,每个用户的偏好都有一个)。最初,Elasticsearch 会预先过滤可能匹配的查询,然后运行那些可能匹配的查询。很像以前的Luwak(现在是Lucene Monitor)。

至少对于警报用例来说,经验法则是:

有大量传入文档和少量查询(例如日志警报)?只需按预定时间间隔运行查询 文档少而查询多?然后渗透这些文件

我还看到人们使用 percolator 来标记文档,但是在索引管道中实现一些自定义的东西来做到这一点听起来更合乎逻辑。

【讨论】:

以上是关于渗透器在弹性搜索中的含义/作用是啥?的主要内容,如果未能解决你的问题,请参考以下文章

渗透测试是啥 渗透测试有啥特点

编写渗透测试报告时,“假设”指的是啥? [关闭]

我国渗透测试行业的发展局限是啥?

什么是渗透测试服务?这个介绍的真详细

Kali渗透Windows服务器

组合器在 java parallelStream reduce 中的实际作用是啥