将数据从postgres索引到solr/elasticsearch

Al *_*sey 8 postgresql solr elasticsearch

将PostgreSQL数据库中不断变化的数据索引到Solr/Elasticsearch数据库的最佳方法是什么?

我在AWS RDS上有一个postgres数据库,我想对它进行复杂的搜索.但是,我将查询的数据随着非常高的写入/更新而不断变化.所以我不确定如何高效可靠地将数据传输到solr/elasticsearch.

谢谢您的帮助

sco*_*cit 8

冒着将某个问题标记为重复的风险,这里是在另一个StackOverflow线程中设置postgres-to-elasticsearch的链接.还有这个博客帖子上Atlassian的是还谈到了如何从PostgreSQL的获取实时更新到ElasticSearch.

对于tl; dr crowd,Atlassian线程使用存储的PGS过程将更新/插入的数据复制到临时表,然后单独处理登台表.这是一种适用于ES或Solr的好方法.不幸的是,除非你熟悉Clojure,否则这是一个自己动手的解决方案.


Eri*_*ang 5

在 的情况下Solr,一般的方法是使用Data Import HandlerDIH简称)。正确配置完全导入和增量导入 sql,其中delta import从数据库中导入自上次导入以来发生变化的数据,通过时间戳判断(因此,您需要具有适当时间戳的设计模式)。

delta-import时间,有 2 种样式,可以单独使用或组合使用:

  • 使用计时器进行增量导入。(例如每 5 分钟)
  • 每次更新数据库后,调用增量导入。

请参阅https://cwiki.apache.org/confluence/display/solr/Uploading+Structured+Data+Store+Data+with+the+Data+Import+HandlerDIH细节。