博客
关于我
solr 7.6 安装部署与遇到的问题
阅读量:443 次
发布时间:2019-03-06

本文共 5587 字,大约阅读时间需要 18 分钟。

目录
Solr 是基于开放标准的,它是高度可扩展的。Solr 查询是简单的 HTTP 请求 URL,响应是一个结构化文档:主要是 JSON,但也可以是 XML、CSV 或其他格式。这意味着各种各样的客户端将能够使用 Solr,从其他 Web 应用程序到浏览器客户端、丰富的客户端应用程序和移动设备。任何能够使用 HTTP 的平台都可以与 Solr 对话。

学习solr 除了官网文档我们还可以看这边的中午文档:

solr 默认是有web容器的 jetty ,我们也可以将它存放在tomcat 里面。

直接使用默认的话是可以直接启动的,要使用tomcat 的话就比较麻烦点了。

由于tomcat 在企业应用较多,相对jetty 更为熟悉。所以我们这里使用的是tomcat进行搭建。

安装 solr

下载solr(7.6版本) :

cd  /opt wget http://mirrors.shu.edu.cn/apache/lucene/solr/7.6.0/solr-7.6.0.tgztar -xzf  solr-7.6.0.tgz

配置solr 到tomcat(关键)

将solr 的webapp文件复制到tomcat的webapps目录下并命名为solr

cp -r /opt/solr-7.6.0/server/solr-webapp  /opt/tomcat-solr/webapps/solr

配置依赖包

将solr下 /ext 文件夹中 所有的jar 包复制到 tomcat 里的solr 目录下的WEB-INF/lib 下

cp -r /opt/solr-7.6.0/server/lib/ext/ /opt/tomcat-solr/webapps/solr/WEB-INF/lib/

将solr下 server/lib/metrics开头的jar包复制到 tomcat里的solr 目录下的WEB-INF/lib 下

cp -r /opt/solr-7.6.0/server/lib/metrics*.jar   /opt/tomcat-solr/webapps/solr/WEB-INF/lib/

创建tomcat solr 的 classes 文件

mkdir /opt/tomcat-solr/webapps/solr/WEB-INF/classes

复制 jetty-logging.properties,log4j2.xml 到 classes 文件夹下

cp   /opt/solr-7.6.0/server/resources/jetty-logging.properties   /opt/tomcat-solr/webapps/solr/WEB-INF/classescp  /opt/solr-7.6.0/server/resources/log4j2.xml  /opt/tomcat-solr/webapps/solr/WEB-INF/classes

创建 solr 的core 的主目录(也就是存放core的位置)

cp -r /opt/solr-7.6.0/server/solr  /opt/solrhome

修改配置文件指定solr的home

vim /opt/tomcat-solr/webapps/solr/WEB-INF/web.xml

添加以下内容:(注意第三行的值要替换成你们solr的home的绝对路径)

solr/home
/opt/solrhome
java.lang.String

添加位置:

解决限制资源访问

如果我们按照上面的配置好了,并启动好了tomcat,那么我们直接去访问我们的solr 会发现这个错:

HTTP Status 403 - Access to the requested resource has been denied,拒绝我们的访问资源请求。
解决办法:
注释

Disable TRACE
/
TRACE
Enable everything but TRACE
/
TRACE

更改图片位置

然后启动tomcat ,我们访问::port/solr/index.html

启动成功图示:

遇到的问题以及解决办法:

错误1

错误内容

Unable to resolve canonical hostname for local host,​ possible DNS misconfiguration. Set the 'solr.dns.prevent.reverse.lookup' sysprop to true on startup to prevent future lookups if DNS can not be fixed.

问题原因:

通过解析hostname 找不到对应的本地主机。原因是我更改了hostname,但是我没有更改/etc/hosts 文件,你可以直接 ping 下主机名,看看是否能正常解析到127.0.0.1 。我的是不可以,所以这里报解析错误。

解决办法:

编辑 /etc/hosts文件

在 127.0.0.1 和::1 后面添加 你的新主机名

示例: 我的主机名是ngrok

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 ngrok::1         localhost localhost.localdomain localhost6 localhost6.localdomain6 ngrok

创建core

创建core 目录

我这里的solr 的home目录是 /opt/solrhome

mkdir  /opt/solrhome/test1

添加配置文件

将配置文件复制到 test1 目录下

cp  /opt/solrhome/configsets/_default/conf/    /opt/solrhome/test1/

添加data目录

用于存放数据

mkdir    /opt/solrhome/test1/data/

添加core.properties 文件

name=test1 ,test1值换成你们core的名称。

echo "name=test1" >/opt/solrhome/test1/core.properties

我们重新启动就可以在 core 看到我们新加的目录名称了。

遇到的问题以及解决办法:

错误一

错误内容

