solr6.6.2学习记录之三:从sqlserver数据库导入数据(全量导入)

1、配置准备

  前提已经配置好了solr,并新创建了一个core;(我的是:D:\solr_home\core_demo)

  sqlserver数据库 ,  以数据库:demo_solr ,单表(demo_user)为例.

2、修改sorlconfig.xml

  sorlconfig.xml 位置: D:\solr_home\core_demo\conf ;

  在 soreconfig.xml 的<requestHandler name="/select" class="solr.SearchHandler">上面添加如下代码:

  注意:需要确认文件中不存在其他的dataimport,如果存在直接替换即可。

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
        <lst name="defaults">
            <str name="config">data-config.xml</str>
        </lst>
</requestHandler>

3、创建data-config.xml文件

  关于详细的配置请参照:http://blog.csdn.net/boolbo/article/details/50352331

   官方wiki:https://cwiki.apache.org/confluence/display/solr/

  在sorlconfig.xml所在目录下创建data-config.xml文件,然后在此文件中配置数据库相关属性。例如:

<?xml version="1.0" encoding="UTF-8"?>
<dataConfig>
    <dataSource name="dataSource" type="JdbcDataSource"
              driver="net.sourceforge.jtds.jdbc.Driver"
              url="jdbc:jtds:sqlserver://127.0.0.1:1433/demo_solr;useLOBs=false"
              user="sa"
              password="123456" />
    <document>
        <entity name="demo_user" dataSource="dataSource" pk="id"
            query="SELECT * FROM demo_user">
            <field column=‘id‘ name=‘id‘ />
            <field column=‘name‘ name=‘name‘ />
            <field column=‘address‘ name=‘address‘ />
            <field column=‘age‘ name=‘age‘ />
            <field column=‘create_time‘ name=‘createTime‘ dateTimeFormat=‘yyyy-MM-dd HH:mm:ss‘ />
            <field column=‘update_time‘ name=‘updateTime‘ dateTimeFormat=‘yyyy-MM-dd HH:mm:ss‘ />
        </entity>
    </document>
</dataConfig

4、配置managed-schema.xml

  6.6.2版本直接修改managed-schema.xml就行了,比如我的managed-schema.xml文件所有内容如下:

<?xml version="1.0" encoding="UTF-8" ?>

<schema name="example" version="1.6">

   <field name="id" type="string" indexed="true" stored="false"/>
   <field name="name" type="string" indexed="true" stored="true"/>
   <field name="age" type="int" indexed="true" stored="true"/>
   <field name="address" type="string" indexed="true" stored="true"/>
   <field name="createTime" type="date" indexed="true" stored="true"/>
   <field name="cupdateTime" type="date" indexed="true" stored="true"/>

   <field name="_version_" type="long" indexed="false" stored="false"/>
   <field name="text" type="string" indexed="true" stored="false" multiValued="true"/>
   <field name="_root_" type="string" indexed="true" stored="false" docValues="false" />

    <uniqueKey>id</uniqueKey>

    <fieldType name="string" class="solr.StrField" sortMissingLast="true" />
    <fieldType name="int" class="solr.TrieIntField" docValues="true" precisionStep="0" positionIncrementGap="0"/>
    <fieldType name="long" class="solr.TrieLongField" docValues="true" precisionStep="0" positionIncrementGap="0"/>
    <fieldType name="date" class="solr.TrieDateField" docValues="true" precisionStep="0" positionIncrementGap="0"/>

</schema>

5、拷贝jar

  (1)拷贝solr-6.6.2\dist 路径下的 solr-dataimporthandler-6.6.2.jar 、solr-dataimporthandler-extras-6.6.2.jar  到 tomcat下的 webapps\solr\WEB-INF\lib目录下

    (2)拷贝jtds-1.2.4.jar(sqlserver数据库连接jar包)到 tomcat下的 webapps\solr\WEB-INF\lib目录下

不需要修改任何配置文件即可,继续下面的步骤

6、修改jar配置路径

  继续编辑solrconfig.xml, 找到lib标签,修改jar的路径,不需要添加任何jar即可,下面贴上我本地修改后的路径:

  <lib dir="D:\java\componets\solr-6.6.2/contrib/extraction/lib" regex=".*\.jar" />
  <lib dir="D:\java\componets\solr-6.6.2/dist/" regex="solr-cell-\d.*\.jar" />

  <lib dir="D:\java\componets\solr-6.6.2/contrib/clustering/lib/" regex=".*\.jar" />
  <lib dir="D:\java\componets\solr-6.6.2/dist/" regex="solr-clustering-\d.*\.jar" />

  <lib dir="D:\java\componets\solr-6.6.2/contrib/langid/lib/" regex=".*\.jar" />
  <lib dir="D:\java\componets\solr-6.6.2/dist/" regex="solr-langid-\d.*\.jar" />

  <lib dir="D:\java\componets\solr-6.6.2/contrib/ltr/lib/" regex=".*\.jar" />
  <lib dir="D:\java\componets\solr-6.6.2/dist/" regex="solr-ltr-\d.*\.jar" />

  <lib dir="D:\java\componets\solr-6.6.2/contrib/velocity/lib" regex=".*\.jar" />
  <lib dir="D:\java\componets\solr-6.6.2/dist/" regex="solr-velocity-\d.*\.jar" />

