solr4.5配置增量索引(DIH)
来源:互联网 发布:c语言函数的概念 编辑:程序博客网 时间:2024/06/15 08:43
DIH是solr用于从数据库向索引库批量导入数据。
DIH分为两种情况:全部索引(full-import),与增量索引(delta-import)
full-import用于初次建立索引库,或者向覆盖掉之前索引时使用。
delta-import用于运行中在原基础上增加索引,一般做定期更新使用。
下面介绍full-import:
1.首先找到../solr/core/conf/文件夹下的solrcofig.xml
在其中添加如下字段:
<!--importFormMySql--> <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"><lst name="defaults"> <str name="config">/db/data-config.xml</str></lst> </requestHandler>
其中/db/data-config.xml位于../solr/core/下。
data-config.xml的内容如下:
<?xml version="1.0" encoding="utf-8"?> <dataConfig> <dataSource type="JdbcDataSource" name="ds_name" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://192.168.0.1:3306/dataBaseName" user="admin" password="passport"/> <document> <entity name="tableName_1" dataSource="ds_name" query="select id,name .. from user "> <field column="id" name="id" /> <field column="name" name="name" /> <entity name="tableName_2" dataSource="ds_name" query="select idCard as id,name from tableName_2 where tableName_id='${tableName1.id}'"> <field column="id" name="card_id" /> <field column="name" name="card_name" /> </entity> </entity> </document> </dataConfig>
其上的<dataSource>中的name为数据库的名字。<entity>中的name为你所需要的表的名字。dataSource为刚才我们设定的
数据库的名字。query为你想导入的字段的sql语句。<field>为数据库已solr索引库的匹配字段,column为数据库中的字段名字。name为该字段在solr索引库中的名称,不能重复。
上面套在<entity></entity>中间的<entity></entity>为数据库中的多表联合查询。
将如上内容配置好后,重启solr我们就可以导入数据了。访问:http://localhost:8080/sorl,选择你所使用的core,看到如下画面。
command选择full-improt,默认会勾选Clean(清空索引库数据),Commit(导入后保存数据),选中即可。单击Execute开始导入。单机Refresh Status进行刷新,可在右侧查看导入情况。
至此full-import介绍完毕。
现在介绍delta-import
delta-improt有两种实现方法。第一种使用full-import方式导入,第二种使用普通的
delta-import方式导入。因为我用第二种方法没有导入成功。而且有人指出该方式导入太慢。所以在此不介绍。只介绍第一种方法。
首先同上,找到../solr/core/conf/文件夹下的solrcofig.xml
在其中添加如下字段:
与之前相比,一是name修改了,二是我们有在../db/文件夹下新建了一个文件,名为:
delta-data-config.xml。
delta-data-config.xml的内容与full-improt总是用的data-config.xml内容几乎相同。
只是有如下改动:
<entity name="table_name" pk="id" dataSource="ds_name" query="select id from table_name where last_update> '${dih.last_index_time}'">
没错!就是在query的字段的sql语句中添加了一个条件。不过这要求该table中有last_update字段。该字段用于表示该条数据的最后更新或插入时间。
${dih.last_index_time}位于../core/conf/文件夹中:
名字为dataimprot.properties的配置文件中。${dih.last_index_time}用于表示索引之后的创建时间。该文件为自动生成。文件内容:
修改完成后,重启solr。访问http://localhsot:8080/solr,选择core,选择dataimport,
command选择为delta-import,将Clean,去掉,即可。
至此delta-import介绍完毕。
欢迎各位大侠斧正。
关于delta-import的第二种方法做如下贴图:
这种方法也是修改query。但从配置上看,确实会比full-import慢,因为要做多次查询。
而且deltaQuery中不能用“=”而是应该用in,至于deltaQuery中条件部分,to_date的使用,(还有用作to_char)因为在下的知识浅薄,所以不明白是什么意思。如有大神敬请告知。
- solr4.5配置增量索引(DIH)
- solr4.4 索引mysql数据库数据(DataImport DIH QuickStart)
- 四、Solr数据源配置(JNDI、DIH)及定时重做索引
- Solr笔记三:Solr数据源配置(JNDI、DIH)及定时重做索引
- (五)DIH增量、定时导入并检索数据
- sphinx增量索引配置
- solr4.7.1定时实时重建索引和增量更新
- 数据索引---Solr DIH
- solr4.5配置tomcat7
- (四)DIH全量导入并索引数据
- Sphinx增量索引的配置
- coreseek增量索引配置 windows
- coreseek配置以及增量索引合并索引
- Solr学习(五)DIH增量、定时导入并检索数据
- Solr学习(七)DIH增量导入数据之数据的删除
- solr 索引mysql DIH 链接
- Solr4.6.1配置与建立索引——搜索引擎学习(一)
- Solr4.6.1配置与建立索引——搜索引擎学习(一)
- Android调试底层服务
- vector详解
- 2014--告别2013
- 天气预报webservice wsimport注意事项
- 新年新气象,我希望这个能成为我看书的动力
- solr4.5配置增量索引(DIH)
- volume进入error_deleting状态
- 九度oj 题目1364:v字仇杀队
- 为文件夹添加自定义详细信息
- 开源数学计算库
- Linux scp 使用详解
- 日志时间打印(精确到毫秒)C/C++
- 请不要再用老土的销售话术了!
- UIActionSheet的使用