안녕하세요 저는 Java 개발자이자 Lucene을 배우고 있습니다. PDF 클래스 (lucene_in_action_2nd_edition.pdf) 파일과 색인에서 일부 텍스트를 검색하는 검색 클래스를 색인하는 Java 클래스가 있습니다. IndexSearcher
은 색인에 문자열이 있음을 나타내는 Document
을 제공합니다 (lucene_in_action_2nd_edition.pdf).Lucene에서 검색된 데이터/메타 데이터 가져 오기
하지만 지금은 I want to get searched data or metadata. i.e. I want to know that at which page string is matched, or few text around matched string, etc...
어떻게 할 수 있습니까?
public static void main(String[] args) throws Exception {
File indexDir = new File("D:\\index");
String querystr = "Advantages of FastVectorHighlighter";
Query q = new QueryParser(Version.LUCENE_40, "contents",
new StandardAnalyzer(Version.LUCENE_40)).parse(querystr);
int hitsPerPage = 100;
IndexReader reader = DirectoryReader.open(FSDirectory.open(indexDir));
IndexSearcher searcher = new IndexSearcher(reader);
TopScoreDocCollector collector = TopScoreDocCollector.create(
hitsPerPage, true);
searcher.search(q, collector);
ScoreDoc[] hits = collector.topDocs().scoreDocs;
System.out.println("Found " + hits.length + " hits.");
for (int i = 0; i < hits.length; i++) {
int docId = hits[i].doc;
Document d = searcher.doc(docId);
System.out.println((i + 1) + "... " + d.get("filename"));
System.out.println("=====================================================");
System.out.println(d.get("contents"));
}
// reader can only be closed when there
// is no need to access the documents any more.
reader.close();
}
여기 d.get("contents")
그는 인덱싱시 저장된, .pdf 파일의 전체 텍스트 (generated by Tika
)을 얻었다 :
여기 내 LuceneSearcher.java 클래스입니다.
검색된 텍스트에 대한 정보가 필요하므로 웹 페이지에 강조 표시하거나 검색된 텍스트를 올바르게 강조 표시 할 수 있습니다 (예 : Google 검색 결과). 그것을 성취하는 방법? 우리는 약간의 논리를 작성해야합니까, 아니면 Lucene이 내부적으로할까요?
모든 유형의 도움을 주시면 감사하겠습니다. 미리 감사드립니다.
감사를 참조 대신 하나 하나, 하이 라이터에서 최고의 조각의 목록을 얻을 수 있습니다 또한 형광펜을 적용했습니다. 하지만 완전한 책 (100000 자)이 '텍스트'로 보내지면 500 페이지에서 강조 표시된 텍스트를 보는 것이 매우 어렵습니다. 텍스트를 형광펜으로 보내서 용어를 올바르게 강조 표시하고 직접 사용할 수 있습니다. –
죄송합니다. 설명하신 형광펜의 문제점을 이해하지 못합니다. 형광펜은 텍스트를 단편적으로 제공해야합니다 (단, 달리 설정하지 않은 경우). 왜 500 페이지가 넘는 페이지를보아야합니까? 콘텐츠에서 일치하는 조각을 골라 내고 싶지 않으면 무엇을하고 싶습니까? – femtoRgon