CentOS7搭建solr7.2-忍受痛苦
  P66d8Dsrd4Sr 2023年11月02日 40 0


solr介绍

一、Solr它是一种开放源码的、基于 Lucene Java 的搜索服务器,易于加入到 Web 应用程序中。 二、Solr 提供了层面搜索(就是统计)、命中醒目显示并且支持多种输出格式(包括XML/XSLT 和JSON等格式)。它易于安装和配置,而且附带了一个基于 HTTP 的 管理界面。Solr已经在众多大型的网站中使用,较为成熟和稳定。 三、Solr 包装并扩展了 Lucene,所以Solr的基本上沿用了Lucene的相关术语。更重要的是,Solr 创建的索引与 Lucene 搜索引擎库完全兼容。 四、通过对Solr 进行适当的配置,某些情况下可能需要进行编码,Solr 可以阅读和使用构建到其他 Lucene 应用程序中的索引。 五、此外,很多 Lucene 工具(如Nutch、 Luke)也可以使用Solr 创建的索引。可以使用 Solr 的表现优异的基本搜索功能,也可以对它进行扩展从而满足企业的需要。

      准备工作:1、关闭防火墙,2、安装jdk1.8环境。3、创建生产环境下的目录/data/soft /,所有安装包都放在/data/下进行操作,产生的环境都放在/data/soft下面。

1、查看防火墙状态:

​​firewall-cmd --state​​

CentOS7搭建solr7.2-忍受痛苦_solr

 如果是开启状态那么关闭掉就行了。​​​

​​systemctl stop firewalld.service​​

 2、做之前的准备:jdk环境一定要是jdk1.8,centos7的话好像最低都是jdk1.8的,我的做实验前查了一下是jdk1.8的,所以就不在继续做jdk最新版本的了。

CentOS7搭建solr7.2-忍受痛苦_solr_02

在这里不做说明,如果不会请参考我专门做的关于jdk环境的博客.

3、创建安装目录


​​mkdir -p /data/soft​​

前三步做好后就直接开始做solr搜索服务器了。

正式开始:

1.下载solr7.2版本,解压

​​wget http://mirrors.shuosc.org/apache/lucene/solr/7.2.1/solr-7.2.1.tgz​​
​​tar -xvf solr-7.2.1.tgz​​

 3.下载tomcat,解压并测试tomcat是否异常,这步很重要,有的tomcat版本有冲突就会发生异常。

​​wget https://mirrors.cnnic.cn/apache/tomcat/tomcat-9/v9.0.6/bin/apache-tomcat-9.0.6.tar.gz​​
​​tar -xvf apache-tomcat-9.0.6.tar.gz​​
​​mv apache-tomcat-9.0.6 tomcat​​


对tomcat测试一下,看tomcat是否正常

 启动tomcat:sh bin/startup.sh

CentOS7搭建solr7.2-忍受痛苦_solr_03

查看端口是被监听

CentOS7搭建solr7.2-忍受痛苦_tomcat_04

查看服务是否启动,生产环境会用这种方式查看。

CentOS7搭建solr7.2-忍受痛苦_apache_05

查看tomcat日志:

 

CentOS7搭建solr7.2-忍受痛苦_solr_06

CentOS7搭建solr7.2-忍受痛苦_apache_07

 生产环境最直接的检查方式。直接curl命令查看是否能够获取tomcat页面。

CentOS7搭建solr7.2-忍受痛苦_apache_08

 开始部署配置solr

1.把solr-7.2.0/server/solr-webapp里面的webapp拷贝到tomcat 的webapps下,重命名为solr

​​cp -r solr-7.2.1/server/solr-webapp/webapp/ /data/soft/tomcat/webapps/​​
​​mv webapp/ solr​​

2.拷贝solr-7.2.1\server\lib\ext 下的jar包以及lib目录下gmetric4j-1.0.7.jar,以metrics开头的jar包拷贝到 tomcat\webapps\solr 项目的WEB-INF\lib下


​​cd solr-7.2.1/server/lib/ext/​​
​​cp * /data/soft/tomcat/webapps/solr/WEB-INF/lib/​​
​​cp gmetric4j-1.0.7.jar metrics-* /data/soft/tomcat/webapps/solr/WEB-INF/lib/​​

