环境
- 系统:CentOS Linux release 7.6.1810
- jdk: openjdk 1.8.0_222
- solr版本:solr-7.7.2
- 数据库: Oracle 11.2.0.4.0 - 64bit
操作步骤
- 下载对应数据库的驱动jar包,并上传到$SOLR_INSTALL_HOME/server/solr-webapp/webapp/WEB-INF/lib目录下
- 将数据导入的相关jar也一并copy到$SOLR_INSTALL_HOME/server/solr-webapp/webapp/WEB-INF/lib目录下
- solr-dataimporthandler-7.7.2.jar
- solr-dataimporthandler-extras-7.7.2.jar
cd $SOLR_INSTALL_HOME/dist
cp -r solr-dataimporthandler-7.7.2.jar solr-dataimporthandler-extras-7.7.2.jar $SOLR_INSTALL_HOME/server/solr-webapp/webapp/WEB-INF/lib
- 编辑配置文件solrconfig.xml,在680行左右,添加以下内容
vim $SOLR_INSTALL_HOME/server/solr/my_core/conf/solrconfig.xml
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<!-- oracle-db/data-config.xml是引用配置文件,文件存放路径相对于solr_home来说,也就是$SOLR_INSTALL_HOME/server/solr/my_core/oracle-db/data-config.xml -->
<str name="config">oracle-db/data-config.xml</str>
</lst>
</requestHandler>
- 创建data-config.xml,编写数据库字段信息
# 新建data-config.xml引用文件
cd $SOLR_INSTALL_HOME/server/solr/my_core
mkdir oracle-db
vim data-config.xml
# 添加以下内容
<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
<!-- 数据库配置信息,看情况修改成自己的信息 -->
<dataSource type="JdbcDataSource"
driver="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@10.204.105.127:1521:db11g02"
user="test"
password="123456" />
<document>
<entity name="INSTANCE_DETAIL" pk='INSTANCE_DETAIL_ID' transformer="ClobTransformer"
deltaBatch="true"
query="SELECT * FROM SOA_ESB_INSTANCE_DETAIL where CREATED_DATE > to_date('2019-12-20 00:00:00','yyyy-mm-dd hh24:mi:ss') "
deltaImportQuery="select * from SOA_ESB_INSTANCE_DETAIL where CREATED_DATE >= to_date('${dataimporter.last_index_time}','yyyy-mm-dd hh24:mi:ss') AND CREATED_DATE < to_date('${dataimporter.index_start_time}','yyyy-mm-dd hh24:mi:ss')"
deltaQuery="select INSTANCE_DETAIL_ID from SOA_ESB_INSTANCE_DETAIL where CREATED_DATE >= to_date('${dataimporter.last_index_time}','yyyy-mm-dd hh24:mi:ss') AND CREATED_DATE < to_date('${dataimporter.index_start_time}','yyyy-mm-dd hh24:mi:ss') ">
<field column="INSTANCE_DETAIL_ID" name="ID" />
<field column="INSTANCE_UUID" name="INSTANCE_UUID" />
<field column="LOG" name="LOG" clob="true" />
<field column="LOG_SIZE" name="LOG_SIZE" />
<field column="TYPE" name="TYPE" />
<field column="CREATED_DATE" name="CREATED_DATE" />
<field column="SERVICE_NAME" name="SERVICE_NAME" />
<field column="MAJOR_VERSION" name="MAJOR_VERSION" />
</entity>
</document>
</dataConfig>
- 集成中文分词器
# 1. copy分词器的jar包到solr-webapp目录下
cp $SOLR_INSTALL_HOME/contrib/analysis-extras/lucene-libs/lucene-analyzers-smartcn-7.7.2.jar $SOLR_INSTALL_HOME//server/solr-webapp/webapp/WEB-INF/lib/
# 2. 编辑$SOLR_INSTALL_HOME/server/solr/my_core/conf/managed-schema文件
vim $SOLR_INSTALL_HOME/server/solr/my_core/conf/managed-schema
# 3. 在文件末添加以下内容,保存并退出,重启solr
<!-- 新增的内容 -->
<fieldType name="text_smartcn" class="solr.TextField" positionIncrementGap="0">
<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>
<!-- 需要分词的字段 -->
<field name="solrKey" type="text_smartcn" indexed="true" stored="false" multiValued="true"/>
- 维护字段映射关系,添加以下内容
vim $SOLR_INSTALL_HOME/server/solr/my_core/conf/managed-schema
# 在文件末添加以下内容,保存并退出,重启solr
<field name="ID" type="string" indexed="true" stored="true" required="true" multiValued="false"/>
<field name="INSTANCE_UUID" type="string" indexed="true" stored="true"/>
<field name="LOG" type="text_ik" indexed="true" stored="false" />
<field name="LOG_SIZE" type="plong" indexed="true" stored="true" />
<field name="TYPE" type="string" indexed="true" stored="true" multiValued="true"/>
<field name="CREATED_DATE" type="pdates" indexed="true" stored="true"/>
<field name="SERVICE_NAME" type="string" indexed="true" stored="true"/>
<field name="MAJOR_VERSION" type="string" indexed="true" stored="true"/>
- 接下来在界面执行导入操作
来源:CSDN
作者:Min_Monk
链接:https://blog.csdn.net/Min_Monk/article/details/104286182