为什么非要搜索系统

随着在产品的数量的增长、和复杂的检索要求,直接从数据库中检索信息,它已经无法满足展示机搜索需求。

实例:

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

这个时候就须要引入搜索系统。

搜索系统当前最经常使用的框架有: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实现的更多相关文章

  1. Solr4.8.0源码分析(6)之非排序查询

    Solr4.8.0源码分析(6)之非排序查询 上篇文章简单介绍了Solr的查询流程,本文开始将详细介绍下查询的细节.查询主要分为排序查询和非排序查询,由于两者走的是两个分支,所以本文先介绍下非排序的查 ...

  2. Solr4.8.0源码分析(5)之查询流程分析总述

    Solr4.8.0源码分析(5)之查询流程分析总述 前面已经写到,solr查询是通过http发送命令,solr servlet接受并进行处理.所以solr的查询流程从SolrDispatchsFilt ...

  3. 暑假闲着没事第一弹:基于Django的长江大学教务处成绩查询系统

    本篇文章涉及到的知识点有:Python爬虫,MySQL数据库,html/css/js基础,selenium和phantomjs基础,MVC设计模式,ORM(对象关系映射)框架,django框架(Pyt ...

  4. 基于Impala平台打造交互查询系统

    本文来自网易云社区 原创: 蒋鸿翔 DataFunTalk 本文根据网易大数据蒋鸿翔老师DataFun Talk--"大数据从底层处理到数据驱动业务"中分享的<基于Impal ...

  5. 如何让基于.NET 2.0的应用在高版本的系统上运行?

    我们的WinForm项目是基于.NET 2.0开发的,在部署时,发现有些机器没有.NET 2.0,但是即使这些机器有装.NET 2.0 以上的版本,也无法运行我们的程序.这就比较蛋疼了. 我们查了一下 ...

  6. 基于web公交查询系统----数据库设计

    要求:公交查询系统,管理员可以新增线路,修改车辆参数,发车时间表,删除车次,站名等. 用户可以按线路查询,按站点查询相关信息,也可查询两站点之间的换乘信息等. 数据库应包含管理员表,车站表,线路表,车 ...

  7. Solr4.8.0源码分析(10)之Lucene的索引文件(3)

    Solr4.8.0源码分析(10)之Lucene的索引文件(3) 1. .si文件 .si文件存储了段的元数据,主要涉及SegmentInfoFormat.java和Segmentinfo.java这 ...

  8. 基于Qt5.5.0的sql数据库、SDK_tts文本语音朗读的CET四六级单词背诵系统软件的编写V1.0

    作者:小波 QQ:463431476 请关注我的博客园:http://www.cnblogs.com/xiaobo-Linux/ 我的第二款软件:CET四六级单词背诵软件.基于QT5.5.0.sql数 ...

  9. Solr4.8.0源码分析(15) 之 SolrCloud索引深入(2)

    Solr4.8.0源码分析(15) 之 SolrCloud索引深入(2) 上一节主要介绍了SolrCloud分布式索引的整体流程图以及索引链的实现,那么本节开始将分别介绍三个索引过程即LogUpdat ...

随机推荐

  1. 从SAE又回到BAE,感觉好轻松

    [前言] 我这个人总喜欢对同一类东西比較过来比較过去,用过来用过去. 比如曾经选择浏览器,从開始ie,到遨游,世界之窗.qq等等,用了有10款左右的浏览器,每款都用了不短时间, 终于固定在火狐+chr ...

  2. 小试Office OneNote 2010的图片文字识别功能(OCR)

    原文:小试Office OneNote 2010的图片文字识别功能(OCR) 自Office 2003以来,OneNote就成为了我电脑中必不可少的软件,它集各种创新功能于一身,可方便的记录下各种类型 ...

  3. HDU-2647拓扑排序

    这道题不能用矩阵表示,因为1w*1w绝对超内存,分析数据,前一个a的钱要多于后一个b,所以我们要把b作为出度,a为入度,如果不明白这个地方,举例:b——>a——>c——>d ,b为8 ...

  4. Android如何获得手机power_profile.xml文件

    上的能量消耗进行最近的测试,阅读文章一个月,最后,我们发现了一些新的想法,但产生的问题.那 工作无法再进行下去. 在Android手机中,对于手机中的每一个部件(cpu.led.gps.3g等等)执行 ...

  5. Socket编程实践(13) --UNIX域名协议

    UNIX域名协议 UNIX域套接字与TCP相比, 在同一台主机上, UNIX域套接字更有效率, 差点儿是TCP的两倍(因为UNIX域套接字不须要经过网络协议栈,不须要打包/拆包,计算校验和,维护序号和 ...

  6. htc one x刷机记录

    这几天有些空余时间都用来刷htc one x,来说说刷机的艰难史吧. 首先是利用百度云rom刷机,本来一直用小米系统,突然发现百度云也能够搞个,所以心血来潮要刷个百度云,先利用软件解锁,哪知道没细致看 ...

  7. eclipse 代码清理 代码格式化 代码凝视

    Code Style包含两个方面:代码清理,代码规范化.代码清理能够參考: http://www.ibm.com/developerworks/cn/opensource/os-eclipse-cle ...

  8. How to Compile Java DBus

    1 download or git clone Java DBus git clone git://anongit.freedesktop.org/dbus/dbus-java dbus-java 2 ...

  9. [Windwos Phone 8]多个按钮的共用事件

    原文:[Windwos Phone 8]多个按钮的共用事件 前言 ------------------------------------------------------------------- ...

  10. Shrio登陆验证实例详细解读(转)

    摘要:本文采用了Spring+SpringMVC+Mybatis+Shiro+Msql来写了一个登陆验证的实例,下面来看看过程吧!整个工程基于Mavevn来创建,运行环境为JDK1.6+WIN7+to ...