|
http://ayueer.spaces.live.com/blog/cns!9E99E1260983291B!1338.entry
用solr搭建中文搜索应用
因为工作的需要,要搭建一个小型的搜索应用,数据源已经存在了mysql里面,之前的版本是用mysql like做的,这次升级要增强扩展性和性能,添加一些功能上去。
可以选用的方案有几个,
1,在原有的mysql like的基础上扩展,利用mysql的全文查找功能,这方面没有做过,考虑到性能和其它因素,首先排除掉了。
2,套用在公司自己的search机制上,存在的问题是目前的search页面和检索耦合太严重,要套在这个框架中,要定制一些自己的rank和展现的改动比较麻烦,代码看起来有些恐怖。
3,最后决定使用lucene + solr, lucene提供了比较强大的索引检索接口,solr将其封装的很简单,方便各种语言的扩展,不用自己实现基于lucene的api的search server, 提交doc建索引和查询都通过http请求,可以返回xml/json格式的结果,非常的方便。
搭建服务:
1,下载lucene和solr,以及tomcat, 解压将solr下dist中solr.jar放到tomcat/webapps下面命名为solr.war, 拷贝solr目录下example/solr到当前目录或配置tomcat告诉其solr的目录,启动tomcat访问http://localhost:port/solr/admin能够看到solr已经运行了。
2,将使用的中文分词包,我这里选用jesoft的je-analysis.jar放到solr/lib, 配置solr/conf/schema.xml里面加上
<fieldType name="text_chinese" class="solr.TextField">
<analyzer class="jeasy.analysis.MMAnalyzer" />
</fieldType>
3,修改solr/conf/schema.xml中Fields,定制你要检索的域。
4,ibm developerworks上一个solr转php文章中的代码,将http请求和构建doc的xml封装起来用php调用,你可以参考着做其它程序的接口。Apache Lucene quick-start guide
5,这样就搭出了最基础的检索框架,在此之上能做什么要靠你的想象了:)
参考文章:
1, Search smarter with Apache Solr, Part 1- Essential features and the Solr schema
2, Search smarter with Apache Solr, Part 2- Solr for the enterprise
3, Apache Lucene quick-start guide
4, 使用solr搭建你的全文检索-我的知识库
5, http://jesoft.cn je-analysis MMAnalyzer的中文分词。
6, Lucene中文分词-庖丁解牛Paoding Analysis,另一个很赞的分词,开源的哦,相当不错。
7, solr 的主页 http://lucene.apache.org/solr/, 有一个不错的wiki,关于tomcat配置部署和高级faceted search和cache一些高级的功能都可以在这里看到。 |
|
|