----------------------------------------------------------------------------------------------
[版權申明:本文系作者原創,轉載請注明出處]
作者:朱培 ID:sdksdk0
--------------------------------------------------------------------------------------------
對工作單使用 like模糊查詢時,實際上 資料庫内部索引無法使用 ,需要逐條比較查詢内容,效率比較低在資料量很多情況下, 提供模糊查詢性能,我們可以使用lucene全文索引庫技術。本文示例是在SSH架構中進行使用。使用Hibernate Search (用來整合 Hibernate + Lucene),工作單搜尋功能。
1、首先可以在我們的maven工程中引入需要的jar包,
2、導入IKAnalyzer分詞器。因為IKAnalyzer在maven中沒有,是以我們需要手動下載下傳這個jar包,當然了,在http://mvnrepository.com/網站上面可以找到。
下載下傳好之後可以裝載到你自己的maven倉庫中或者直接放在你工程的lib目錄中,然後來引用:例如我的是在
3、在resource目錄中建立stopword.dic檔案,内容為:
4、建立一個IKAnalyzer.cfg.xml檔案,内容為:
5、在spring中進行配置:在配置SessionFactory中加入一行:當然了,這個時候需要自己去D盤目錄中建立一個檔案夾DBIndex
完整的如下:
6、在想要實作查詢功能的那個domain中添加注解:想要搜尋哪個字段就在哪個字段上面加上@Field注解,注意導入的是IKAnalyzer的分詞器,不是hibernate-search的分詞器。
分詞的效果如下:
使用 Luke 工具,查詢索引檔案内容 ! 在cmd中運作 java -jar lukeall-3.5.0.jar,即可打開下圖這個頁面,檢視具體的索引資訊。

7、在界面中添加搜尋框,我這裡使用的是easyui,so...
8、寫doSeach這個js函數
9、在action中接收頁面傳過來的name和value屬性的值,然後進行處理:
傳回值之後如何處理這裡我就不在說了。
10、在service中進行處理,經過service和serviceImpl之後,就會到達dao中,是以我們可以在dao中進行處理。
11、在頁面中檢視搜尋的效果
這樣我們整個開發流程就完成了。使用luence對大資料量中的模糊查詢是非常實用的功能,當然了,luence隻适用于站内搜尋,對于模糊查詢的支援還是非常好的。