Solr搜索引擎搭建详细过程
1 什么是solr
Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr可以独立运行在Jetty、Tomcat等这些Servlet容器中。
Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。
使用Solr 进行创建索引和搜索索引的实现方法很简单,如下:
* 创建索引:客户端(可以是浏览器可以是Java程序)用 POST 方法向 Solr 服务器发送一个描述 Field 及其内容的 XML 文档,Solr服务器根据xml文档添加、删除、更新索引 。
* 搜索索引:客户端(可以是浏览器可以是Java程序)用 GET方法向 Solr 服务器发送请求,然后对Solr服务器返回Xml、json等格式的查询结果进行解析,组织页面布局。Solr不提供构建页面UI的功能,但是
提供了一个管理界面,通过管理界面可以查询Solr的配置和运行情况。
简单来说:Solr类似我们开发的web项目,是一个war包,把它放在tomcat下直接运行就好
2 Solr和Lucene的区别
Lucene是一个开放源代码的全文检索引擎工具包,它不是一个完整的全文检索应用。Lucene仅提供了完整的查询引擎和索引引擎,目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者以Lucene为基础构建全文检索应用。
Solr的目标是打造一款企业级的搜索引擎系统,它是基于Lucene一个搜索引擎服务,可以独立运行,通过Solr可以非常快速的构建企业的搜索引擎,通过Solr也可以高效的完成站内搜索功能。
简单来说:如果不知道Lucene,那么配置Solr方面将寸步难行
这里是一篇以前写的Lucene的使用案列:http://www.cnblogs.com/xuyiqing/p/8696660.html
有一个问题:我们可以使用数据库查询,为什么要用Solr呢?
答案:最大的一个原因是效率会高 很 多 ,还有其他原因,比如SQL无法做到相关度排序等等
另一个问题:我们为什么不用Lucene呢?
答案:Lucene的工作量过大,Solr是基于Lucene的框架,便捷完善,可配置可扩展,可以高效完成站内搜索功能
接下来就开始:
搭建solr服务器(Tomcat):
注意:solr本身可以运行,不过它是运行在jetty上的,相比Tomcat显得不稳定,所以我们要在tomcat中搭建Solr
准备一个Tomcat7和Solr4.10.3:网上下载即可
按这个路径找到solr.war复制到Tomcat的webapp下
然后把这个war包解压了:注意解压后把war包删了,因为solr文件夹里要添加其他东西,但是Tomcat每次启动都会解压war包覆盖,所以需要删了war包
按目录找到这5个包:
把它们复制到这个文件夹中:
接下来:在刚才的文件夹下新建一个文件夹:solrhome(充当索引库)
把这个路径的这些东西复制过去:
然后修改下这个配置文件:
在40行处修改如下:
好的,启动Tomcat:
我访问8080:
到这里,搭建就成功了!
在这个页面就可以增删改查索引了!
比如增(注意必须有id):
查:
但是还没有结束:
接下来修改配置文件:
打开这里:我们需要关注的是这两个配置文件
好的,接下来就配置它们:
schema.xml:配置域相关的信息
可以打开看看,里面是域的相关信息,只有里面存在的域才可以使用!
当然,里面还有一种动态域,比如*_s,*_i等等,前缀可以任意写
看看另一个配置文件:
这里要配置中文分词器
先导入这个包:
新建一个文件夹放入IK分析器配置文件:
这三个配置文件Lucene文章中:http://www.cnblogs.com/xuyiqing/p/8696660.html
注意三个文件的格式:UTF-8无BOM格式编辑
接下来:在刚才提到的schema.xml中配置:加上这一段
<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType> <field name="title_ik" type="text_ik" indexed="true" stored="true"/>
<field name="content_ik" type="text_ik" indexed="true" stored="false" multiValued="true"/>
新建的这两个域支持IK分析器
测试下:重启Tomcat
分析成功!
接下来,介绍下如何从数据库导入数据:
首先,导入包(注意位置):
打开上面提到过的solrconfig.xml配置文件:
加入下面这些代码:
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
在当前目录下新建一个data-config.xml:
这里导入以前我做的BBS项目中用户的表
<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
<dataSource type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/Blog"
user="root" password="xuyiqing"/>
<document>
<entity name="user"
query="select * from blog_user" >
<field column="u_id" name="id"></field>
<field column="username" name="username"></field>
<field column="u_password" name="password"></field>
<field column="qq" name="qq"></field>
<field column="avatar" name="avatar"></field>
<field column="article_count" name="count"></field>
</entity>
</document>
</dataConfig>
只写这些不够的,还要在schema.xml中配置域:
<field name="username" type="text_ik" indexed="true" stored="true"/>
<field name="password" type="text_ik" indexed="false" stored="false"/>
<field name="qq" type="text_ik" indexed="true" stored="true"/>
<field name="avatar" type="string" indexed="false" stored="true"/>
<field name="count" type="float" indexed="true" stored="true"/>
保存!重启tomcat
导入成功!
我们查询一下(成功):
可以按条件查询:
到这里搭建Solr就成功了
SolrJ:通过SorlJ的API操作Solr:
陆续更新
如果有大佬愿意打赏,感谢:
Solr搜索引擎搭建详细过程的更多相关文章
- Centos 6.5 GitLab安装配置搭建详细过程
GitLab搭建详细过程 一.前提 系统:Centos 6.5 软件版本:gitlab-7.8.4 Selinux:关闭 防火墙规则:先清空(搭建好了后续自己添加相关放行规则) 二.yum源配置和 ...
- IDEA SpringBoot多模块项目搭建详细过程(转)
文章转自https://blog.csdn.net/zcf980/article/details/83040029 项目源码: 链接: https://pan.baidu.com/s/1Gp9cY1Q ...
- centos下hadoop2.6.0集群搭建详细过程
一 .centos集群环境配置 1.创建一个namenode节点,5个datanode节点 主机名 IP namenodezsw 192.168.129.158 datanode1zsw 192.16 ...
- GitLab搭建详细过程
一.前提 系统:Centos 6.5 软件版本:gitlab-7.8.4 Selinux:关闭 防火墙规则:先清空(搭建好了后续自己添加相关放行规则) 二.yum源配置和相关依赖包 1.添加epel源 ...
- windows 2008r2+php5.6.28环境搭建详细过程
安装IIS7 安装php 网站验证 安装IIS7 1.打开服务器管理器(开始-计算机-右键-管理-也可以打开),添加角色 直接下一步 勾选Web服务器(IIS),下一步,有个注意事项继续下一步(这里我 ...
- Learning Discriminative and Transformation Covariant Local Feature Detectors实验环境搭建详细过程
依赖项: Python 3.4.3 tensorflow>1.0.0, tqdm, cv2, exifread, skimage, glob 1.安装tensorflow:https://www ...
- Redis集群搭建详细过程整理备忘
三.安装配置 1.环境 使用2台centos服务器,每台机器上部署3个实例,集群为三个主节点与三个从节点: 192.168.5.144:6380 192.168.5.144:6381 192.168. ...
- windows 2008r2+php5.6.28搭建详细过程
安装IIS7 1.打开服务器管理器(开始-计算机-右键-管理-也可以打开),添加角色 直接下一步 勾选Web服务器(IIS),下一步,有个注意事项继续下一步(这里我就不截图了) 勾选ASP.NET会弹 ...
- Solr集群搭建详细教程(一)
一.Solr集群的系统架构 注:欢迎大家转载,非商业用途请在醒目位置注明本文链接和作者名dijia478,商业用途请联系本人dijia478@163.com. SolrCloud(solr 云)是So ...
随机推荐
- [TJOI2016&&HEOI2016]求和
BZOJ Luogu 求 \[f(n)=\sum_{i=0}^{n}\sum_{j=0}^{i}S(i,j)*2^j*j!\] 其中\(S(i,j)\)是第二类斯特林数 \(n\le10^5\),模\ ...
- Bzoj4872: [Shoi2017]分手是祝愿
题面 Bzoj Sol 首先从大向小,能关就关显然是最优 然后 设\(f[i]\)表示剩下最优要按i个开关的期望步数,倒推过来就是 \[ f[i]=f[i-1]*i*inv[n]+f[i+1]*(n- ...
- 对html进行截图并保存为本地图片
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 运用socket实现简单的ssh功能
在python socket知识点中已经对socket进行了初步的了解,那现在就使用这些知识来实现一个简单的ssh(Secure Shell)功能. 首先同样是建立两个端(服务器端和客户端) 需求是: ...
- IE浏览器右键菜单插件开发(上篇)——自定义一个IE右键菜单项
要做一个IE右键浏览器插件,得3步走. 第一,在IE右键菜单上添加自定义菜单名称,是通过注册表实现的,如下: string regkey = @"Software\Microsoft\Int ...
- js文本框字符数输入限制
我们常常在前台页面做一些文本输入长度的验证,为什么呢?因为数据库字段设置了大小,如果不限制输入长度,那么写入库时就会引发字符串截断异常.今天就给大家分享一个jquery插件来解决这一问题. (func ...
- struts_自定义日期类型转换器
1.问题:struts默认的日期类型是 xxxx-mm-dd,不能接收xxxx/mm//dd类型的日期 2.解决方案(继承DefaultTypeConverter,覆盖convertValue(Obj ...
- js实现二叉树
//binary tree//add order remove findfunction tree() { var node = function(key) { this.left = null; ...
- PAT乙级-1047. 编程团体赛(20)
编程团体赛的规则为:每个参赛队由若干队员组成:所有队员独立比赛:参赛队的成绩为所有队员的成绩和:成绩最高的队获胜. 现给定所有队员的比赛成绩,请你编写程序找出冠军队. 输入格式: 输入第一行给出一个正 ...
- java或判断优化小技巧
写业务代码的时候,我们经常要做条件判断,有的时候条件判断的或判断长达20多个.reg.equals("1") || reg.equals("2") || reg ...