elasticsearch,search-engine,Java,Lucene,elasticsearch,Search Engine" /> elasticsearch,search-engine,Java,Lucene,elasticsearch,Search Engine" />

Java percolator在elasticsearch中的含义/作用是什么?

Java percolator在elasticsearch中的含义/作用是什么?,java,lucene,elasticsearch,search-engine,Java,Lucene,elasticsearch,Search Engine,尽管我阅读了Elasticsearch的文档以了解什么是percolator。我仍然很难理解它的含义,以及它在哪里被简单地使用。有人能给我提供更多的详细信息吗?您通常做的是索引文档,然后通过查询将其返回。简单地说,percolator允许您为查询编制索引,并根据索引查询过滤文档,以了解它们匹配的查询。它也被称为反向搜索,因为你所做的与你习惯的相反 percolator有不同的使用案例,第一个是存储用户兴趣的任何平台,以便在内容一进来就将正确的内容发送给正确的用户 例如,一个用户订阅了一个特定的主

尽管我阅读了Elasticsearch的文档以了解什么是percolator。我仍然很难理解它的含义,以及它在哪里被简单地使用。有人能给我提供更多的详细信息吗?

您通常做的是索引文档,然后通过查询将其返回。简单地说,percolator允许您为查询编制索引,并根据索引查询过滤文档,以了解它们匹配的查询。它也被称为反向搜索,因为你所做的与你习惯的相反

percolator有不同的使用案例,第一个是存储用户兴趣的任何平台,以便在内容一进来就将正确的内容发送给正确的用户

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


从elasticsearch 1.0开始,查看与percolator结合使用的其他几个用例和其他功能。

简单地说,percolator做到了以下几点:

用户:嘿,Percolator!你能帮我什么忙

过滤器:Hai用户!我可以帮你得到你感兴趣的信息

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

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

用户:我已经准备好了我所有的兴趣作为查询,并将它们编入Elasticsearch。有那么简单吗

过滤器:是!就这么简单!我会查看所有收到的文档,如果它们与您的任何兴趣(查询)相匹配,我会将文档返回给您

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


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

与RDBMS系统等价的是一个插入触发器,对吗?percolator首先工作时不需要对文档进行索引。从,
开始,对于Percolator新手来说,一个常见的误解是,警报是插入文档的副作用,类似于数据库触发器。事实并非如此。
我也有同样的问题理解——只要你提到用户兴趣用例——我就明白了。谢谢你。我读了四遍ES文档,尽管我确信我知道他们在说什么,但文档只是说得不正确。至少在Elasticsearch(ES)版本6.2中,这种解释是不正确的。percolator本身不会帮助您获取警报,也不会监视传入的文档。首先在ES中为percolate查询编制索引,然后您必须自己对文档进行过滤,以查看是否有任何文档与percolate查询匹配。ES会根据percolate查询为您进行搜索,但仅此而已。(@javanna也解释了这一点。)