2010-03-23 3 views
12

Solr 1.4 엔터프라이즈 검색 서버은 코어 사본에서 큰 업데이트를 수행 한 다음 주 코어에서 교체하도록 권장합니다. 나는이 단계를 수행하고있다 :기존 코어의 데이터로 solr 코어를 만드는 방법은 무엇입니까?

  1. 가 준비 코어를 만듭니다 http://localhost:8983/solr/admin/cores?action=CREATE&name=prep&instanceDir=main
  2. /을 커밋, 인덱스 업데이트를 수행 준비 코어에 최적화 할 수 있습니다.
  3. 스왑 주 및 준비의 핵심 : http://localhost:8983/solr/admin/cores?action=SWAP&core=main&other=prep
  4. 언로드 준비 코어 : http://localhost:8983/solr/admin/cores?action=UNLOAD&core=prep

오전 데 문제가, 1 단계에서 만든 코어는 그 안에 데이터가 없습니다. 모든 항목과 부엌 싱크대의 전체 색인을 작성하려고한다면 괜찮을 것입니다. 그러나 문서의 (큰) 하위 집합을 업데이트하고 싶다면 분명히 작동하지 않을 것입니다.

(필자는 코어를 병합,하지만 난 그들의 목록을 만들려고 노력없이 삭제 된 문서를 제거한다 할 노력하고있어 무엇의 일부 수 있습니다.)

은 CREATE 행동을 일부 플래그가 있습니까 나는 실종 됐어? Solr Wiki page for CoreAdmin은 세부 사항에 약간 희미합니다.

가능한 해결 방법 : 복제 SOLR 사용자에

누군가가 복제를 사용하여 제안했다. 이 시나리오에서 사용하는 것 (내 이해) 다음 단계 필요합니다

  1. 변경 메인 코어의 설정이 마스터로 기반으로 메인 코어의 설정을 새로운 PREP 코어 만들기
  2. PREP 코어의 구성을 슬레이브로 변경하십시오.
  3. 원인/동기화 대기 중?
  4. 더 이상 슬레이브가되지 않도록 PREP 코어의 설정을 변경하십시오.
  5. PREP 코어에서 인덱스 업데이트를 수행 한 다음 커밋/최적화를 수행하십시오.
  6. 스왑 PREP 및 주요 코어

더 간단한 복제 기반 설치는 항상 마스터 영구적 인 PREP 코어를 구성하는 것입니다. MAIN 코어 (필요한만큼의 서버에서)는 PREP 코어의 슬레이브가 될 수 있습니다. 인덱싱은 PREP 코어에서 필요에 따라 빠르거나 느리게 진행될 수 있습니다.

가능한 해결 방법 : 영구 PREP 코어 및

나는이 (또한 영구적 인 PREP 코어 포함)이었다 해낸 또 다른 아이디어를 두 번 업데이트 :

  1. 하는 인덱스 업데이트를 수행을 한 후 커밋 /에 최적화 PREP 코어.
  2. PREP 및 MAIN 코어 교체.
  3. 인덱스 업데이트를 다시 수행 한 다음 PREP 코어에 커밋/최적화를 수행하십시오. 이제는 MAIN 코어와 동일한 데이터 (이론상)를 가지며 주변에있을 것이며 다음 인덱스 작업에 대비할 것입니다.
+0

이 절차는 모든 것을 다시 색인하기위한 것입니다. 무엇을 색인에 사용하고 있습니까? DIH 또는 맞춤 프로세스? –

+0

사용자 정의 프로세스. – stannius

+0

동일한 코어에서 문서를 업데이트 해 보았습니까? 정말 그렇게 나빠질까요? –

답변

3

필자는 인덱스 및 구성 데이터의 파일 시스템 복사본을 생성하고 새로운 파일을 만드는 복제 작업 개념을 만들었습니다. 몇 가지 잠금 문제가 있으며 인덱스에 대한 파일 시스템 액세스 권한이 있어야하지만 제대로 작동합니다. 이것은 당신에게 당신이 설정 파일을 가지고 주변을 비웃을 수있는 멋진 복사본을 제공합니다.

더 나는 그것에 대해 생각, 당신은 새로운 코어를 만들 수 다음이 수행

마스터 명령에서 슬레이브에 fetchindex 강제 : http://slave_host:port/solr/replication?command=fetchindex 별도의 속성 'masterUrl'또는 다른 전달 할 수 있습니다를 '압축'(또는 태그에 지정된 다른 매개 변수)과 같은 속성을 사용하여 마스터에서 한 번 복제를 수행합니다. 이렇게하면 슬레이브에서 마스터를 하드 코딩 할 필요가 없습니다.

그리고 프로덕션 하나에서 새로운 것을 채운 다음 업데이트를 적용한 다음 다시 바꿔주세요!

관련 문제