3.拷贝solr-7.2.0\server 下的solr文件夹到其它非中文目录下,重命名为solrhome,我是建立到了/data/soft下

​​cd solr-7.2.1/server/​​
​​cp -r solr /data/soft/solrhome​​


CentOS7搭建solr7.2-忍受痛苦_tomcat_09

4.修改/data/soft/tomcat/webapps/solr/WEB-INF\web.xml, 找到如下代码,蓝色部分的,/put/your/solr/home/here 改为你自己的solrhome的路径,我的是/data/soft/solrhome路径。

   vim /data/soft/tomcat/webapps/solr/WEB-INF/web.xml,将注释去掉,并将solrhome的目录位置写进去:

​​<!--​​
​​<env-entry>​​
​​<env-entry-name>solr/home</env-entry-name>​​
​​<env-entry-value>/put/your/solr/home/here</env-entry-value>​​
​​<env-entry-type>java.lang.String</env-entry-type>​​
​​</env-entry>​​
​​-->​​


如下图:

 

CentOS7搭建solr7.2-忍受痛苦_solr_10

5..拷贝solr7.2.1\server\resources下的log4j.properties到/data/soft/tomcat/webapps/solr/WEB-INF\classes,如果WEB-INF下没有classes文件那么就创建一个classes文件夹

​​mkdir -p /data/soft/tomcat/webapps/solr/WEB-INF/classes​​
​​cp solr-7.2.1/server/resources/log4j.properties /data/soft/tomcat/webapps/solr/WEB-INF/classes/​​


6.启动tomcat,访问需要完整路径,我的是http://192.168.241.131:8080/solr/index.html#/

CentOS7搭建solr7.2-忍受痛苦_tomcat_11

 看下日志,如果日志有下面这个样式就成功了。

CentOS7搭建solr7.2-忍受痛苦_apache_12

 在本机上curl一下,发现403,那么估计页面也是这样,如下图。

CentOS7搭建solr7.2-忍受痛苦_apache_13

CentOS7搭建solr7.2-忍受痛苦_apache_14

 7.注意:如果出现上图403错误,编辑web.xml照片截图中位置,找到如下代码,将其注释即可。

CentOS7搭建solr7.2-忍受痛苦_tomcat_15

 加上注释如下图:

CentOS7搭建solr7.2-忍受痛苦_tomcat_16

 再次刷新浏览器,会出现下图的页面。

CentOS7搭建solr7.2-忍受痛苦_solr_17

配置solr的核心内容(core)

1.点击Core Admin,接着点击Add Core这项,点完之后会出现问题,但是会自动创建new-core目录。

CentOS7搭建solr7.2-忍受痛苦_apache_18

2.报错,提示缺少配置文件:Error CREATEing SolrCore 'new_core': Unable to create core [new_core] Caused by: Can't find resource 'solrconfig.xml' in classpath or '/data/soft/solrhome/new_core'

解决方法:拷贝server/solr/configsets/_default/下的conf文件夹到solrhome/new_core文件夹下

​​cp -r solr-7.2.1/server/solr/configsets/_default/conf  /data/soft/solrhome/new_core/​​


3.点击Add Core,此时会显示添加成功。

 

CentOS7搭建solr7.2-忍受痛苦_apache_19

4、配置中文分析器

1.拷贝dist文件夹里的solr-dataimporthandler-7.2.0.jar

​​cp  solr-7.2.1/dist/solr-dataimporthandler-7.2.1.jar /data/soft/tomcat/webapps/solr/WEB-INF/lib/​​


2.拷贝lucene-libs文件夹里的中文分析器的jar包

​​cp  solr-7.2.1/contrib//analysis-extras/lucene-libs/* /data/soft/tomcat/webapps/solr/WEB-INF/lib/​​


​​vim solrhome/new_core/conf/managed-schema​​

