【发布时间】:2020-12-14 12:27:30
【问题描述】:
希望你没事!
我已经在本地实现了 elasticsearch 并且也在 Heroku 上的生产中实现了,但是我在 Heroku 上遇到了一个问题,即当我通过以下方式创建索引时
curl -XPUT https://your:bonsai@url-here.us-east-1.bonsai.io/blogs-blogs
我可以从建立索引后新添加的记录中搜索,但无法从我保存在该索引之前的记录中搜索。
【问题讨论】:
-
在创建索引之前,您在哪里“添加”记录?
-
我使用 Postgres 插件将我的记录保存在 Heroku 上的 Postgres 数据库中
-
因此您必须在 Elasticsearch 中加载您的历史记录。通常框架会在实体创建/更新/删除上添加触发器。但是你必须批量插入历史。 elastic.co/guide/en/elasticsearch/reference/current/…
-
这意味着没有其他方法了,我必须先删除我的记录,然后通过批量插入再次添加它们?
-
当然你不必从 postgres 中删除你的记录。你只需要编写一个脚本来初始化你的历史。如果它太复杂,只需使用您的实体触摸您的所有数据,但它也会更新您的 updated_at 日期。所以你应该只写你的初始化脚本。
标签: ruby-on-rails elasticsearch heroku ruby-on-rails-6 bonsai-elasticsearch