将PostgreSQL数据库中不断变化的数据索引到Solr / Elasticsearch数据库的最佳方法是什么?
我在AWS RDS上有一个postgres数据库,我想对它进行复杂的搜索。但是,我将查询的数据随着非常高的写入/更新而不断变化。所以我不确定如何高效可靠地将数据传输到solr / elasticsearch。
感谢您的帮助
答案 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种样式可以单独使用或组合使用:
有关DIH
详细信息,请参阅https://cwiki.apache.org/confluence/display/solr/Uploading+Structured+Data+Store+Data+with+the+Data+Import+Handler。