2013-06-22 4 views
1

3 년 전에 비슷한 질문이 있었지만, 1) 기존 q는 3 살이었고 2) 나는 다른 문제와 다른 버전의 Solr로 복제 할 수 있다고 생각했습니다.기존 코어의 데이터를 사용하여 새로운 Solr 코어를 설정하는 방법은 무엇입니까?

다음은 이야기입니다. 공동 작업자가 기존 Solr 코어의 "Index"디렉토리 복사본을 받았습니다. 내 자신의 코어를 로컬로 설정하고 해당 인덱스를 사용하려고합니다. 기존 코어는 Solr 4.1.0 설치에서 나온 것입니다. (필자는 Solr 4.3.1과 Solr 4.1.0을 모두 설치해 보았습니다.) Solr과 함께 Jetty를 실행 중입니다.

무엇이 문제입니까? 자, 기본 예제 코어의 설정 파일 (schema.xml 및 solrconfig.xml)을 공동 작업자가 준 것으로 대체합니다. 그리고 나서 부두를 운영합니다. 이렇게하면 새 인덱스 폴더가 만들어집니다. 해당 인덱스 폴더의 내용을 삭제하고 주어진 인덱스 폴더의 내용을 복사합니다.

결과적으로 Solr이 "세그먼트"파일을 찾을 수 없다는 오류를 표시합니다. 그래서 초기 Index 폴더로 생성 된 두 개의 파일 (segments.gen 및 segments_1)이 있음을 발견했습니다. 나는 Index 폴더에 그것들을 남겨두고 다른 것들을 대체하는 것으로 실험한다. 이제 Solr이 작동하는 것 같습니다 (브라우저 인터페이스가 작동 중입니다).하지만 "Num docs : 0"이라고보고하고 * : * 쿼리를 사용하면 결과가 0입니다.

누구든지 아이디어가 있습니까? 더 많은 정보를 제공해 드리겠습니다. 미리 감사드립니다.

답변

1

원래 색인의 segments.gensegments_1을 사용해야합니다. 공동 작업자에게 파일을 제공하도록 요청하십시오. 그러나 공동 작업자가 색인 폴더의 복사본을 제공했다고 언급 했으므로 이미 해당 파일을 가지고 있어야합니다.

원래 인덱스 복사본에 segment_1이 필요하지 않을 수도 있습니다. segment_N 일 수 있습니다. 원본 파일에 segment_ 파일이 있으면 그 파일을 새 색인으로 복사하고 jetty를 다시 시작하십시오.

segments.gen 파일의 디렉토리 목록이 segments_N 파일 (예 : NFS와 같은 파일 시스템)을 찾지 못하는 경우 폴백으로 색인의 현재 세대 (세그먼트 N의 _N)를 기록합니다 부실 캐시)

+0

좋아,이 말은 많은 의미가 있으며, 세그먼트 파일을 읽은 후 내가 생각한 것입니다. 공동 작업자는 전체 인덱스 폴더를 내게 주겠다고 했으므로 동일한 페이지를 사용해야합니다. 어쨌든, 내 의심을 확인해 주셔서 감사합니다. – ACPrice

+0

그건 그렇고, 그냥 다시 확인하십시오 : 1) 작동 할 새로운 segments_N 파일을 생성 할 방법이 없습니까? 2) 협력자가 segments_N 파일없이 Solr 코어를 실행할 수있는 방법이 없습니까? 미리 감사드립니다! – ACPrice

+0

읽기 http://lucene.apache.org/core/3_0_3/fileformats.html#Segments%20File – AnonGeek

관련 문제