2016-11-20 6 views
-1

이것에 대해서 다시 한번 확인해보십시오 : 나는 이것이 가능하지 않다고 가정하고 그런 정보를 어떻게 든 인덱스 디렉토리의 인덱스 파일에 묶어두기를 원한다면 직접 할 수있는 방법을 찾아야합니다.Lucene 색인 파일에서 분석기, 버전 등을 분석 하시겠습니까?

분명히 당신은 서로 다른 디렉토리에 대해 다른 분석기를 사용하고있을 수 있으며 99 %의 시간 동안 QueryParser를 구성 할 때 올바른 것을 사용하는 것이 매우 중요합니다. QP가 다른 경우 모든 종류의 부정확성이 나타날 수 있습니다 결과.

동일하게 인덱스 파일의 잘못된 버전을 가져 오면 전체 오류가 발생하지 않을 수 있습니다. 다시 말해서 부정확 한 결과가 발생할 수 있습니다.

Lucene 사람들이 인덱스 파일을 사용하여 이러한 종류의 정보를 묶어 본 적이 있는지 궁금합니다. Elasticsearch와 같은 Lucene 파생 앱이 이러한 메커니즘을 통합하는지 여부를 아는 사람이 있는지 궁금합니다.

실제로 인덱스의 "_0"파일 (_0.cfe, _0.cfs 및 _0.si)을 살펴보면 모든 3 개에는 "Lucene"이라는 단어가 실제로 포함되어 있으며 버전 정보가 뒤 따른 것입니다. 발생 ...

PS 기타 관련 생각 음 : 당신이 어떤 종류의 (또는 1000 개 문서)의 텍스트 문서를 색인하는 말을 ... 그리고 당신이 최신 때마다 색인을 유지하려면 그 열립니다. 한 가지 확실한 방법은 개별 파일의 마지막 수정 날짜를 마지막으로 색인이 업데이트 된 날짜와 비교하는 것입니다. 현재 구식 인 문서는 색인에서 삭제 된 정보가 필요합니다. 다시 색인을 생성해야합니다.

Lucene 지수와 관련하여 항상 필요합니다. 인덱스 파일에 포함 된 유용한 "메타 정보"가 없으면 일반적으로 어떻게 처리됩니까? 이 문제에 관심

답변

0

사람 :

그것은 내가 Version는 인덱스 파일에 포함되어 있다고 말에서 나타납니다 않습니다. CheckIndex 클래스와 그 정보에서 얻을 수있는 다양한 정보를 살펴 보았습니다. CheckIndex.Status.SegmentInfoStatus을 얻는 방법을 찾지 않고 Version을 얻을 수 있습니다. 나는 이것이 고의적이라고 생각하기 시작했으며, Lucene이 필요에 따라 색인을 갱신하도록하는 것이 아이디어 일 뿐이다. 그렇다면 완전히 만족스러운 상태는 아닙니다 ...

Analyzer 클래스와 같은 다른 것들을 얻으려면 원한다면 이런 종류의 "메타 데이터"를 직접 구현해야합니다. 다른 파일들에 텍스트 파일을 포함시키는 것만으로도 가능합니다. 그렇지 않으면 IndexData 클래스를 사용할 수 있습니다. 물론 Version도이 방법으로 저장할 수 있습니다.

이러한 정보를 작성하려면 IndexWriter.setCommitData()을 참조하십시오.

이러한 정보를 검색하려면 DirectoryReader과 같은 여러 하위 클래스 (예 : IndexReader) 중 하나를 사용해야합니다.