30分钟搭建solr搜索引擎

2018-02-27 11:23:40来源:oschina作者:阿锋zxf人点击

分享

solr是一个底层由java编写的开源搜索引擎,性能强悍,配置灵活,API丰富,具有可视化前端面板,调试方便,但安装过程较为复杂且遇到过不少坑,下面就总结一下安装过程

安装环境:centos7


1.下载solr安装包


wget http://mirrors.shuosc.org/apache/lucene/solr/7.2.1/solr-7.2.1.zip


2.解压 unzip solr-7.2.1.zip


3.安装java环境


3.1 查看是否安装


java -version


如果已经安装,则移除旧版本


yum remove java-x.x.x-openjdk

3.2安装


查看可安装列表


yum -y list java*


选择版本安装所有包


yum install java-1.8.0-openjdk*

3.3测试是否成功


4.启动solr


mv solr-7.2.1 solr7.2.1


cd solr7.2.1


bin/solr start -force



5.开启8983防火墙端口


firewall-cmd --zone=public --add-port=8983/tcp --permanent


systemctl restart firewalld



6.访问 8983端口


如无法响应,首先排查端口开启问题,阿里云等云服务器需要将8983端口添加到入站安全组


至此,solr安装成功


7.安装IK分词


由于solr不支持中文分词,所以要安装IK分词包来解决query分词,索引分词等问题


7.1 下载IK包


链接: https://pan.baidu.com/s/1smrpBOx


密码: irdx

7.2 解压 unzip ikanalyzer-solr6.5.zip


7.3 复制到指定目录


7.3.1.将两个jar包复制到solr安装目录的lib目录下


cp *jar /usr/local/solr/solr7.2.1/server/solr-webapp/webapp/WEB-INF/lib/

7.3.2新建classes目录


mkdir /usr/local/solr/solr7.2.1/server/solr-webapp/webapp/WEB-INF/classes

7.3.2将xml文件复制到classes下


cp IKAnalyzer.cfg.xml /usr/local/solr/solr7.2.1/server/solr-webapp/webapp/WEB-INF/classes/

7.3.4查看xml文件,在classes目录配置ext.dic stopword.dic字典




7.4 配置IK分词


vim /usr/local/solr/solr7.2.1/server/solr/seo/conf/managed-schema


这里稍微解释一下,field的name属性即为索引字段,type为字段类型,这里我们写为刚刚安装的text_ik, indexed为是否索引,stored为是否排序(id字段为ture,113行已经有了),假设你数据库有一堆数据,分为title和content两个字段,那么你按照如图所示配置即可,再往下为IK分词的配置,直接复制即可。












7.5 重启solr(无论新增包和修改配置,都不要忘记重启)


/usr/local/solr/solr7.2.1/bin/solr restart -force


8.开始使用solr


8.1新建core


core可以理解为一个项目


bin/solr create -c seo -force


8.2到前端查看IK分词是否生效


8.2.1选择core


8.2.2 点击Analysis ,选择text_ik



如果出现text_ik则IK分词安装成功,否则失败。

8.2.3 检查分词情况

8.2.4检查字典加载情况


“三星”是个品牌名称被单独切了出来,并没有切出来“星星”,“吗”也被去掉了


8.3添加索引


8.3.1solr添加有三种方法


1.通过面板的Dataimport进行数据导入


2.通过Documents手动添加


3.通过API添加


第1种方法不赘述,个人觉得配置麻烦且使用不灵活,


第2种方法我直接使用了python的API,详情见:http://blog.csdn.net/sinat_33455447/article/details/56848791


注意不要逐条提交,合适的方法是将数据分组添加,比如10000一组,这样更高效

8.3.2通过Documents手动添加


一般用来做测试用,点击Documents,选择你要提交的数据形式,这里以json为例子

8.4.搜索测试


点击query,q输入query,df指定搜索字段


请求红框内的url可以直接拿到搜索结果数据,并可以使用wt选项指定返回的数据类型

精力所限仍然有很多的细节和关键参数在这里一言难尽,大家多多转发或者加下方我的微信号向我提问,你们的支持才是我分享的动力:)

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台