2017-11-06 1 views
0

많은 수의 파일에 대해 색인을 생성하고 파일 내용을 기준으로 검색하려고합니다. 파일에서 각 일치 항목의 행 및 열 정보를 검색 할 수 있기를 원합니다.Lucene을 사용하여 큰 입력 파일에서 일치하는 행 및 열 정보를 검색 하시겠습니까?

이 인덱스 자체에 완전히 가져 오는 파일에 의존하는 것,하지만 난 단지 색인이 사용하고있는 대부분의 예제 :

Document doc = new Document(); 
doc.add(new StringField("path", file.getPath(), Field.Store.YES)); 
Reader reader = new FileReader(file.getCanonicalPath()); 
doc.add(new TextField("contents", reader)); 
iwriter.addDocument(doc); 

는 단순히 위치를 검색 할 수있는 방법이 있나요 이 방법으로 작성된 문서에 대한 검색 히트의 정보? 아니면 쉽게 만들 수있는 문서를 만드는 더 좋은 방법이 있습니까?

현재 Lucene 4.8.1을 사용하고 있습니다.

답변

0

검색에서 위치 정보를 검색하는 방법이 있습니까? 이렇게 작성된 문서에 히트가 표시 되나요?

는 지금까지 내가 아는 한, 제 는 저장되지 않습니다 contents 이후로 자동 방법은 없습니다 플러스 저장된 문서의 단어에는 위치 정보가 없습니다. 저장된 문서에는 하나의 필드 (path) 만 있으므로 다른 정보는 검색 할 수 없습니다. 제 말은 단어의 위치를 ​​떠나서도 contents을 검색 할 수 없게됩니다.

또는 이되는 문서를 만드는 더 좋은 방법이 있습니까?

물론, 건설 - TextField(String name, Reader reader)는 내용 만 path (명시 적으로 저장하기 때문에) 저장 파일 인덱스의 단점이있다.

알다시피 나가는 방법은 Lucene 밖에 있습니다. 즉, path을 검색하고 색인 된 파일을 보관하고 파일 자체의 정보 즉 행 & 열 번호를 찾으십시오. 분명히 이것은 실제적인 해결책이 아닙니다.

실용적인 해결책은 이미 파일 내용을 가져오고 문서에 이미이 정보가있는 경우 즉, 각 문서에 줄 번호 정보가 포함되어 있고 StringField (라인 내용) 단어의 위치.

관련 문제