一、索引庫(kù)維護(hù)
1、添加索引
代碼實(shí)現(xiàn):
調(diào)用 indexWriter.addDocument(doc)添加索引。
2靶累、刪除索引
調(diào)用 indexWriter.deleteDocuments(doc)刪除索引。
3癣疟、清空索引庫(kù)
調(diào)用 indexWriter.deleteAll()清空索引庫(kù)挣柬。
4、更新索引
調(diào)用 indexWriter.updateDocument(doc)更新索引睛挚。
二邪蛔、 搜索
1、使用Lucene提供Query子類查詢
Query是一個(gè)抽象類扎狱,lucene提供了很多查詢對(duì)象侧到,比如TermQuery項(xiàng)精確查詢,NumericRangeQuery數(shù)字范圍查詢等淤击。
(1)使用TermQuery實(shí)例化
(2)使用QueryParse解析查詢表達(dá)式
2匠抗、常用的Query子類搜索
(1) TermQuery
查詢的關(guān)鍵詞不會(huì)再做分詞處理,作為整體來(lái)搜索污抬。
不會(huì)再對(duì)查詢的關(guān)鍵詞做分詞處理汞贸。
(2)NumericRangeQuery
指定數(shù)字范圍查詢
(3) BooleanQuery
布爾查詢,實(shí)現(xiàn)組合條件查詢印机。
2矢腻、通過(guò)QueryParser搜索
特點(diǎn):
對(duì)搜索的關(guān)鍵詞,做分詞處理耳贬。
(1)QueryParser:對(duì)單個(gè)域查詢踏堡。
(2)MulitFieldQueryParse:對(duì)多個(gè)域查詢猎唁。
三咒劲、 中文分詞器
1顷蟆、什么是中文分詞器
學(xué)過(guò)英文的都知道,英文是以單詞為單位的腐魂,單詞與單詞之間以空格或者逗號(hào)句號(hào)隔開(kāi)帐偎。
而中文的語(yǔ)義比較特殊,很難像英文那樣蛔屹,一個(gè)漢字一個(gè)漢字來(lái)劃分削樊。
所以需要一個(gè)能自動(dòng)識(shí)別中文語(yǔ)義的分詞器。
2兔毒、Lucene自帶的中文分詞器
(1) StandardAnalyzer:
單字分詞:就是按照中文一個(gè)字一個(gè)字地進(jìn)行分詞漫贞。如:“我愛(ài)中國(guó)”, 效果:“我”育叁、“愛(ài)”迅脐、“中”、“國(guó)”豪嗽。
(2)CJKAnalyzer
二分法分詞:按兩個(gè)字進(jìn)行切分谴蔑。如:“我是中國(guó)人”,效果:“我是”龟梦、“是中”隐锭、“中國(guó)”“國(guó)人”。
(3)使用中文分詞器IKAnalyzer
IKAnalyzer繼承Lucene的Analyzer抽象類计贰,使用IKAnalyzer和Lucene自帶的分析器方法一樣钦睡,將Analyzer測(cè)試代碼改為IKAnalyzer測(cè)試中文分詞效果。
如果使用中文分詞器ik-analyzer躁倒,就在索引和搜索程序中使用一致的分詞器ik-analyzer赎婚。