Lucene是一種基于Java的全文搜索引擎技術,提供了對文本數據的高效、快速的搜索、索引和查詢功能。Lucene是一種開源軟件,可以自由使用和修改。它在Java應用程序中具有廣泛的應用,尤其是在Web應用中。
public class LuceneTest { public static void main(String[] args) { // 創建索引的目錄對象 Directory directory = new RAMDirectory(); // 創建文檔分析器對象 Analyzer analyzer = new StandardAnalyzer(); // 創建索引寫入配置對象 IndexWriterConfig config = new IndexWriterConfig(analyzer); // 創建索引寫入對象 IndexWriter indexWriter = new IndexWriter(directory, config); // 創建需要索引的文檔 Document document = new Document(); document.add(new TextField("title", "Lucene全文搜索引擎", Field.Store.YES)); document.add(new TextField("content", "Lucene提供了對文本數據的高效、快速的搜索、索引和查詢功能", Field.Store.NO)); // 索引寫入到目錄中 indexWriter.addDocument(document); // 關閉索引寫入對象 indexWriter.close(); // 創建搜索器對象 IndexReader reader = DirectoryReader.open(directory); IndexSearcher searcher = new IndexSearcher(reader); // 創建查詢對象 Query query = new TermQuery(new Term("title", "Lucene")); // 執行搜索 TopDocs docs = searcher.search(query, 10); // 輸出搜索結果 System.out.println("搜索結果總數:" + docs.totalHits); for (ScoreDoc scoreDoc : docs.scoreDocs) { Document doc = searcher.doc(scoreDoc.doc); System.out.println("標題:" + doc.get("title")); System.out.println("內容:" + doc.get("content")); } // 關閉讀取對象 reader.close(); } }
以上是一個使用Lucene進行全文搜索的Java程序示例。該程序使用RAMDirectory創建索引目錄,然后使用標準文檔分析器Analyzer創建索引寫入配置對象。接下來,將需要索引的文檔添加到索引寫入對象中,關閉索引寫入對象。然后,創建索引讀取對象,并使用IndexSearcher實例搜索指定條件的結果。最后,輸出搜索結果。可以看到,使用Lucene進行全文搜索非常方便和高效。