2019/1/9 上午11:01:16WARN false x:ljf_dev SolrConfig Couldn't add files from /opt/solrhome/ljf_dev/../../../../contrib/extraction/lib filtered by .*\.jar to classpath: /opt/solrhome/ljf_dev/../../../../contrib/extraction/lib2019/1/9 上午11:01:16WARN falsex:ljf_dev SolrConfig  Couldn't add files from /opt/solrhome/ljf_dev/../../../../dist filtered by solr-cell-\d.*\.jar to classpath: /opt/solrhome/ljf_dev/../../../../dist

错误原因

上面的错误是说加载不到那些jar包 ,上面的这些jar包还在我们解压的文件里面,它肯定是找不到,我们先找到我们这个配置文件,然后修改它寻找的路径。

配置文件是 core 目录下的 conf 里的 solrconfig.xml

我们可以看到默认的配置路径是: 这个路径是solr的安装路径,我们可以更改成绝对路径

解决办法

将那些jar包放在一个固定路径,然后更改配置文件里的路径为绝对路径

#备份下配置文件cp  /opt/solrhome/test1/conf/solrconfig.xml  /opt/solrhome/test1/conf/solrconfig.xml.bak#将依赖文件复制到 tomcat solr 下cp  -r /opt/solr-7.6.0/dist/     /opt/tomcat-solr/webapps/solr/cp  -r /opt/solr-7.6.0/contrib/     /opt/tomcat-solr/webapps/solr/然后更改配置文件 /opt/solrhome/test1/conf/solrconfig.xml  修改为绝对路径,下面为为修改后的。  

这样重新启动tomcat 就不会再有警告了。

配置分词器

分词器我们使用的是IK Analyzer

下载

下载链接 : 提取码:i9uv(失效了评论区留言啊,我看到了会更新的)

添加依赖文件

下载好了后解压上传到服务器 :

有以下文件:

ext.dic   # 词典IKAnalyzer.cfg.xml #配置文件  ik-analyzer-solr5-5.x.jar  #jar包solr-analyzer-ik-5.1.0.jar #jar包stopword.dic # 词典

我们需要将 jar 包放到 tomcat 下的solr 的WEB-INF/lib/ 下

将配置文件和词典 移动到 到 tomcat 下的solr 的WEB-INF/classes 下

cp  /tmp/ikanalyzer-solr5/*.dic  IKAnalyzer.cfg.xml  /opt/tomcat-solr/webapps/solr/WEB-INF/classes/cp /tmp/ikanalyzer-solr5/*.jar  /opt/tomcat-solr/webapps/solr/WEB-INF/lib/

core 配置

core 配置

编辑我们solr home 下的 core 目录下conf里的managed-schema文件

vim  /opt/solrhome/ljf_dev/conf/managed-schema

添加以下内容

添加后示图:

使用分词器。分词合作共赢

不知道为啥,我总觉得这个分词器有点不太准确。

扩展字典

vim /opt/tomcat-solr/webapps/solr/WEB-INF/classes/IKAnalyzer.cfg.xml

IK Analyzer 扩展配置
ext.dic;
stopword.dic;

注意事项:

在tomcat 运行之初我看到了错误日志

Missing Java Option solr.log.dir. Logging may be missing or incomplete

针对这次错误:

也未给出答案,但是上面说到这个是一个不影响使用报错。

附加配置

core 添加字段

vim  /opt/solrhome/test1/conf/managed-schema

指定默认搜索字段

vim  /opt/solrhome/test1/conf/solrconfig.xml
explicit
10
info

配置数据源

vim  /opt/solrhome/test1/conf/solrconfig.xml

添加以下内容:

data-config.xml

并新建data-config.xml文件配置数据库信息

data-config.xml 文件内容为:

本地较多内容来自但其中错误及解决方法均本人自己撰写:

连接数据库:(上面写的不太完善)

转载地址:http://suzfz.baihongyu.com/

你可能感兴趣的文章
laravel server error 服务器内部错误
查看>>
一道简单的访问越界、栈溢出pwn解题记录
查看>>
响应的HTTP协议格式+常见的响应码
查看>>
springboot redis key乱码
查看>>
解决打开 json 文件中文乱码的问题
查看>>
计算机网络基础:PKI(公钥基础设施)
查看>>
乒乓球问题
查看>>
Trae国内版发布,中国首款AI 原生IDE 正式上线,配置Doubao-1.5-pro,支持切换满血版DeepSeek 模型
查看>>
回溯法介绍
查看>>
2025最新智能优化算法:改进型雪雁算法(Improved Snow Geese Algorithm, ISGA)求解23个经典函数测试集
查看>>
有了Trae,人人都是程序员的时代来了
查看>>
程序员都看不懂的代码
查看>>
LLM+多智能体协作:基于CrewAI与DeepSeek的邮件自动化实践
查看>>
404页面自动跳转源码
查看>>
46:把数字翻译成字符串(动态规划)
查看>>
500套精美Logo样机模板可直接套用、轻松制作炫酷logo
查看>>
ASP.NET MVC4 json序列化器
查看>>
A DBA’s take on MSCA (Mobile supply chain applications)
查看>>
Access restriction: The type FileURLConnection is not accessible due to restriction
查看>>
Accessibility
查看>>