나는 pdfbox api 클래스 LucenePDFDocument
에 의해 생성 된 색인을 가지고 있습니다. 색인에는 텍스트 내용 만 포함되므로이 색인을 효과적으로 검색하고 싶습니다.Lucene - 효과적인 텍스트 검색
검색 문자열을 사용하여 'contents'필드를 검색 할 것이므로 결과 순서는 관련성이 낮은 것부터 관련성이 낮은 것부터 시작해야합니다. 아래 주어진 코드는 검색된 텍스트의 단어가있는 파일을 표시했습니다. 예 : '국적은 무엇입니까?'이 결과에는이 전체 문장이 포함 된 파일이 포함되어 있지 않습니다.
위의 시나리오에서 검색을 위해 사용해야하는 쿼리 구문 분석기 및 쿼리는 무엇입니까?
Query query = new MultiFieldQueryParser(Version.LUCENE_30, fields,
new StandardAnalyzer(Version.LUCENE_30))
.parse(searchString);
TopScoreDocCollector collector = TopScoreDocCollector.create(5,
false);
searcher.search(query, collector);
ScoreDoc[] hits = collector.topDocs().scoreDocs;
System.out.println("count " + hits.length);
for (ScoreDoc scoreDoc : hits) {
int docId = scoreDoc.doc;
Document d = searcher.doc(docId);
System.out.println(d.getField("path"));
}
"아래 코드는 예상대로 작동하지 않습니다."- 예상 한 것과 실제로 얻은 것을 설명 할 수 있습니까? – ffriend
코드에는 검색 한 텍스트의 단어가있는 파일 (예 : '국적은 무엇입니까?')이 표시됩니다. 결과에는이 전체 텍스트가 포함 된 파일이 포함되지 않았습니다. 예 : somdir/a.pdf에는이 전체 문자열이 포함되어 있지만 결과에는 나타나지 않습니다. lucene에서 전체 텍스트 검색을 효과적으로 구현하는 방법. –