本文共 5587 字,大约阅读时间需要 18 分钟。
学习solr 除了官网文档我们还可以看这边的中午文档:
solr 默认是有web容器的 jetty ,我们也可以将它存放在tomcat 里面。
直接使用默认的话是可以直接启动的,要使用tomcat 的话就比较麻烦点了。
由于tomcat 在企业应用较多,相对jetty 更为熟悉。所以我们这里使用的是tomcat进行搭建。下载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 的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/
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
cp -r /opt/solr-7.6.0/server/solr /opt/solrhome
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
启动成功图示:
错误内容
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
我这里的solr 的home目录是 /opt/solrhome
mkdir /opt/solrhome/test1
将配置文件复制到 test1 目录下
cp /opt/solrhome/configsets/_default/conf/ /opt/solrhome/test1/
用于存放数据
mkdir /opt/solrhome/test1/data/
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 配置
编辑我们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
针对这次错误:
也未给出答案,但是上面说到这个是一个不影响使用报错。vim /opt/solrhome/test1/conf/managed-schema
vim /opt/solrhome/test1/conf/solrconfig.xmlexplicit 10 info
vim /opt/solrhome/test1/conf/solrconfig.xml
添加以下内容:
data-config.xml
并新建data-config.xml文件配置数据库信息
data-config.xml 文件内容为:
本地较多内容来自但其中错误及解决方法均本人自己撰写:
连接数据库:(上面写的不太完善)转载地址:http://suzfz.baihongyu.com/