7、重启tomcat,访问:http://127.0.0.1:8080/solr/index.html#/core_demo/dataimport//dataimport,如下图:

(full-import 全量导入,delta-import-增量导入),选择 full-import ,点击 点击Execute就可以导入了。

8、点击左侧Query可查询导入的数据,至此完成。

原文地址:https://www.cnblogs.com/VweiweiyixiaoV/p/8260088.html

时间: 2024-08-29 01:27:56

solr6.6.2学习记录之三:从sqlserver数据库导入数据(全量导入)的相关文章

python学习记录第四篇--数据库

只要用到MySQLdb,使用时请先安装MySQLdb,百度上可以下载! #coding=utf-8'''@author: 使用python操作MySQL数据库'''import MySQLdb#import MySQLdb.cursorsconn=MySQLdb.connect(user='root',passwd='root') #connect共三个值,user,passwd,host,无密码且连接本地数据库时,可以都为空.cur=conn.cursor() #创建游标,使用游标进行数据库操

Mysql备份系列(4)--lvm-snapshot备份mysql数据(全量+增量)操作记录

Mysql最常用的三种备份工具分别是mysqldump.Xtrabackup(innobackupex工具).lvm-snapshot快照.前面分别介绍了:Mysql备份系列(1)--备份方案总结性梳理Mysql备份系列(2)--mysqldump备份(全量+增量)方案操作记录Mysql备份系列(3)--innobackupex备份mysql大数据(全量+增量)操作记录 废话不多说,下面即是使用lvm-snapshot快照方式备份mysql的操作记录,仅依据本人实验中使用而述. 操作记录:如下环

向SqlServer数据库插入数据

Insert Values Insert Select Insert Exec Select Into Bulk Insert Insert Values是最常用的一种插入数据的方式,基本语法如下,表名之后可以指定目标列的名称,这种显式的指定目标列的名称是可选的,但是这种做法的好处是对语句的列值列名之间的关联关系进行控制,而不必单纯的依赖定义表时 各个列出现的顺序 INSERT INTO dbo.DimDate ( DataKey , Year , Qu , QuCN , Month , Mon

python2.7学习记录之三

1.连接数据库 MySQLdb的是一个接口连接到MySQL数据库服务器从Python.它实现了Python数据库API V2.0,并建上的MySQL C API的顶端. 下载地址:https://sourceforge.net/projects/mysql-python/ 2.MySQL-Front 出现“程序注册时间到期 程序将被限制模式下运行”解决方式 在“帮助”菜单下的点“登记”-->把以下的key复制进去(整十行一起复制). 0W01VaFQPp/XRYgXjOFSUY7hZ5CcW9f

Excel2003读取sqlserver数据库表数据(图)

SqlServer数据库清空数据表并恢复起始ID

清空并设置ID起始值为1开始. 运行语句:TRUNCATE   TABLE   tablename 说明:tablename为数据表名,按你要清空的数据库表名自行更改. 设置ID起始值: 运行语句:DBCC   CHECKIDENT   ('tablename',   RESEED,  2) 说明:tablename 为数据表名,2为起始ID数,可自定义修改.

excel导入sqlserver数据库大数据量,可每秒控制数量

数据库代码 USE [Test] GO /****** Object:  Table [dbo].[Table_1]    Script Date: 11/07/2017 17:27:29 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo].[Table_1]( [id] [varchar](100) NULL, [NodeId] [varchar](

sqlserver数据库查询数据

数据查询-列别名 //使用AS来命名列 SELECT SCode AS 学生编号,SName AS 学生姓名, SAddress AS 学生地址 FROM Students WHERE SAddress <> '河南新乡'//使用=来命名列 SELECT 姓名 = FirstName+'.'+LastName FROM Employees注意: 1. + 连接的数据类型必须兼容 2. 如果 + 连接字符型数据,结果为字符串数据的连接 3. 如果 + 连接数值型数据,结果为数值的和 数据查询-限

sqlserver数据库插入数据

//插入一行数据INSERT [INTO] 表名 [(列名)] VALUES (值列表)注意事项:(1)每次插入一行数据,不能只插入半行或者几列数据 插入的数据是否有效将按照整行的完整性的要求来检验 (2)每个数据值的数据类型.精度和小数位数必须与相应的列匹配(3)不能为标识列指定值 (4)如果在设计表的时候就指定了某列不允许为空,则必须插入数据 (5)插入的数据项,要求符合检查约束的要求 (6)具有缺省值的列,可以使用DEFAULT(缺省)关键字来代替插入的数值源代码:INSERT INTO