日期:2014-05-16  浏览次数:20387 次

Solr 4.6定时、实时增量索引 - 导入并索引数据库数据

? ? ? ? 一、准备工作

? ? ?1. 拷贝solr-dataimporthandler-4.6.1.jar到Tomcat的Solr lib目录中

? ? ?在下载的solr的相关目录,如C:\Software\solr-4.6.1\dist中将solr-dataimporthandler-4.6.1.jar拷贝到C:\Software\apache-tomcat-7.0.50\webapps\solr\WEB-INF\lib 中。

?

? ? ? 2. 假设在Solr Home(C:\solr-tomcat\solr)中现在有一个Solr core实例:testcore(C:\solr-tomcat\solr\testcore)当然你可以使用你已有的core实例,或者是新建一个core实例。

?

? ? ?二、solrconfig.xml中配置DataImportHandler

? ? ? ?修改位于C:\solr-tomcat\solr\testcore\conf下的solrconfig.xml,加入如下内容:

?

<requestHandler name="/dataimport"
   class="org.apache.solr.handler.dataimport.DataImportHandler">  
      <lst name="defaults">  
          <str name="config">
             C:\solr-tomcat\solr\testcore\conf\data-config.xml
          </str>  
      </lst>  
  </requestHandler>

?

?

? ? ?三、在solrconfig.xml同级目录中,即在C:\solr-tomcat\solr\testcore\conf中,增加一个data-config.xml

在其中定义数据源,定义实体类。

写道
<dataConfig
<dataSource name="activityDB" type="JdbcDataSource" driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/estore" user="swang6" password="swang6"/>
<document>
<entity dataSource="activityDB" name="record_tb"
query="select * from record_tb">
<field column="id" name="id"/>
<field column="number" name="number"/>
<field column="nnp" name="nnp"/>
<field column="name3" name="name3"/>
</entity>
</document>
</dataConfig>

?

? ? ? ?四、需要在Schema中定义如下测试信息:

?

<field name="number" type="string" indexed="true" stored="true" omitNorms="true"/>  
<field name="nnp" type="string" indexed="true" stored="true" omitNorms="true"/>  
<field name="name3" type="string" indexed="true" stored="true" omitNorms="true"/> 

?

?

? ? ?五、访问管理页面,点击collection testcore中的Dataimport,你会发现Dataimport中有了刚刚配置的DataImporthandler相关的信息。

? ? ? ? 勾选实体类,勾选commmit及optimize然后点击execute执行即开始执行。也可以进行full-import或者是delta-import.

?

? ? ?六、访问另一篇博文:?Solr 4.6定时、实时增量索引 - 修改、删除和新增索引

http://josh-persistence.iteye.com/blog/2017155

?

?

1 楼 bonait 前天  
不错啊  我最近也是在研究solr