Solr 数据导入 <一>DIH简单使用
2013-12-19 14:47
399 查看
使用DataImportHandler进行简单数据导入还是比较有效的,特别是DIH中针对简单的数据库表,可以把完全导入和增量导入合并成一个语句,非常方便。我的使用方式如下所示
1。配置schema
Xml代码
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">/home/tomcat/bin/solr/conf/data-config.xml</str>
</lst>
</requestHandler>
2.添加data-config文件
data-config.xml
Xml代码
<dataConfig>
<dataSource type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1/db"
user="root"
password="pass"
batchSize="-1"/>
<document>
<entity name="id" pk="id"
query="select id,username,text,cat from hot where '${dataimporter.request.clean}' != 'false' OR timestamp > '${dataimporter.last_index_time}'">
<field column="id" name="id"/>
<field column="text" name="text"/>
<field column="username" name="username_s"/>
<field column="cat" name="cat_t"/>
</entity>
</document>
</dataConfig>
3.让DIH周期性的运行
修改dataimport.properties文件,这个是自动生成的,同在solr/conf下,添加参数
interval 间隔时间 单位 分钟
syncEnabled=1 打开周期运行
params 其实就是具体调用的url,周期运行就是周期性的访问一个url
Java代码
#Wed Dec 28 09:29:42 UTC 2011
port=8983
interval=5
last_index_time=2011-12-28 09\:29\:26
syncEnabled=1
webapp=solr
id.last_index_time=2011-12-28 09\:29\:26
server=127.0.0.1
params=/select?qt\=/dataimport&command\=full-import&clean\=false&commit\=true&optimize\=false
到此还并不能周期运行,在solr的wiki中有一段实现这个功能的代码,但并没有加入到solr的发行包中,于是我们需要重新编译这段代码,打包放到webapp/solr/WEB-INF/lib中才行
Xml代码
<web-app>
<listener>
<listener-class>org.apache.solr.handler.dataimport.scheduler.ApplicationListener</listener-class>
</listener>
...
</web-app>
apache-solr-dataimporthandler-scheduler.jar下载见原文链接:http://martin3000.iteye.com/blog/1328833
1。配置schema
Xml代码
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">/home/tomcat/bin/solr/conf/data-config.xml</str>
</lst>
</requestHandler>
2.添加data-config文件
data-config.xml
Xml代码
<dataConfig>
<dataSource type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1/db"
user="root"
password="pass"
batchSize="-1"/>
<document>
<entity name="id" pk="id"
query="select id,username,text,cat from hot where '${dataimporter.request.clean}' != 'false' OR timestamp > '${dataimporter.last_index_time}'">
<field column="id" name="id"/>
<field column="text" name="text"/>
<field column="username" name="username_s"/>
<field column="cat" name="cat_t"/>
</entity>
</document>
</dataConfig>
3.让DIH周期性的运行
修改dataimport.properties文件,这个是自动生成的,同在solr/conf下,添加参数
interval 间隔时间 单位 分钟
syncEnabled=1 打开周期运行
params 其实就是具体调用的url,周期运行就是周期性的访问一个url
Java代码
#Wed Dec 28 09:29:42 UTC 2011
port=8983
interval=5
last_index_time=2011-12-28 09\:29\:26
syncEnabled=1
webapp=solr
id.last_index_time=2011-12-28 09\:29\:26
server=127.0.0.1
params=/select?qt\=/dataimport&command\=full-import&clean\=false&commit\=true&optimize\=false
到此还并不能周期运行,在solr的wiki中有一段实现这个功能的代码,但并没有加入到solr的发行包中,于是我们需要重新编译这段代码,打包放到webapp/solr/WEB-INF/lib中才行
Xml代码
<web-app>
<listener>
<listener-class>org.apache.solr.handler.dataimport.scheduler.ApplicationListener</listener-class>
</listener>
...
</web-app>
apache-solr-dataimporthandler-scheduler.jar下载见原文链接:http://martin3000.iteye.com/blog/1328833
相关文章推荐
- Solr 数据导入 <一>DIH简单使用
- oracle的使用<一>支持的数据类型
- AndroidStudio 中使用 百度地图 <一> 百度地图的导入和集成,个人摘要
- json解析简单数据<一>
- <Android>在Activity被非正常杀死并重建时,使用savedInstanceState进行数据恢复的简单实例
- asp.net<Web版> ---将excel表数据导入到数据库问题<一>---未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0” 提供程序
- Opencv2 学习笔记<一>:cv::Mat数据访问方式
- <一>Ioc控制反转——手把手教学:如何配置并使用单元测试一个spring框架(附源码)
- 如何使用CSS设置<input>标签的背景小图标 简单
- JSONP一种使用<script>元素获取数据的方法
- [d3.js] D3.JS 基于javascript的图表展示库<一>----简单介绍
- 【Android开发学习45】使用google语音识别引擎(Google Speech API)<一>
- 最简单的struts2中使用<s:iterator>实现隔行变色代码[珍藏版]
- iOS 学会使用delegate和block<一>
- 数据挖掘十大经典算法 <一> :Adaboost算法
- 批量保存数据 List<T> 的使用
- JavaScript中list的简单使用<菜单>
- 简单入门java多线程<一>:源码分析Thread和Runnable
- 使用T-SQL实现数据导出/导入(SQLSERVER—>SQLSERVER)
- solr5.5.0连接oracle数据库导入数据<二>