【问题标题】:How to Add Previously Stored Data in Elasticsearch index如何在 Elasticsearch 索引中添加以前存储的数据
【发布时间】: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


【解决方案1】:

如果您想在 elasticsearch 中导入模型,可以通过以下行轻松完成

heroku run bundle exec rake environment elasticsearch:import:model CLASS='Post' FORCE=true

但请确保您的 Bonsai 和其他 Es gem 应该与 elasticsearch 兼容。

【讨论】:

    猜你喜欢
    • 2015-12-02
    • 2020-08-13
    • 1970-01-01
    • 2012-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-16
    • 1970-01-01
    相关资源
    最近更新 更多