----------------------------------------------------------------------------------------------
[版权申明:本文系作者原创,转载请注明出处]
作者:朱培 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只适用于站内搜索,对于模糊查询的支持还是非常好的。