使用DataImportHandler进行简单数据导入还是比较有效的,特别是DIH中针对简单的数据库表,可以把完全导入和增量导入合并成一个语句,非常方便。我的使用方式如下所示
1。配置schema
- <requestHandlername="/dataimport"class="org.apache.solr.handler.dataimport.DataImportHandler">
- <lstname="defaults">
- <strname="config">/home/tomcat/bin/solr/conf/data-config.xml</str>
- </lst>
- </requestHandler>
2.添加data-config文件
data-config.xml
- <dataConfig>
- <dataSourcetype="JdbcDataSource"
- driver="com.mysql.jdbc.Driver"
- url="jdbc:mysql://127.0.0.1/db"
- user="root"
- password="pass"
- batchSize="-1"/>
- <document>
- <entityname="id"pk="id"
- query="selectid,username,text,catfromhotwhere'${dataimporter.request.clean}'!='false'ORtimestamp>'${dataimporter.last_index_time}'">
- <fieldcolumn="id"name="id"/>
- <fieldcolumn="text"name="text"/>
- <fieldcolumn="username"name="username_s"/>
- <fieldcolumn="cat"name="cat_t"/>
- </entity>
- </document>
- </dataConfig>
3.让DIH周期性的运行
修改dataimport.properties文件,这个是自动生成的,同在solr/conf下,添加参数
interval 间隔时间 单位 分钟
syncEnabled=1 打开周期运行
params 其实就是具体调用的url,周期运行就是周期性的访问一个url
- #WedDec2809:29:42UTC2011
- port=8983
- interval=5
- last_index_time=2011-12-2809\:29\:26
- syncEnabled=1
- webapp=solr
- id.last_index_time=2011-12-2809\: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中才行
- <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
分享到:
相关推荐
NULL 博文链接:https://martin3000.iteye.com/blog/1328833
<groupId>org.apache.solr</groupId> <artifactId>solr-solrj</artifactId> <version>${solrj.version}</version> </dependency> </dependencies> </dependencyManagement> <build> <finalName>${project....
配置文件:<fieldType name="text_ik" class="solr.TextField"> <analyzer type="index"> <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" isIndistinct="true"/> ...
配置文件:<fieldType name="text_ik" class="solr.TextField"> <analyzer type="index"> <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" isIndistinct="true"/> ...
支持Spring-data-solr1.5的ik分词器,并且修改了代码,添加一个新的类,用于支持同义词,目前可以同时支持分词和同义词的功能。 修改 managed-schema,添加 <fieldType name="text_lk" class="solr.TextField"> ...
solr7.4数据库导入,使用mysql数据库,内含solr7.4导入数据库Demo+mysql库表,外加使用IK分词器。
NULL 博文链接:https://fengqingyuntan.iteye.com/blog/2254145
实现从数据库到solr的全量数据导入及增量数据导入jar包
<artifactId>quasar-solr-client</artifactId> <version>0.1.0</version> </dependency> 特征 支持基本查询。 待办事项清单 添加INSERT和UPDATE操作。 程式码范例 private final String QUORUM = " localhost:...
solr,数据定时导入,全量导入,增量导入,支持基础BASIC用户名密码安全验证,jar反编译后可直接自己修改,依赖jar包都在pom.xml文件中
<filter class="solr.LowerCaseFilterFactory"/> </analyzer> <analyzer type="query"> <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" conf="ik.conf"/> <filter class=...
solr可以实现定时导入,增量导入,全部的导入;本人亲测可用
<fieldtype name="textComplex" class="solr.TextField" positionIncrementGap="100"> <analyzer> <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicPath="dic"/> </...
solr增量导入更新索引包
<fieldType name="text_ik" class="solr.TextField"> <analyzer type="index"> <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" /> </analyzer> <analyzer type="query"> ...
安装配置solr步骤,包含oracle数据源导入数据配置,以及一些可能遇到的坑
LoremIpsum搜索 包含与 lucene 和 solr 一起使用的搜索算法... export CLASSPATH="<lucene>/lucene/replicator/lib/*:<nutch>/build/*:<nutch>/build/lib/*:<lucene>/solr/dist/*:<lucene>/solr/ dist/solrj-lib/*:*:.
找一个MyEclipse Web项目,把.project文件中的<buildSpec>...</buildSpec>和<natures>...</natures>标签中的内容复制到生成的项目中的.project文件中。 3. 找到Web项目中的.mymetadata文件,看看里面的内容,就...
找一个MyEclipse Web项目,把.project文件中的<buildSpec>...</buildSpec>和<natures>...</natures>标签中的内容复制到生成的项目中的.project文件中。 3. 找到Web项目中的.mymetadata文件,看看里面的内容,就...
使用多线程方式 通过solrj 接口向solr新增索引信息