2

如何为 MYSQL 中的视图创建弹性搜索索引?

我尝试为mysql视图的迁移制作模型并在模型中放置

include Elasticsearch::Model
include Elasticsearch::Model::Callbacks

并放入elasticsearch.rb

unless client.indices.exists? index: 'history_views'
HistoryView.__elasticsearch__.create_index!
end

HistoryView.import

但似乎该行HistoryView.import 给出了错误

ActiveRecord::StatementInvalid: Mysql2::Error: Unknown column 'history_views.' 在“订单子句”中:SELECT history_views.* FROM history_views ORDER BY history_views。升速限制 1000

我认为 gem 需要一个主键来订购它,并且视图中不存在。

我该如何解决这个问题?我是否必须覆盖 gem 中的某些功能?

4

1 回答 1

1

我发现这是问题所在:

需要一个在 MYSQL 视图中不存在的主键

所以在model.rb中添加了这一行

  self.primary_key = 'id'

创建主键。

注意:id 在视图的选择查询中。

于 2016-08-22T16:21:45.907 回答