安裝和使用
lucene的組成結構:對於外部應用來說索引模組(index)和檢索模組(search)是主要的外部應用入口
org.apache.lucene.search/
搜尋入口
org.apache.lucene.index/
索引入口
org.apache.lucene.analysis/
語言分析器
org.apache.lucene.queryparser/
查詢分析器
org.apache.lucene.document/
儲存結構
org.apache.lucene.store/
底層io/儲存結構
org.apache.lucene.util/
一些公用的資料結構
簡單的例子演示一下lucene的使用方法:
索引過程:從命令列讀取檔名(多個),將檔案分路徑(path欄位)和內容(body欄位)2個字段進行儲存,並對內容進行全文索引:索引的單位是document物件,每個document物件包含多個欄位field物件,針對不同的字段屬性和資料輸出的需求,對字段還可以選擇不同的索引/儲存字段規則,列表如下:
方法切詞
索引儲存
用途field.text(string name, string value)
yesyes
yes切分詞索引並儲存,比如:標題,內容字段
field.text(string name, reader value)
yesyes
no切分詞索引不儲存,比如:meta資訊,
不用於返回顯示,但需要進行檢索內容
field.keyword(string name, string value)
noyes
yes不切分索引並儲存,比如:日期字段
field.unindexed(string name, string value)
nono
yes不索引,只儲存,比如:檔案路徑
field.unstored(string name, string value)
yesyes
no只全文索引,不儲存
索引過程中可以看到:檢索過程和結果顯示:
搜尋結果返回的是hits物件,可以通過它再訪問document==>field中的內容。
假設根據body欄位進行全文檢索,可以將查詢結果的path欄位和相應查詢的匹配度(score)列印出來,
在整個檢索過程中,語言分析器,查詢分析器,甚至搜尋器(searcher)都是提供了抽象的介面,可以根據需要進行定製。mysql全文索引的坑 MySQL全文索引問題
我有乙個包含以下資料的 文章 mysql select from articles id title body 1 mysql tutorial dbms stands for database 2 how to use mysql well after you went through a 3 o...
全文索引的使用
sp fulltext database enable 啟動全文索引 sp fulltext catalog member info create 建立全文索引目錄 create unique index pk memberid on member memberid 需要建立唯一索引 sp full...
全文目錄和全文索引的關係
1.全文索引儲存關於重要詞和這些詞在特定列中的位置的資訊。全文查詢利用這些資訊,可快速搜尋包含具體某個詞或一組詞的行。2.全文索引包含在全文目錄中。3.每個資料庫可以包含乙個或多個全文目錄。乙個目錄只能屬於乙個資料庫,而每個目錄可以包含乙個或多個表的全文索引。乙個表只能有乙個全文索引,因此每個有全文...