solr4.4 索引mysql数据库数据(DataImport DIH QuickStart)
2013-12-19 16:08
405 查看
solr.home是/home/leroy/solrhome/solr
官方文档:http://wiki.apache.org/solr/DataImportHandler#Overview
http://wiki.apache.org/solr/DIHQuickStart(easy demo)
query是获取全部数据的SQL
deltaImportQuery是获取增量数据时使用的SQL
deltaQuery是获取pk的SQL
parentDeltaQuery是获取父Entity的pk的SQL
Full Import工作原理:
执行本Entity的Query,获取所有数据;
针对每个行数据Row,获取pk,组装子Entity的Query;
执行子Entity的Query,获取子Entity的数据。
Delta Import工作原理:
查找子Entity,直到没有为止;
执行Entity的deltaQuery,获取变化数据的pk;
合并子Entity parentDeltaQuery得到的pk;
针对每一个pk Row,组装父Entity的parentDeltaQuery;
执行parentDeltaQuery,获取父Entity的pk;
执行deltaImportQuery,获取自身的数据;
如果没有deltaImportQuery,就组装Query
限制:
子Entity的query必须引用父Entity的pk
子Entity的parentDeltaQuery必须引用自己的pk
子Entity的parentDeltaQuery必须返回父Entity的pk
deltaImportQuery引用的必须是自己的pk
关于DataImportHandler的具体使用方法,详见下文,如果你英文超级好,那看这个链接吧:http://wiki.apache.org/solr/DataImportHandler
大多数的应用程序将数据存储在关系数据库、xml文件中。对这样的数据进行搜索是很常见的应用。所谓的DataImportHandler提供一种可配置的方式向solr导入数据,可以一次全部导入,也可以增量导入。
概览
目标
能够读取关系数据库中的数据。
通过可配置的方式,能够将数据库中多列、多表的数据生成solr文档
能够通过solr文档更新solr
提供 通过配置文件就能够导入所有数据的能力
能够发现并处理 由insert、update带来的变化(我们假定在表中有一个叫做“last-modified的列”)
能够配置 “完全导入”和“增量导入”的时间
让读取xml文件,并建立索引成为可配置。
能够将 其他的数据源(例如:ftp,scp,etc)或者其他格式的文档(Json,csv)以插件的形式集成到项目中。
1、修改solrconfig.xml
[html] view
plaincopy
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
2、添加data-config.xml 或者复制solr-4.4.0/example/example-DIH/solr/db/conf/db-data-config.xml到solr.home目录下,并修改为data-config.xml
<?xml version="1.0" encoding="utf-8"?>
<dataConfig>
<dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/leroy_test"
user="root"
password=""/>
<document>
<entity name="view_blog" pk="pk_id" query="select a.id as id,a.project_name as title,a.construct as content from pr_project_info a">
<field column="id" name="id" />
<field column="title" name="title" />
<field column="content" name="content" />
</entity>
</document>
</dataConfig>
3、复制solr-4.4.0/dist/solr-dataimporthandler-4.4.0.jar和solr-4.4.0/dist/solr-dataimporthandler-extras-4.4.0.jar到tomcat/webapps/solr/WEB-INF/lib下,或者我们在上一篇当中在solrconfig.xml配置了solr.home中的lib,可以直接放到/home/leroy/solrhome/solr/lib当中。
注意:在schema.xml中,添加相应的字段,要注意
<uniqueKey>id</uniqueKey>
如果在数据库查询没有id,而在schema.xml中id属性required="true",添加所有将会失败。
具体的demo可以查看solr-4.4.0/example/example-DIH/下的配置文件,通过hsql数据库的例子:
This is a relational model of the same schema that Solr currently ships with. 我们使用这个例子来为我们的DataImportHandler建data-config.xml。 我们已经使用这个结构在HSQLDB上建立了一个数据库. 好,现在开始了, 跟着下面的步骤走:
solr-4.4.0/example/example-DIH/文件包含了一个完整的solrhome(里面的配置文件很齐全了)和一个RSS的例子。它也包含了一个hssqldb数据库的例子.
直接把你的solr.home指向solr-4.4.0/example/example-DIH/solr,等等
使用example-data-config目录下的solr目录作为你solrhome
访问
http://localhost:8983/solr/dataimport 验证一下配置
访问
http://localhost:8983/solr/dataimport?command=full-import 执行一个“完全导入”
具体查看solr-4.4.0/example/example-DIH/目录下的README.txt
参考资料:
http://forchenyun.iteye.com/blog/649623
http://blog.csdn.net/xzknet/article/details/6710753
http://blog.csdn.net/jmutor/article/details/11963957
官方文档:http://wiki.apache.org/solr/DataImportHandler#Overview
http://wiki.apache.org/solr/DIHQuickStart(easy demo)
第一部分是对《db-data-config.xml》
query是获取全部数据的SQLdeltaImportQuery是获取增量数据时使用的SQL
deltaQuery是获取pk的SQL
parentDeltaQuery是获取父Entity的pk的SQL
Full Import工作原理:
执行本Entity的Query,获取所有数据;
针对每个行数据Row,获取pk,组装子Entity的Query;
执行子Entity的Query,获取子Entity的数据。
Delta Import工作原理:
查找子Entity,直到没有为止;
执行Entity的deltaQuery,获取变化数据的pk;
合并子Entity parentDeltaQuery得到的pk;
针对每一个pk Row,组装父Entity的parentDeltaQuery;
执行parentDeltaQuery,获取父Entity的pk;
执行deltaImportQuery,获取自身的数据;
如果没有deltaImportQuery,就组装Query
限制:
子Entity的query必须引用父Entity的pk
子Entity的parentDeltaQuery必须引用自己的pk
子Entity的parentDeltaQuery必须返回父Entity的pk
deltaImportQuery引用的必须是自己的pk
第二部分是DataImportHandler
关于DataImportHandler的具体使用方法,详见下文,如果你英文超级好,那看这个链接吧:http://wiki.apache.org/solr/DataImportHandler大多数的应用程序将数据存储在关系数据库、xml文件中。对这样的数据进行搜索是很常见的应用。所谓的DataImportHandler提供一种可配置的方式向solr导入数据,可以一次全部导入,也可以增量导入。
概览
目标
能够读取关系数据库中的数据。
通过可配置的方式,能够将数据库中多列、多表的数据生成solr文档
能够通过solr文档更新solr
提供 通过配置文件就能够导入所有数据的能力
能够发现并处理 由insert、update带来的变化(我们假定在表中有一个叫做“last-modified的列”)
能够配置 “完全导入”和“增量导入”的时间
让读取xml文件,并建立索引成为可配置。
能够将 其他的数据源(例如:ftp,scp,etc)或者其他格式的文档(Json,csv)以插件的形式集成到项目中。
第三部分:配置过程
1、修改solrconfig.xml[html] view
plaincopy
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
2、添加data-config.xml 或者复制solr-4.4.0/example/example-DIH/solr/db/conf/db-data-config.xml到solr.home目录下,并修改为data-config.xml
<?xml version="1.0" encoding="utf-8"?>
<dataConfig>
<dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/leroy_test"
user="root"
password=""/>
<document>
<entity name="view_blog" pk="pk_id" query="select a.id as id,a.project_name as title,a.construct as content from pr_project_info a">
<field column="id" name="id" />
<field column="title" name="title" />
<field column="content" name="content" />
</entity>
</document>
</dataConfig>
3、复制solr-4.4.0/dist/solr-dataimporthandler-4.4.0.jar和solr-4.4.0/dist/solr-dataimporthandler-extras-4.4.0.jar到tomcat/webapps/solr/WEB-INF/lib下,或者我们在上一篇当中在solrconfig.xml配置了solr.home中的lib,可以直接放到/home/leroy/solrhome/solr/lib当中。
注意:在schema.xml中,添加相应的字段,要注意
<uniqueKey>id</uniqueKey>
如果在数据库查询没有id,而在schema.xml中id属性required="true",添加所有将会失败。
具体的demo可以查看solr-4.4.0/example/example-DIH/下的配置文件,通过hsql数据库的例子:
This is a relational model of the same schema that Solr currently ships with. 我们使用这个例子来为我们的DataImportHandler建data-config.xml。 我们已经使用这个结构在HSQLDB上建立了一个数据库. 好,现在开始了, 跟着下面的步骤走:
solr-4.4.0/example/example-DIH/文件包含了一个完整的solrhome(里面的配置文件很齐全了)和一个RSS的例子。它也包含了一个hssqldb数据库的例子.
直接把你的solr.home指向solr-4.4.0/example/example-DIH/solr,等等
使用example-data-config目录下的solr目录作为你solrhome
访问
http://localhost:8983/solr/dataimport 验证一下配置
访问
http://localhost:8983/solr/dataimport?command=full-import 执行一个“完全导入”
具体查看solr-4.4.0/example/example-DIH/目录下的README.txt
参考资料:
http://forchenyun.iteye.com/blog/649623
http://blog.csdn.net/xzknet/article/details/6710753
http://blog.csdn.net/jmutor/article/details/11963957
相关文章推荐
- solr-DIH:dataimport增量全量创建索引
- 企业级搜索引擎Solr 第三章 索引数据(Indexing Data)[2]--DIH
- solr4.4 索引mysql数据库数据
- Solr学习笔记之3、Solr dataimport - 从SQLServer导入数据建立索引
- solr dataimport 数据导入源码分析(十四)
- solr4.40导入mysql数据库数据建立索引
- DIHQuickStart——Index a DB table directly into Solr
- Solr DIH Quick Start
- Solr-5.3.1 dataimport 导入mysql数据
- Solr4:数据导入(dataimport)时,不符合Solr日期类型要求的字段的处理
- 企业级搜索引擎Solr 第三章 索引数据(Indexing Data)[3]
- solr dataimport 数据导入源码分析(四)
- solr dataimport 数据导入源码分析(六)
- 企业级搜索引擎Solr 第三章 索引数据(Indexing Data)[1]
- Solr6.6.0 用 SimplePostTool与界面dataimport索引方式区别
- 2014-1-3_solr学习之(十一)solr3.5的DIH的增量索引和数据的条件导入
- solr直接索引mysql数据库中的数据(solr实战二)
- 20161216-solr cloud 集群数据导入(dataimport)笔记
- solr学习第七课----solr之数据库数据导入生成索引(DataImportHandler)-基于solr搜索引擎
- solr dataimport 数据导入源码分析(五)