2014-01-25 6 views
0

우리는 여전히 생산 시스템에서 탄성 검색을 위해 (다시) 타이어를 사용하고 있습니다.
내 질문은 색인 가져 오기 작업을 실행하고 mongoid에서 정렬 된 데이터를 제공하는 방법입니다. 예 : 사용자가 시스템에 액세스 할 수있는 동안 9000 만 레코드를 인덱싱하고 싶습니다. 마지막 삽입 레코드가 먼저 인덱싱되므로 사용자는 가장 최근의 레코드를 찾을 수 있습니다 (가장 관련있는 레코드 - created_at). 내가 수동으로 가져 오기에 보일 것이다
rake environment tire:import CLASS=Document FORCE=trueRuby on Rails - 타이어 - elasticsearch, 가져 오는 데이터를 정렬하는 방법은 무엇입니까?

답변

1

:
그래서 사용하여이를 달성 할 수있는 방법 어떤 방법이있다. 자신의 스크립트를 작성,

User.order('created_at DESC').find_in_batches do |batch| 
    Tire.index("users").import batch 
end 

또는 가져 오기 도구를 사용하여 같은 readme 뭔가 예를 들어이있다 :

사이트가 널리 사용되면 나는 다른 스핀 업 유혹 될 것
User.index.import User.order('created_at DESC') 

코어 또는 solr의 인스턴스를 가져오고 모든 것을 가져온 다음 새 애플리케이션을 사용하도록 앱을 전환하십시오.

희망이 있습니다.

편집 :

당신이 레일을 사용하는 경우, 스크립트 (설정/환경)에서 레일 환경을 포함해야합니다. 가져 오는 데 오랜 시간이 걸리면 'nohup ruby ​​my_script.rb> script_out.log 2> '으로 스크립트를 실행하여 ssh 세션에 바인딩되지 않도록 할 수 있습니다.