30分钟搭建solr搜索引擎

Posted CashWar

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了30分钟搭建solr搜索引擎相关的知识,希望对你有一定的参考价值。


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

30分钟搭建solr搜索引擎



5.开启8983防火墙端口

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

systemctl restart firewalld

30分钟搭建solr搜索引擎



6.访问 8983端口

30分钟搭建solr搜索引擎

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

至此,solr安装成功



7.安装IK分词

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

7.1 下载IK包

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

密码: irdx


7.2 解压 unzip ikanalyzer-solr6.5.zip

30分钟搭建solr搜索引擎


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字典

30分钟搭建solr搜索引擎

30分钟搭建solr搜索引擎


7.4 配置IK分词

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

30分钟搭建solr搜索引擎

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


<!-- my field -->

<field name="title" type="text_ik" indexed="true"  stored="false"/>

<field name="content" type="text_ik" indexed="true"  stored="false"/>

<!-- IK分词器 -->

<fieldType name="text_ik" class="solr.TextField">

<analyzer type="index">

<tokenizer class="org.apache.lucene.analysis.ik.IKTokenizerFactory" useSmart="true"/>

</analyzer>

<analyzer type="query">

<tokenizer class="org.apache.lucene.analysis.ik.IKTokenizerFactory" useSmart="true"/>

</analyzer>

</fieldType>


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

30分钟搭建solr搜索引擎


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

8.2.1选择core

30分钟搭建solr搜索引擎


8.2.2 点击Analysis ,选择text_ik

30分钟搭建solr搜索引擎

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


8.2.3 检查分词情况


30分钟搭建solr搜索引擎


8.2.4检查字典加载情况

30分钟搭建solr搜索引擎


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


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为例子

30分钟搭建solr搜索引擎


8.4.搜索测试

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


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



以上是关于30分钟搭建solr搜索引擎的主要内容,如果未能解决你的问题,请参考以下文章

Solr从搭建到入门

Solr搜索引擎的搭建与应用

Apache Solr搜索引擎搭建配置使用详细教程

Solr 6.2 搭建搜索引擎应用实践

Solr专题手把手教你搭建Solr服务

solr 6.2.1环境搭建