查询系统--基于Solr4.9.0实现
为什么非要搜索系统
随着在产品的数量的增长、和复杂的检索要求,直接从数据库中检索信息,它已经无法满足展示机搜索需求。
实例:
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://blog.csdn.net/puma_dong/article/details/38880699
系统说明
基本信息
演示对商品信息的全量索引建立、主从配置以及搜索的Dubbo接口提供。
对Solr做了入门型的说明,基本满足基于Solr的搜索的日常应用。对于很多其它Solr的參数设置,深入研究须要在实践中不断总结进步。
关于索引。基本内容大致包括例如以下:
商品(编码,款号、名称、价格、尺码编号、尺码名称、颜色、价格、折扣、图片链接、销量)。
分类(名称、别名、编码、拼音名称)。
品牌(编码、中英文名称、别名、拼音名称、首字母拼音名称);
商品的属性项目(属性值);
以及一些用来排序的信息:销量、价格、折扣等;
对于品牌分类等,须要同一时候记录英文名称。
索引还须要一些管理控制功能,比方脏词屏蔽、扩展词库等。
为了提高建立索引的效率。可能还须要对一些中间结果进行计算,比方:商品的2周销售数量。
注:关于分类的别名、品牌的别名之类,不建议在搜索系统中单独为。建议提需求给商品管理系统。
本项目不过演示的雏形,流程是可用的,单没有完整的信息完整的索引创建、索引接口、及管理控制功能,这个留待以后是否有足够的业余时间。
索引建立的执行方式例如以下:crontab */10 * * * * /usr/local/cl/create_index.sh &。
技术框架
在索引建立项目中。没有使用不论什么框架,使用最基础的JDK编码,定时任务方式採用crontab。任务流程控制採用linux shell命令。
索引查询接口项目中,依然是採用dubbo提供接口。
client使用Solrj。
中文分词使用IK Analyzer 2012FF_hfl。
代码说明
前置项目:http://blog.csdn.net/puma_dong/article/details/9854899
最新源代码:git clone git@github.com:pumadong/cl-search.git 。
版权声明:本文博主原创文章,博客,未经同意不得转载。
查询系统--基于Solr4.9.0实现的更多相关文章
- Solr4.8.0源码分析(6)之非排序查询
Solr4.8.0源码分析(6)之非排序查询 上篇文章简单介绍了Solr的查询流程,本文开始将详细介绍下查询的细节.查询主要分为排序查询和非排序查询,由于两者走的是两个分支,所以本文先介绍下非排序的查 ...
- Solr4.8.0源码分析(5)之查询流程分析总述
Solr4.8.0源码分析(5)之查询流程分析总述 前面已经写到,solr查询是通过http发送命令,solr servlet接受并进行处理.所以solr的查询流程从SolrDispatchsFilt ...
- 暑假闲着没事第一弹:基于Django的长江大学教务处成绩查询系统
本篇文章涉及到的知识点有:Python爬虫,MySQL数据库,html/css/js基础,selenium和phantomjs基础,MVC设计模式,ORM(对象关系映射)框架,django框架(Pyt ...
- 基于Impala平台打造交互查询系统
本文来自网易云社区 原创: 蒋鸿翔 DataFunTalk 本文根据网易大数据蒋鸿翔老师DataFun Talk--"大数据从底层处理到数据驱动业务"中分享的<基于Impal ...
- 如何让基于.NET 2.0的应用在高版本的系统上运行?
我们的WinForm项目是基于.NET 2.0开发的,在部署时,发现有些机器没有.NET 2.0,但是即使这些机器有装.NET 2.0 以上的版本,也无法运行我们的程序.这就比较蛋疼了. 我们查了一下 ...
- 基于web公交查询系统----数据库设计
要求:公交查询系统,管理员可以新增线路,修改车辆参数,发车时间表,删除车次,站名等. 用户可以按线路查询,按站点查询相关信息,也可查询两站点之间的换乘信息等. 数据库应包含管理员表,车站表,线路表,车 ...
- Solr4.8.0源码分析(10)之Lucene的索引文件(3)
Solr4.8.0源码分析(10)之Lucene的索引文件(3) 1. .si文件 .si文件存储了段的元数据,主要涉及SegmentInfoFormat.java和Segmentinfo.java这 ...
- 基于Qt5.5.0的sql数据库、SDK_tts文本语音朗读的CET四六级单词背诵系统软件的编写V1.0
作者:小波 QQ:463431476 请关注我的博客园:http://www.cnblogs.com/xiaobo-Linux/ 我的第二款软件:CET四六级单词背诵软件.基于QT5.5.0.sql数 ...
- Solr4.8.0源码分析(15) 之 SolrCloud索引深入(2)
Solr4.8.0源码分析(15) 之 SolrCloud索引深入(2) 上一节主要介绍了SolrCloud分布式索引的整体流程图以及索引链的实现,那么本节开始将分别介绍三个索引过程即LogUpdat ...
随机推荐
- 数据库关于group by 两个或以上条件的分析
首先group by 的简单说明: group by 一般和聚合函数一起使用才有意义,比如 count sum avg等,使用group by的两个要素: (1) 出现在select后面的 ...
- 2012 PHP热门资料64个+经典源码50个——下载目录 :
完整附件0豆下载:http://down.51cto.com/data/419216 附件部分预览: PHP精彩应用实例程序源码集锦 http://down.51cto.com/zt/39 无师自通: ...
- A Game of Thrones(2) - Catelyn
Catelyn had never liked this godswood(神木林). She had been born a Tully, at Riverrun far to the south, ...
- C/S与B/S谁与争锋之我见
看到网上有些人在讨论C/S架构和B/S架构以及它们的发展趋势,后起之秀B/S是否真将取代C/S而存在?在发表我的观点之前,我们先来一起来回顾下C/S以及B/S. 一C/S 1.C/S概念 C/S是Cl ...
- 浅析JAVA设计模式之工厂模式(一)
1 工厂模式简单介绍 工厂模式的定义:简单地说,用来实例化对象,取代new操作. 工厂模式专门负责将大量有共同接口的类实例化.工作模式能够动态决定将哪一个类实例化.不用先知道每次要实例化哪一个类. 工 ...
- iOS_ScrollView的自己主动布局
ScrollView的自己主动布局稍显麻烦.但也是有规律可循, 下面就是仅竖向滑动的scrollView加入约束的固定做法 1.在控制器的view加入一个label.取名做anchor 2.给anch ...
- hdu1532 (最大流入门,EK算法)
看着这个博客 然后敲了hdu1532这个入门题,算是对最大流有点理解了 #include <stdio.h> #include <string.h> #include < ...
- Angularjs 基于karma和jasmine的单元测试
目录: 1. 单元测试的配置 2. 实例文件目录解释 3. 测试controller 3.1 测试controller中变量值是否正确 3.2 模拟http请求返回值,测试$http服 ...
- Oracle学习(十四):管理用户安全性
--用户(user) SQL> --创建一个名为 grace password是password 的用户,新用户没有不论什么权限 SQL> create user grace identi ...
- C# Windows Phone 8 WP8,切换各国语系免重开机 加速开发 送审有效率!!
原文:C# Windows Phone 8 WP8,切换各国语系免重开机 加速开发 送审有效率!! 一般我们在开发Windows Phone 8 时,会考虑到各国语言的问题,但是你有想过吗?用实体手机 ...