将数据从postgres索引到solr / elasticsearch

时间:2015-12-24 17:31:16

标签: postgresql elasticsearch solr

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

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

感谢您的帮助

2 个答案:

答案 0 :(得分:8)

冒着某人将此问题标记为重复的风险,这里是在另一个StackOverflow线程中设置postgres-to-elasticsearch的链接。 Atlassian上还有this blog post,它还讨论了如何从PostgreSQL到ElasticSearch的实时更新。

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

答案 1 :(得分:3)

如果是Solr,一般方法是使用Data Import Handler(简称DIH)。配置完全导入& delta-import sql正确,其中delta import从数据库导入数据,该数据自上次导入时通过时间戳判断(因此,您需要具有适当时间戳的设计模式)。

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

  • 使用计时器进行delta-import。 (例如每5分钟一次)
  • 在数据库中每次更新后,调用delta-import。

有关DIH详细信息,请参阅https://cwiki.apache.org/confluence/display/solr/Uploading+Structured+Data+Store+Data+with+the+Data+Import+Handler