Solr6.5與mysql集成創建索引


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

(個人本地的solrconfig.xml中有這個/dtatimport 只需把class修改成下面的就能夠了)
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">  
      <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 * from  news"  
                deltaImportQuery="select * from news where id='${dih.delta.id}'"  
                deltaQuery="select id from news where updateTime> '${dataimporter.last_index_time}'">  
  
				<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

 

 

  而後把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的時候已作)sql

啓動Tomcat,輸入http://localhost:8080/solr/index.html按以下選擇,數據庫

相關文章
相關標籤/搜索