​​<!-- ChineseAnalyzer -->​​
​​<​​​​fieldType​​​ ​​name​​​​=​​​​"text_ik"​​​ ​​class​​​​=​​​​"solr.TextField"​​​ ​​positionIncrementGap​​​​=​​​​"100"​​​​>​​
​​<​​​​analyzer​​​ ​​type​​​​=​​​​"index"​​​​>​​
​​<​​​​tokenizer​​​ ​​class​​​​=​​​​"org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"​​​​/>​​
​​</​​​​analyzer​​​​>​​
​​<​​​​analyzer​​​ ​​type​​​​=​​​​"query"​​​​>​​
​​<​​​​tokenizer​​​ ​​class​​​​=​​​​"org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"​​​​/>​​
​​</​​​​analyzer​​​​>​​
​​</​​​​fieldType​​​​>​​

如下图:

CentOS7搭建solr7.2-忍受痛苦_tomcat_20

4.自定义搜索业务域

​​<​​​​field​​​ ​​name​​​​=​​​​"item_title"​​​ ​​type​​​​=​​​​"text_ik"​​​ ​​indexed​​​​=​​​​"true"​​​ ​​stored​​​​=​​​​"true"​​​​/>​​
​​<​​​​field​​​ ​​name​​​​=​​​​"item_sell_point"​​​ ​​type​​​​=​​​​"text_ik"​​​ ​​indexed​​​​=​​​​"true"​​​ ​​stored​​​​=​​​​"true"​​​​/>​​
​​<​​​​field​​​ ​​name​​​​=​​​​"item_price"​​​ ​​type​​​​=​​​​"plong"​​​ ​​indexed​​​​=​​​​"true"​​​ ​​stored​​​​=​​​​"true"​​​​/>​​
​​<​​​​field​​​ ​​name​​​​=​​​​"item_image"​​​ ​​type​​​​=​​​​"string"​​​ ​​indexed​​​​=​​​​"false"​​​ ​​stored​​​​=​​​​"true"​​​ ​​/>​​
​​<​​​​field​​​ ​​name​​​​=​​​​"item_category_name"​​​ ​​type​​​​=​​​​"string"​​​ ​​indexed​​​​=​​​​"true"​​​ ​​stored​​​​=​​​​"true"​​​ ​​/>​​
​​<​​​​field​​​ ​​name​​​​=​​​​"item_desc"​​​ ​​type​​​​=​​​​"text_ik"​​​ ​​indexed​​​​=​​​​"true"​​​ ​​stored​​​​=​​​​"false"​​​ ​​/>​​
​​<​​​​field​​​ ​​name​​​​=​​​​"item_keywords"​​​ ​​type​​​​=​​​​"text_ik"​​​ ​​indexed​​​​=​​​​"true"​​​ ​​stored​​​​=​​​​"false"​​​ ​​multiValued​​​​=​​​​"true"​​​​/>​​
​​<​​​​copyField​​​ ​​source​​​​=​​​​"item_title"​​​ ​​dest​​​​=​​​​"item_keywords"​​​​/>​​
​​<​​​​copyField​​​ ​​source​​​​=​​​​"item_sell_point"​​​ ​​dest​​​​=​​​​"item_keywords"​​​​/>​​
​​<​​​​copyField​​​ ​​source​​​​=​​​​"item_category_name"​​​ ​​dest​​​​=​​​​"item_keywords"​​​​/>​​
​​<​​​​copyField​​​ ​​source​​​​=​​​​"item_desc"​​​ ​​dest​​​​=​​​​"item_keywords"​​​​/>​​


如下图:

CentOS7搭建solr7.2-忍受痛苦_tomcat_21

5.重启tomcat,就能发现自定义域已经出现

CentOS7搭建solr7.2-忍受痛苦_tomcat_22

6.测试分词效果

CentOS7搭建solr7.2-忍受痛苦_tomcat_23

 

 好了,到此为止,solr就告一段落,我们在部署的时候,心一定要细,有的地方千万仔细,进过这两天的熟悉给公司的阿里云服务器做这个,借签网络各位大神的手笔,写的不足之处,请大家多多关照。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  wpWn7yzs0oKF   2023年11月13日   29   0   0 javaapacheHDFS
P66d8Dsrd4Sr