나는 타이어 및 탄성 검색을 사용하여 Rails App의 일부인 MongoMapper 모델에서 검색 기능을 제공합니다. 클래스 혼자 didn를 다시로드이미 데이터가 저장된 모델의 타이어/탄성 검색 매핑을 다시로드
config.cache_classes = true
: 나는 (설정/환경/env_name.rb에서) 다음과 같은 구성을 사용하는 환경에 재배치 할 때이 모델에 대한 매핑이되고, 업데이트되지 않은 곳 난 그냥 문제를 우연히 발견 이 문제를 해결하는 것 같아요. 아마도 새로운 매핑이 기존 데이터와 호환되지 않을 수도 있습니다. 대신 다음을 수행해야했습니다.
MyModel.index.delete
<restart the app or reload the class>
MyModel.index.import MyModel.all
나는 a)의 더 나은 방법이 있는지 궁금해했습니다. 내 모델 코드에 정의 된 최신 매핑이 각 배포 후에 elasticsearch에 의해 사용되고 있는지 확인하지만 b). 완전한 데이터 세트로 불필요한 인덱스를 다시 채우지 않아도 되나요?
일반적으로 Chef를 사용하여 배포하므로 너무 어려움없이 성공적으로 사용한 세 단계를 자동화 할 수 있습니다. 하지만 신축성이 뛰어나고 타이어 때문에 나는 두 가지를 오용하거나 불필요하게 어렵게 만들 가능성이 높다고 생각했습니다.
마지막 단락으로 인해 다소 혼란 스러웠습니다. 시내를 피하기 위해 별칭을 다른 인덱스에 어떻게 사용할 수 있는지 이해할 수 없습니다. 앞에서 설명한 시나리오에서 my-index-2012-12에 대해 내 인덱스에 대한 검색이 다시 인덱싱되는 동안 해당 검색이 실행되지 않습니까? – concept47
감사합니다. 나는 이것을 올바른 것으로 표시 할 것이고, 나는 대안을 찾을 수 없다. 대답의 요약처럼 내 시나리오에서 데이터의 색인을 다시 생성해야하며이 시나리오에서 가동 중지 시간을 피하기 위해 elasticsearch 별칭을 사용할 수 있습니다.다음은 elasticsearch 별칭에 대한 자세한 정보가있는 링크입니다. http://www.elasticsearch.org/guide/reference/api/admin-indices-aliases.html 타이어 github 페이지가 이제이 링크와 색인 별칭에 대한 정보를 갖습니다. – willjthomas
@ concept47 타이어 github 페이지 당 현재 : 새로운 색인으로 데이터 색인을 생성 할 수 있습니다 (그리고 가능한 한 별칭을 업데이트 할 수 있습니다). 따라서 기존 색인을 다시 만들지 않고 새 버전을 만든 다음 별칭을 바꿉니다. 내가 틀렸다면 나를 바로 잡으세요. – willjthomas