作者:Cherish雪蕊诗_425 | 来源:互联网 | 2023-05-19 12:01
高版本的sorl可以在linux下与windows下使用命令启动,也可以配置tomcat运行,至于那种比较好我也不清楚,没找到介绍.1.配置tomcat下运行solr7(1
高版本的sorl 可以在linux 下 与 windows下使用命令启动,也可以配置tomcat运行,至于那种比较好我也不清楚,没找到介绍.
1. 配置tomcat下运行solr7
(1) .把 solr-webapp下webapp底下所有文件部署到 tomcat 下webapps文件夹下
(2). 把solr-7-7.1 --> service ---> lib 底下的所有jar 放入 tomcat 项目部署位置的WEB-INF/lib下 ,
(3) .把 solr-7-7.1 --> service ---> resources 下底下所有文件部署到 tomcat 下webapps\solr\WEB-INF\classes文件夹下
在classes下修改log4j.xml文件,配置你的log文件存放位置,
(4) 配置 web.xml
注释一段代码,防止本地请求 403 问题
<security-constraint>
<web-resource-collection>
<web-resource-name>Disable TRACEweb-resource-name>
<url-pattern>/url-pattern>
<http-method>TRACEhttp-method>
web-resource-collection>
<auth-constraint/>
security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>Enable everything but TRACEweb-resource-name>
<url-pattern>/url-pattern>
<http-method-omission>TRACEhttp-method-omission>
web-resource-collection>
security-constraint>
插入配置 solrhome 位置代码
<env-entry>
<env-entry-name>solr/homeenv-entry-name>
<env-entry-value>D:\ProgramFiles\BianCheng\apache-tomcat8.5-solr\solrhome(配置你自己的solrhome绝对位置)env-entry-value>
<env-entry-type>java.lang.Stringenv-entry-type>
env-entry>
(5) 将solr-7.7.1 下contrib 和 dist 文件夹 放入你设置的 solrhome文件夹下面
(6) 创建第一个core, 现在网站已经是可以运行的了,但是第一个在网站上 创建 core 普遍是会报错的,(未知原因,我是找不到)可以使用命令行
把solr-7.7解压到某个位置,进入bin目录在这个位置启动 cmd, 使用命令 windows 下使用 solr.cmd start
如果你启动报错也是不影响我们接下来操作,创建core 命令: solr.cmd create -c corename
它会把core 创建在解压目录下的server 下的 solr
把创建好的 core 拷贝到你的solrhome 文件夹下面,如果想要改名称,修改core.properties 文件 和 文件夹名称.
(7) 导入数据库数据
创建文件data-config.xml
xml version="1.0" encoding="UTF-8"?>
<dataConfig>
<dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/数据库名?charactorEncoding=utf-8" user="用户名" password="密码" />
<document>
<entity name="表名" query="查询语句" pk="id">
<field column="表字段名" name="对应solr字段名`" />
entity>
document>
dataConfig>
修改managed-schema
<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
fieldType>
<field name="text_ik" type="text_ik" indexed="true" stored="true" multiValued="false" />
<field name="hotelName" type="text_ik" indexed="true" stored="true"/>
修改 solrconfig.xml文件,把 lib标签引入jar 设置为绝对路径
<lib dir="D:\ProgramFiles\BianCheng\apache-tomcat8.5-solr\solrhome\contrib\extraction\lib" regex=".*\.jar" />
<lib dir="D:\ProgramFiles\BianCheng\apache-tomcat8.5-solr\solrhome\dist\" regex="solr-cell-\d.*\.jar" />
<lib dir="D:\ProgramFiles\BianCheng\apache-tomcat8.5-solr\solrhome\contrib\clustering\lib\" regex=".*\.jar" />
<lib dir="D:\ProgramFiles\BianCheng\apache-tomcat8.5-solr\solrhome\dist\" regex="solr-clustering-\d.*\.jar" />
<lib dir="D:\ProgramFiles\BianCheng\apache-tomcat8.5-solr\solrhome\contrib\langid\lib\" regex=".*\.jar" />
<lib dir="D:\ProgramFiles\BianCheng\apache-tomcat8.5-solr\solrhome\dist\" regex="solr-langid-\d.*\.jar" />
<lib dir="D:\ProgramFiles\BianCheng\apache-tomcat8.5-solr\solrhome\contrib\velocity\lib" regex=".*\.jar" />
<lib dir="D:\ProgramFiles\BianCheng\apache-tomcat8.5-solr\solrhome\dist\" regex="solr-velocity-\d.*\.jar" />
在最后,config 标签前面添加
<admin>
<defaultQuery>*:*defaultQuery>
admin>
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml(配置的数据连接文件)str>
lst>
requestHandler>
2.配置增量
1. 在solrhome下创建 conf 文件夹放入 dataimport.properties
#################################################
# #
# dataimport scheduler properties #
# #
#################################################
# to sync or not to sync
# 1 - active; anything else - inactive
syncEnabled=1
# which cores to schedule
# in a multi-core environment you can decide which cores you want syncronized
# leave empty or comment it out if using single-core deployment
syncCores=mycore
# solr server name or IP address
# [defaults to localhost if empty]
server=localhost
# solr server port
# [defaults to 80 if empty]
port=80
# application name/context
# [defaults to current ServletContextListener's context (app) name]
webapp=solr
# URL params [mandatory]
# remainder of URL
#增量 增量请求路径需与页面的请求配置相同
params=/dataimport?command=delta-import&clean=false&commit=true&optimize=false&wt=json&indent=true&entity=info&verbose=false&debug=false&name=dataimport
# schedule interval
# number of minutes between two runs
# [defaults to 30 if empty] 分钟 默认30分钟
interval=1
# 重做索引的时间间隔,单位分钟,默认7200,即1天;
# 为空,为0,或者注释掉:表示永不重做索引
reBuildIndexInterval=7200
# 重做索引的参数
reBuildIndexParams=/dataimport?command=full-import&clean=true&commit=true&optimize=true&wt=json&indent=true&entity=info&verbose=false&debug=false
# 重做索引时间间隔的计时开始时间,第一次真正执行的时间=reBuildIndexBeginTime+reBuildIndexInterval*60*1000;
# 两种格式:2012-04-11 03:10:00 或者 03:10:00,后一种会自动补全日期部分为服务启动时的日期
reBuildIndexBeginTime=2012-04-11 09:00:00
在WEB-INF添加监听器
<listener>
<listener-class>org.apache.solr.handler.dataimport.scheduler.ApplicationListenerlistener-class>
listener>