2

如何在MYSQL中爲視圖創建elasticsearch索引?Elasticsearch for mysql view rails

我試圖使模型的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.' in 'order clause': SELECT history_views.* FROM history_views ORDER BY history_views. ASC LIMIT 1000

我覺得寶石需要一個主鍵來進行排序,但這並不存在於視圖中。

我該如何解決這個問題? 我是否必須重寫gem中的某個函數?

回答

1

我發現,這是問題:

主鍵需要其不存在於MySQL視圖

所以增加了行中model.rb

self.primary_key = 'id' 

來創建主鍵。

注意:id在視圖的select查詢中。