搜索系统–基于Solr4.9.0的实现

最后更新于:2022-04-01 11:02:55

### 为什么需要搜索系统 随着商品数量的增长、以及复杂检索的需求,直接从数据库中检索信息,已经不能满足展示机搜索的需求。 比如: [http://search.jd.com/Search?keyword=%E8%8B%B9%E6%9E%9C&enc=utf-8](http://search.jd.com/Search?keyword=%E8%8B%B9%E6%9E%9C&enc=utf-8) [http://www.yougou.com/sr/searchKey.sc?keyword=%E5%A5%B3%E9%9E%8B%E5%A4%A9%E7%BE%8E%E6%84%8F](http://www.yougou.com/sr/searchKey.sc?keyword=%E5%A5%B3%E9%9E%8B%E5%A4%A9%E7%BE%8E%E6%84%8F) 这个时候就需要引入搜索系统。 搜索系统当前最常用的框架有:Solr、ElasticSearch,他们都是基于Lucene构建的。 本文演示的搜索系统,使用的框架是:Solr4.9.0,关于Solr框架的使用,可以参阅站点: [http://lucene.apache.org/solr/](http://lucene.apache.org/solr/) [http://blog.csdn.net/puma_dong/article/details/38880699](http://blog.csdn.net/puma_dong/article/details/38880699) 补充个概念,倒排索引,我们理解搜索系统的索引是怎么建立的,但是,为什么叫倒排索引呢?[http://www.zhihu.com/question/23202010/answer/23901671](http://www.zhihu.com/question/23202010/answer/23901671) ### 系统说明 ### 基本信息 演示对商品信息的全量索引建立、主从配置以及搜索的Dubbo接口提供; 对Solr做了入门型的说明,基本满足基于Solr的搜索的日常应用,对于更多Solr的参数设置,深入研究需要在实践中不断总结进步。 **关于索引,基本内容大致包含如下:** 商品(编码,款号、名称、价格、尺码编号、尺码名称、颜色、价格、折扣、图片链接、销量); 分类(名称、别名、编码、拼音名称); 品牌(编码、中英文名称、别名、拼音名称、首字母拼音名称); 商品的属性项目(属性值); 以及一些用来排序的信息:销量、价格、折扣等; 对于品牌分类等,需要同时记录英文名称; 索引还需要一些管理控制功能,比如脏词屏蔽、扩展词库等; 为了提高建立索引的效率,可能还需要对一些中间结果进行计算,比如:商品的2周销售数量; 注:关于分类的别名、品牌的别名之类,不建议在搜索系统中单独为,建议提需求给商品管理系统。 本项目仅仅是演示的雏形,流程是可用的,单没有完整的信息完整的索引创建、索引接口、及管理控制功能,这个留待以后是否有足够的业余时间。 索引建立的运行方式如下:crontab  */10 * * * * /usr/local/cl/create_index.sh &。 ### 技术框架 在索引建立项目中,没有使用任何框架,使用最基础的JDK编码,定时任务方式采用crontab,任务流程控制采用linux shell命令。 索引查询接口项目中,依旧是采用dubbo提供接口。 客户端使用Solrj。 中文分词使用IK Analyzer 2012FF_hfl。 ### 代码说明 **前置项目:**[http://blog.csdn.net/puma_dong/article/details/9854899](http://blog.csdn.net/puma_dong/article/details/9854899) **最新源码:**git clone git@github.com:pumadong/cl-search.git 。
';