如何最好地在Elasticsearch中创建父子关系

时间:2018-07-25 16:46:52

标签: elasticsearch logstash parent-child

我有两个实时流。一个包含新闻文章,其他包含有关同一文章的评论。除了标题,我想在每篇文章和该文章评论之间创建父子关系。没有通用的ID。我想使用两个流中都存在的标题,并根据每15分钟匹配两个流。我假设15分钟足以处理两个流之间的延迟。您将如何去做?任何想法将不胜感激。

通过Logstash发送的包含实体名称,源名称和标题的典型消息如下所示:

  

“汤姆森路透社”,“今日日本”,“特朗普在赢得胜利后   迫使北约进行危机谈判”

一些典型的评论,评论,标题通过Logstash发出,但单独的管道如下所示:

  

“我们赞扬特朗普的主张……”,“特朗普在强迫北约危机谈判后主张胜利”

     

“北约危机很重要...”,“特朗普在迫使北约危机谈判后要求胜利”

具体来说: 1.将索引分开还是用前两个索引创建第三个索引? 2.如何运行15分钟的刷新周期? 3.如果有更好的方法/工具/数据存储,请告知。

1 个答案:

答案 0 :(得分:0)

您可以通过散列标题(假设您从未观察过错字)在评论和文章之间创建一个通用ID。

  1. 是的,将文章和评论保留在单独的索引中。 参考:https://www.elastic.co/guide/en/elasticsearch/reference/current/removal-of-types.html

  2. 需要更多细节来匹配流。不知道是否有一种使用Elasticsearch Task API安排作业的方法...也许做一个cronjob来做到这一点?您可以浏览文章索引,对标题进行散列,然后在评论索引中查询该散列。

  3. 似乎您现在有了可靠的存储方法。