lucene學習筆記(一)

2021-07-11 13:34:51 字數 1754 閱讀 2369

版本: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...