window下tomcat8.5.50+solr8.2.0+mySql整合部署
Posted 挑水砍柴皆能悟道
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了window下tomcat8.5.50+solr8.2.0+mySql整合部署相关的知识,希望对你有一定的参考价值。
最近项目上solr版本进行了升级,然后应用启动失败,拿掉定时更新的监听任务
<listener>
<listener-class>
org.apache.solr.handler.dataimport.scheduler.ApplicationListener
</listener-class>
</listener>
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>D: omcatSolrsolrhome</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
<dataConfig>
<dataSource type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/shl_a?useUnicode=true&characterEncoding=utf8&userSSL=false&serverTimezone=GMT%2B8"
user="root"
password="pwd123"/>
<document>
<!-- ?serverTimezone=UTC -->
<entity name="product" pk="id"
query="select c_id,c_name,c_description,c_last_update_time from tables_demo"
deltaImportQuery="select c_id,c_name,c_description,c_last_update_time from tables_demo where c_id = '${dih.delta.id}'"
deltaQuery="select c_id as id,c_name,c_description,c_last_update_time from tables_demo where c_last_update_time >'${dataimporter.last_index_time}'">
<field column="c_id" name="id"/>
<field column="c_name" name="s_name"/>
<field column="c_description" name="s_description"/>
<field column="c_last_update_time" name="s_updateTime"/>
</entity>
</document>
</dataConfig>
<lib dir="${solr.install.dir:../../../..}/dist/" regex="mysql-connector-java-.*.jar" />
<requestHandler name="/dataimport" class="solr.DataImportHandler">
<lst name="defaults">
<str name="config">solr-data-config.xml</str>
</lst>
</requestHandler>
<field name="s_name" type="text_general" indexed="true" stored="true" multiValued="true" />
<field name="s_description" type="text_ik" indexed="true" stored="true" multiValued="true" />
<field name="s_updateTime" type="pdate" indexed="true" stored="true" />
solr-data-config.xml文件中entity下field的column值为查询结果的列的名称,name为managed-schema文件中field的name;
<fieldType name="text_ik" class="solr.TextField">
<analyzer type="index">
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" conf="ik.conf"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" conf="ik.conf"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<listener>
<listener-class>
org.apache.solr.handler.dataimport.scheduler.ApplicationListener
</listener-class>
</listener>
#################################################
# #
# 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
# 修改成你所使用的core,我这里是我自定义的core:simple
syncCores=simple
# solr server name or IP address
# [defaults to localhost if empty]
# 这个一般都是localhost不会变
server=localhost
# solr server port
# [defaults to 80 if empty]
# 安装solr的tomcat端口,如果你使用的是默认的端口,就不用改了,否则改成自己的端口就好了
port=8080
# application name/context
# [defaults to current ServletContextListener's context (app) name]
# 这里默认不改
webapp=solr
# URL params [mandatory]
# remainder of URL
# 这里改成下面的形式,solr同步数据时请求的链接
params=/dataimport?command=delta-import&clean=false&commit=true
# schedule interval
# number of minutes between two runs
# [defaults to 30 if empty]
#这里是设置定时任务的,单位是分钟,也就是多长时间你检测一次数据同步,根据项目需求修改
# 开始测试的时候为了方便看到效果,时间可以设置短一点
interval=1
# 重做索引的时间间隔,单位分钟,默认7200,即5天;
# 为空,为0,或者注释掉:表示永不重做索引
reBuildIndexInterval=7200
# 重做索引的参数
reBuildIndexParams=/select?qt=/dataimport&command=full-import&clean=true&commit=true
# 重做索引时间间隔的计时开始时间,第一次真正执行的时间=reBuildIndexBeginTime+reBuildIndexInterval*60*1000;
# 两种格式:2012-04-11 03:10:00 或者 03:10:00,后一种会自动补全日期部分为服务启动时的日期
reBuildIndexBeginTime=03:10:00
<entity name="product" pk="id"
query="select c_id,c_name,c_description,c_last_update_time from tables_demo"
deltaImportQuery="select c_id,c_name,c_description,c_last_update_time from tables_demo where c_id = '${dih.delta.id}'"
deltaQuery="select c_id as id,c_name,c_description,c_last_update_time from tables_demo where c_last_update_time >'${dataimporter.last_index_time}'">
<field column="c_id" name="id"/>
<field column="c_name" name="s_name"/>
<field column="c_description" name="s_description"/>
<field column="c_last_update_time" name="s_updateTime"/>
</entity>
以上是关于window下tomcat8.5.50+solr8.2.0+mySql整合部署的主要内容,如果未能解决你的问题,请参考以下文章