962148150 发表于 2017-12-20 11:46:40

Solr6.5与mysql集成建立索引

  首先在solrconfig.xml(我的是保存在/usr/local/tomcat/solrhome/mycore/conf/下)的<requestHandler name="/select">之上添加
  

(我的本地的solrconfig.xml中有这个/dtatimport 只需把class修改为下面的就可以了)  

<requestHandler name="/dataimport">  
    <lst name="defaults">
  
       <str name="config">data-config.xml</str>
  
    </lst>
  
</requestHandler>
  然后在conf的solr-data-config.xml文件。里面内容如下:
  

<dataConfig>  <dataSource name="source1" type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/user(数据库名)" user="root" password="root" batchSize="-1" />
  <document>
  <entity name="news" pk="id"dataSource="source1"   
  query="select * fromnews"

  deltaImportQuery="select * from news where>
  deltaQuery="select>  <field column="id" name="id"/>
  <field column="title" name="title"/>
  <field column="synopsis" name="synopsis"/>
  <field column="updateTime" name="updateTime"/>
  </entity>
  </document>
  
</dataConfig>
  

  dataSource是数据库数据源。Entity就是一张表对应的实体,pk是主键,query是查询语句。Field对应一个字段,column是数据库里的column名,后面的name属性对应着Solr的Filed的名字。其中user是数据库名,news是表名。
  其中deltaQuery是增量索引,原理是从数据库中根据deltaQuery指定的SQL语句查询出所有需要增量导入的数据的ID号。然后根据deltaImportQuery指定的SQL语句返回所有这些ID的数据,即为这次增量导入所要处理的数据。核心思想是:通过内置变量“${dih.delta.id}”和 “${dataimporter.last_index_time}”来记录本次要索引的id和最近一次索引的时间。
  然后把mysql所需的jar包(去下载相应的jar包)和solr-6.2.0\dist下的solr-dataimporthandler-6.2.0.jar和solr-dataimporthandler-extras-6.2.0.jar都复制到项目WEB-INF\lib下(该步骤在安装solr的时候已做)
  启动Tomcat,输入http://localhost:8080/solr/index.html按如下选择,
  
页: [1]
查看完整版本: Solr6.5与mysql集成建立索引