[转] 用solr搭建中文搜索应用

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一些高级的功能都可以在这里看到。

你可能感兴趣的:(tomcat,mysql,Lucene,Solr,全文检索)