2

MYSQL에서보기에 대한 elasticsearch 색인을 만드는 방법은 무엇입니까? 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.' in 'order clause': SELECT history_views.* FROM history_views ORDER BY history_views. ASC LIMIT 1000

나는 보석 그것으로 주문하는 기본 키가 필요하며 그것은보기에 없습니다.

어떻게 해결할 수 있습니까? 보석에서 일부 기능을 무시해야합니까?

답변

1

나는이 문제 것으로 나타났습니다 :

기본 키가 필요 그래서 model.rb에 라인을 추가

MySQL의보기에없는

self.primary_key = 'id' 

을 사용하여 기본 키를 만듭니다.

참고 : id는보기에 대한 선택 쿼리에 있습니다.