DataImportHandler
Solr数据导入DIH使用
概述
目标
1、 读驻留在关系数据库中的数据
2、 根据多个表的列和数据建立solr文档
3、 根据这些文档更新solr
4、 提供根据配置做处理
5、 删除,修改,增加做增量导入
6、 定期的增量导入和全量导入
7、 通过配置文件读取xml,(http/ftp)建立索引
8、 提供插件使得其他任何数据源(FTP,SCP等)和其他格式的用户选择(JSON,CSV等)提供支持。
设计概要
Handler应该配置到solrconfig.xml中,如下面
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">/home/username/data-config.xml</str>
</lst>
</requestHandler>
故名思想,这个类实现了SolrRequestHandler(SolrRequestHandler使用.doc),配置在两个地方提供:
1、solrconfig.xml, 数据配置文件的位置添加在这里
2、数据源也可以添加在这里。或者配置在data-config.xml中
3、Data-config.xml
a) 如何获取数据(queries,url等)
b) 怎么读取( resultset columns,xml字段等)
c) 怎么执行(修改/添加/删除)
使用关系数据库管理系统
为了使用这个处理程序,下面的步骤是必需的。
1、定义一个data-config.xml文件,并且在solrconf.xml中DataImportHandler的节点下指定位置。
2、给连接信息,(如果你选择把数据源存储在solrconfig.xml中)
3、如果一切正常,HTTP打开dataimporthandler页面来验证 ,http://localhost:8983/solr/dataimport
4、使用全量导入,将会把数据库中所有数据添加到solr索引中。
5、使用增量导入,将会把数据库中(新增的或修改的)数据添加到solr索引中。
配置数据源
在dataConfig标签下添加一个dataSource标签。
<dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/dbname" user="db_username" password="db_password"/>
1、 dataSource配置也可以被添加到solrconfig.xml 中
2、属性”type”指定实现类,它是可选的。默认值是“jdbcdatasource”
3、属性名称,可以在多个实体使用多个数据源的应用
4、自定义插件的实现【solr数据库导入数据自定义插件的实现.doc】
Oracle例子
首先,需要下载oracle 的jdbc驱动到你 solr安装目录的lib下面。
<dataSource name="jdbc" driver="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@//hostname:port/SID" user="db_username" password="db_password"/>
多数据源
可以配置有多个数据源,配置一个额外的数据源,新添加一个dataSource配置即可,有一个隐含的属性“name”,数据源名称。如果有一个以上的,每一个额外的数据源必须确定一个唯一的名称的名称=“datasource-2”。
例如
<dataSource type="JdbcDataSource" name="ds-1" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://db1-host/dbname" user="db_username" password="db_password"/>
<dataSource type="JdbcDataSource" name="ds-2" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://db2-host/dbname" user="db_username" password="db_password"/>
在你的实体中
..
<entity name="one" dataSource="ds-1" ...>
..
</entity>
<entity name="two" dataSource="ds-2" ...>
..
</entity>
..
配置JdbcDataSource
JdbcDataSource 可使用的属性有:
· driver (必须的): The jdbc driver classname
· url (必须的) : The jdbc connection url (如果jndiName配置了,就不是必须的)
· user : 用户名
· password : 密码
· jndiName : JNDI name of the preconfigured datasource
· batchSize : The batchsize used in jdbc connection. Use a value of '-1' in case of setFetchSize() exception.
· convertType :(true/false)默认为“false”自动读取目标Solr数据类型的数据
· autoCommit : If set to 'false' it sets setAutoCommit(false) Solr1.4
· readOnly : If this is set to 'true' , it sets setReadOnly(true), setAutoCommit(true),setTransactionIsolation(TRANSACTION_READ_UNCOMMITTED),setHoldability(CLOSE_CURSORS_AT_COMMIT) on the connection
· <!--[endif]-->transactionIsolation : The possible values are [TRANSACTION_READ_UNCOMMITTED, TRANSACTION_READ_COMMITTED, TRANSACTION_REPEATABLE_READ,TRANSACTION_SERIALIZABLE,TRANSACTION_NONE]
任何额外的属性将标签直接传递到JDBC驱动程序。
配置data-config.xml文件
Solr的文档可以来自数据库的多个表,
Data-config.xml 开始于document 标签,一种文档代表了一个文档,文档包含一个或多个根实体。一根实体可以包含多个子实体,这反过来又可以包含其他实体。一个实体对应关系数据库中的表/视图。每个实体可以包含多个域。每个字段对应的结果集的列在实体查询返回的。每个领域,在结果集的提列名称。如果列名称不同Solr字段名称,另一个属性的名称应给予,所有的属性,比如type类型,都将从solr中schemal.xml中寻找。
为了从数据库中获取数据,我们的设计理念,围绕“模板化的SQL '为每个实体的用户。
参考网址
http://wiki.apache.org/solr/DataImportHandler
相关推荐
1. **创建 DataImportHandler (DIH)**: DIH 是 Solr 提供的一种工具,可以将外部数据源的数据导入到 Solr 索引中。在 `solrconfig.xml` 文件中启用并配置 DIH。 2. **配置 DataConfig.xml**: 这个文件定义了数据源...
Solr DataImportHandler (DIH) 是Apache Solr的一个强大特性,它允许用户从各种数据源导入数据到Solr索引。在给定的压缩包"solr-dataimporthandler.rar"中,包含了两个关键的JAR文件:"solr-dataimporthandler-8.9.0...
1. DataImportHandler(DIH):Solr6使用DIH进行数据导入,它是Solr内置的一个处理程序,可以连接到各种数据源(如数据库),并将数据导入到Solr索引中。DIH支持增量导入,通过跟踪数据库的LastModified时间戳或者...
Solr 数据导入处理器(DataImportHandler,DIH)是 Apache Solr 的一个重要组件,它允许用户从各种数据源,如关系型数据库、CSV 文件等,批量导入数据到 Solr 索引中。这个功能极大地简化了数据同步和更新的过程,...
在理解这个知识点之前,我们需要先了解Solr的基本概念以及数据导入处理(DataImportHandler,DIH)。 Apache Solr是一个开源的全文搜索引擎,它提供了高效、可扩展的搜索和分析功能。Solr能够对大量数据进行快速的...
在本文中,我们将深入探讨如何使用Apache Solr 3.6的数据导入处理(DataImportHandler,简称DIH)组件从MySQL数据库中创建全文索引。Solr是一个强大的、开源的企业级搜索平台,而DIH是Solr的一个核心特性,允许用户...
在Solr6版本中,DataImportHandler(DIH)是一个非常重要的特性,它允许Solr从外部数据源导入数据并建立索引。在"solr6--solr-dataimporthandler-scheduler-1.1"这个项目中,我们关注的重点是DIH的调度功能,也就是...
在Solr中,DataImportHandler(DIH)组件是一个强大的工具,用于从各种外部数据源,如关系型数据库(如MySQL)中导入数据并建立全文索引。在本例中,我们将探讨如何使用Solr 3.6版本的DIH组件来对MySQL数据库中的...
在Solr 7.4版本中,我们可以通过数据导入工具(DataImportHandler, DIH)来实现数据库中的数据导入,以便进行全文搜索和分析。本Demo将展示如何使用Solr 7.4与MySQL数据库集成,实现数据导入,并结合IK分词器提升...
DataImportHandler 是 Solr 中的一个关键组件,它允许用户将结构化数据导入到 Solr 库中,以便进行高效的搜索。DIH 支持多种数据源,如 JDBC(数据库连接),CSV,XML 等,可以进行全量导入和增量导入。 增量更新是...
增量导入更新索引包是Solr中的一项重要功能,它允许系统仅处理自上次完整索引以来发生改变的数据,从而大大提升了效率并降低了资源消耗。下面将详细阐述Solr增量更新的相关知识点。 1. **Solr的索引机制** Solr...
总结来说,`apache-solr-dataimporthandler-extras-1.4.0.jar`是一个增强Solr DataImportHandler功能的库,它可以帮助用户更方便地从各种数据源导入和更新数据,提高了Solr作为企业级搜索和分析平台的灵活性和实用性...
Solr DataImportHandler (DIH) 是一个内置的Solr组件,允许用户从关系型数据库或其他数据源导入数据,并将其转化为Solr可以处理的格式。DIH支持全量导入和增量导入两种模式。全量导入会将整个数据源的数据导入到Solr...
DIH允许Solr从各种数据源,如关系型数据库MySQL,导入数据。 在标题提到的"solr定时自动同步数据库需要用到的apache-solr-dataimportscheduler.jar包"中,`apache-solr-dataimportscheduler.jar`是用于实现Solr数据...
总的来说,Apache Solr6.5.1的定时增量数据导入特性通过`solr-dataimporthandler`和`solr-data-import-scheduler`这两个组件,实现了对数据源的自动化、智能化管理,极大地提高了数据检索的实时性和系统的响应速度。...
Solr使用DataImportHandler(DIH)来从关系型数据库、XML文件或其他数据源导入数据。DIH提供了一个全面的数据加载框架,支持全量导入和增量导入。 1. **全量导入**:全量导入是将所有数据从源数据库或文件一次性...
在 Solr 中,通常使用 DataImportHandler (DIH) 来从外部数据源(如数据库)导入数据并建立索引。DIH 提供了全量导入和增量导入的能力,但默认情况下并不具备自动执行导入任务的定时功能。`dataimportscheduler` ...
- **DataImportHandler (DIH)**:Solr提供了一个名为DIH的组件,用于从外部数据源,如MySQL,导入数据。DIH支持增量更新和全量导入,确保数据库中的数据变化能实时反映到Solr索引中。 - **连接配置**:配置DIH时,...
这个jar包的核心功能是DataImportHandler(DIH),它是一个内置在Solr中的模块,用于将外部数据源(如关系型数据库)的数据导入到Solr索引中。DIH支持全量导入和增量导入,这使得Solr可以保持与数据库的实时同步,...
4. **导入数据**:使用Solr的DataImportHandler(DIH)从数据库或其他数据源导入数据。 5. **查询与优化**:通过Solr提供的RESTful API或Solrj客户端进行查询,根据需求调整索引策略和查询参数。 四、Solr的使用...