版本:lucene5.5
全文搜尋基本由三部分組成:
- 索引部分
- 分詞部分
- 搜尋部分
建立索引基本步驟:
1.建立directory
directory directory =new ramdirectory();// 建立在記憶體的索引
directory directory = fsdirectory.open(paths.get("路徑"));//建立在硬碟上
2.建立indexwrider
indexwriterconfig iwc = new indexwriterconfig(new standardanalyzer()); //分詞器
indexwriter idw = new indexwriter(directory, iwc);
3.建立document物件,並新增域物件,再通過indexwriter新增文件
//3.建立document物件
document doc = null;
//4.為document物件新增field
file f= new file("f:\\測試\\example");
for(file file: f.listfiles())
fieldtype type =
new fieldtype();
type.setindexoptions(indexoptions.docs);//域的索引選項
type.settokenized(
false);//是否分詞
type.setstored(
true);//是否儲存
doc.add(new field("path",file.getabsolutepath(),type)); 版本
搜尋部分基本步驟
//1.建立directory
directory directory = fsdirectory.open(paths.get("f:\\測試\\index")); //建立在硬碟上
//2.建立indexreader
indexreader reader = directoryreader.open(directory);
//3.根據indexreader 建立indexsearch
indexsearcher searcher = new indexsearcher(reader);
//4.建立搜尋的query
//建立parser來確定要搜尋檔案的內容,第乙個引數表示搜尋的域
queryparser parser = new queryparser("content", new standardanalyzer());
//建立query 表示搜尋域為content中包含 的文件
query query = parser.parse("black");
//5.根據seacher搜尋並且返回topdocs
topdocs tds = searcher.search(query, 10);//10是搜尋的數目
//6.根據topdocs獲取scoredoc物件,評分物件
scoredoc sds=tds.scoredocs;
for(scoredoc sd:sds)
reader.close();
//9.關閉reader
Lucene學習筆記 一
在使用lucene開發搜尋引擎時,需要分成兩大模組。索引和搜尋,即indexer和searcher。顧名思義,indexer負責對文件簡歷索引,searcher負責在建立的索引上進行搜尋。最基本的indexer在實現上需要以下幾個類 indexwriter 這個類主要負責建立修改索引。lucene也...
Lucene 學習筆記
調整索引索引效能 在乙個典型的索引應用中,程式效能的瓶頸存在於將索引檔案寫入磁碟的過程中。如果你曾經分析過索引過索引應用程式,應該會發現執行程式大部分時間都消耗在操作索引檔案的程式段上,因此我們必要使lucene索引新物件和修改索引檔案時變得更智慧型。當新的document物件新增到lucene的索...
lucene學習筆記
public class luceneadd catch exception e public class lucenesearch public static void main string args file indexdir new file d index try 在磁碟中檢索索引 dir...