Solr7.3.1导入数据库数据

1.解压solr-7.3.1.zipF:盘 solr-7.3.1\server\solr\configsets_default
2.在命令行进入F:\solr-7.3.1\bin,然后启动solr
./solr.cmd start
3.在F:\solr-7.3.1\server\solr下新建core1文件夹,并复制F:\solr-7.3.1\server\solr\configsets\_default\conf文件夹到core1
4.进入solr控制页面添加Core

在这里插入图片描述

5.进入solr-7.3.1\dist文件夹下,复制如下jar包到solr-7.3.1\server\solr-webapp\webapp\WEB-INF\lib
  • solr-dataimporthandler-7.3.1.jar
  • solr-dataimporthandler-extras-7.3.1.jar
6.下载所需连接的数据库的驱动jar包到solr-7.3.1\server\solr-webapp\webapp\WEB-INF\lib
7.在solr-7.3.1\server\solr\core1\conf\solrconfig.xml添加相关配置
<!--数据库配置 -->
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> 
	<lst name="defaults">  
		  <str name="config">data-config.xml</str>  
	</lst>  
</requestHandler> 
8.在solr-7.3.1\server\solr\core1\conf\下新建data-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<dataConfig>
	<dataSource 
	type="JdbcDataSource" 
	driver="oracle.jdbc.driver.OracleDriver" 
	url="jdbc:oracle:thin:@xxxxxxxxx:1521:orcl11g" 
	user="xxxxxx" 
	password="xxxx" /> 
	<document>
		<entity name="TB_BPM_INSTANCE" query="select 
		PROC_DEF_KEY,
		VERSIONNO,
		BUSINESS_KEY,
		WFINSTNAME,
		WFINSTCODE,
		CREATEUSERID,
		CREATETIME,
		STATE,
		SUBMITTIME,
		ISTEST,
		REMARK,
		WNUMBER from TB_BPM_INSTANCE">
			<field column="PROC_DEF_KEY" name="procDefKey"/> 
			<field column="VERSIONNO" name="versionNo"/> 
			<field column="BUSINESS_KEY" name="businessKey"/> 
			<field column="WFINSTNAME" name="wfinstName"/> 
			<field column="WFINSTCODE" name="wfinstCode"/> 
			<field column="CREATEUSERID" name="createUserId"/> 
			<field column="CREATETIME" name="createTime"/> 
			<field column="STATE" name="state"/> 
			<field column="SUBMITTIME" name="submitTime"/> 
			<field column="ISTEST" name="isTest"/> 
			<field column="REMARK" name="remark"/> 
			<field column="WNUMBER" name="wNumber"/> 
		</entity>
	</document>
</dataConfig>
9.修改solr-7.3.1\server\solr\core1\conf\managed-schema 添加如下内容,并注意<uniqueKey>procDefKey</uniqueKey> 的设置
<field name="procDefKey" type="string" indexed="true" stored="true"/>
<field name="versionNo" type="string" indexed="true" stored="true"/>
<field name="businessKey" type="string" indexed="true" stored="true"/>
<field name="wfinstCode" type="string" indexed="true" stored="true"/>
<field name="wfinstName" type="string" indexed="true" stored="true"/>
<field name="createUserId" type="string" indexed="true" stored="true"/>
<field name="createTime" type="string" indexed="true" stored="true"/>
<field name="state" type="string" indexed="true" stored="true"/>
<field name="submitTime" type="string" indexed="true" stored="true"/>
<field name="isTest" type="string" indexed="true" stored="true"/>
<field name="remark" type="string" indexed="true" stored="true"/>
<field name="wNumber" type="pint" indexed="true" stored="true"/>
10.选中Auto-Refresh Status然后点击Execute,导入数据

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用Python增量导入Oracle数据Solr,您需要遵循以下步骤: 1. 安装Solr和Python的相关库(如pysolr)。 2. 编写Python脚本,连接Oracle数据库并执行增量查询,将查询结果转换为Solr文档格式,并使用pysolr库将文档添加到Solr中。 3. 您可以使用定时任务(如cron)来定期运行Python脚本,以便进行增量导入。 下面是一个示例Python脚本,用于从Oracle数据库中查询并导入数据Solr: ``` import cx_Oracle import pysolr # Oracle数据库连接配置 dsn_tns = cx_Oracle.makedsn('localhost', '1521', 'XE') conn = cx_Oracle.connect(user='username', password='password', dsn=dsn_tns) cursor = conn.cursor() # Solr连接配置 solr = pysolr.Solr('http://localhost:8983/solr/mycore', timeout=10) # 查询增量数据 query = "SELECT * FROM mytable WHERE updated_at > :last_update" last_update = '2021-01-01 00:00:00' # 上次更新时间 cursor.execute(query, last_update=last_update) # 将查询结果转换为Solr文档格式 docs = [] for row in cursor: doc = { 'id': str(row[0]), 'title': row[1], 'content': row[2], 'updated_at': row[3].strftime('%Y-%m-%dT%H:%M:%SZ') } docs.append(doc) # 添加文档到Solr solr.add(docs) # 更新上次更新时间 last_update = datetime.now().strftime('%Y-%m-%d %H:%M:%S') # 关闭Oracle连接和Solr连接 cursor.close() conn.close() solr.commit() solr.close() ``` 此脚本将从Oracle数据库中查询更新时间大于上次更新时间的数据,并将查询结果转换为Solr文档格式。然后,使用pysolr库将文档添加到Solr中,并更新上次更新时间。您可以根据需要调整查询和文档格式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值