基于Solr4.9.0的搜索系统

为什么需要搜索系统

随着商品数量的增长、以及复杂检索的需求,直接从数据库中检索信息,已经不能满足展示机搜索的需求。 比如:

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提供接口。

客户端使用Solrj。

中文分词使用IK Analyzer 2012FF_hfl。

代码说明

前置项目:http://blog.csdn.net/puma_dong/article/details/9854899

最新源码:git clone [email protected]:pumadong/cl-search.git 。

时间: 2024-10-27 08:16:30

基于Solr4.9.0的搜索系统的相关文章

查询系统--基于Solr4.9.0实现

为什么非要搜索系统 随着在产品的数量的增长.和复杂的检索要求,直接从数据库中检索信息,它已经无法满足展示机搜索需求. 实例: 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

基于墨刀的视频编辑软件Xedit 1.0原型化系统

该产品基于墨刀设计,运行环境ios,运行平台ipad,以下是设计思路. 共有登陆.注册.视频.主页.播放.个人信息这六模块. 首先是登陆和注册模块,登陆分为账号登陆和访客登陆,账号登陆可以将用户的视频保存到服务器上,而访客登陆只能将视频保存到用户本地.之后进入主页端,这将是我们的工作目录,在这里我们可以新建项目并导入视频,主页的顶部状态栏共有三个按钮,分别是视频,项目和个人信息.视频用于查看已经编辑过的视频,项目用于查看已经建立的项目,个人信息用于查看账号的信息.演示如下. 接下来我新建一个项目

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

我们的WinForm项目是基于.NET 2.0开发的,在部署时,发现有些机器没有.NET 2.0,但是即使这些机器有装.NET 2.0 以上的版本,也无法运行我们的程序.这就比较蛋疼了. 我们查了一下,发现windows各个版本中自带的.NET Framework的版本是这样的: windows版本 .net framework版本 winxp 无  (注:xp sp1 则自带了 .net 2.0) win7 .net 3.5(包含.net3.0 .net2.0) win8 .net 4.5 w

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

Solr4.8.0源码分析(10)之Lucene的索引文件(3) 1. .si文件 .si文件存储了段的元数据,主要涉及SegmentInfoFormat.java和Segmentinfo.java这两个文件.由于本文介绍的Solr4.8.0,所以对应的是SegmentInfoFormat的子类Lucene46SegmentInfoFormat. 首先来看下.si文件的格式 头部(header) 版本(SegVersion) doc个数(SegSize) 是否符合文档格式(IsCompoundF

Solr4.8.0源码分析(7)之Solr SPI

Solr4.8.0源码分析(7)之Solr SPI 查看Solr源码时候会发现,每一个package都会由对应的resources. 如下图所示: 一时对这玩意好奇了,看了文档以后才发现,这个services就是java SPI机制.首先介绍下java SPI机制,然后再结合Solr谈一下SPI. 1. JAVA SPI 当服务的提供者,提供了服务接口的一种实现之后,在jar包的META-INF/services/目录里同时创建一个以服务接口命名的文件.该文件里就是实现该服务接口的具体实现类.而

基于JSP的学术交流论坛系统的设计与实现

目 录 摘要 I 关键词 I Abstract I Key words I 1前言 1 1.1课题研究的目的及意义 1 1.2国内外研究现状 1 1.3本文的工作 2 2系统分析 3 2.1可行性分析3 2.2需求分析3 2.2.1需求分析概述3 2.2.2任务概述3 2.2.3会员用户4 2.2.4版主4 2.2.5管理员4 2.3开发工具以及相关技术简介5 2.3.1相关工具简介5 2.3.2相关技术概述5 2.4系统的数据流图7 2.5用例图8 3总体设计9 3.1系统架构设计9 3.1.

有赞搜索系统的架构演进

摘要:有赞搜索平台是一个面向公司内部各项搜索应用以及部分 NoSQL 存储应用的 PaaS 产品,帮助应用合理高效的支持检索和多维过滤功能,有赞搜索平台目前支持了大大小小一百多个检索业务,服务于近百亿数据. 在为传统的搜索应用提供高级检索和大数据交互能力的同时,有赞搜索平台还需要为其他比如商品管理.订单检索.粉丝筛选等海量数据过滤提供支持,从工程的角度看,如何扩展平台以支持多样的检索需求是一个巨大的挑战. Elasticsearch Elasticsearch 是一个高可用分布式搜索引擎,一方面

基于PXE网络启动的Linux系统自动化安装

基于PXE网络启动的Linux系统自动化安装 ??在实际工作中,传统纯手动安装操作系统的方式是有一定的局限性的,例如:现在大多数的服务器都不自带光驱,若要安装系统需要外接光驱插入光盘,整个安装过程中需要人工交互确认,手动设置每一个安装设置项,人必须要在机器前值守,时间大多花费在安装的等待过程中.假如有一大批服务器需要安装操作系统,这种传统手动的方式去逐台安装系统的方式,效率是极其低下的,而且由于需要人工交互式配置系统的安装设置项,无法确保每一台机器的系统安装配置都是完全一致的,即无法做到完全的统

基于宿主机制作一个小系统

一.Linux系统的启动流程 1.启动程序 Linux系统的启动流程为:POST-->BIOS(BootSequence)-->MBR(bootloader,446)--> Kernel-->initrd-->(ROOTFS)/sbin/init(/etc/inittab). 首先上电自检POST:它负责完成对CPU.主板.内存.软硬盘子系统.显示子系统(包括显示缓存).串并行接口.键盘.CD-ROM光驱等的检测.主要检查硬件的好坏. 紧接着就是BIOS进行硬件相关初始化,之