將資料庫中資料匯入至solr索引庫

路在何方い發表於2020-11-11

此處在Tomcat伺服器下部署Solr

1.引入jar依賴

在apache-tomcat-8.0.52\webapps\solr\WEB-INF\lib引入mysql驅動

複製solr-dataimporthandler-7.7.3.jar和solr-jaegertracer-configurator-8.7.0.jar到apache-tomcat-8.0.52\webapps\solr\WEB-INF\lib的下面

2.

複製solr-7.7.3/example\example-DIH\solr\db\conf下的db-data-config.xml到solr-home/core1/conf/下

此處改名為db-config.xml(可以不改名)修改內容為

<dataConfig>
<dataSource type="JdbcDataSource"
		  driver="com.mysql.jdbc.Driver"
		  url="jdbc:mysql://localhost:3306/shopping"
		  user="root"
		  password="0515"/>
<document>
  <!--when id select database I set column as The alias-->
  <!--what you need then find what-->
	<entity name="ec_article" query="select id,title,price,locality,create_date from ec_article">
		
	</entity>
</document>
</dataConfig>

3.修改soIrconfig檔案,新增匯入資訊。該資訊必須放在requestHandler標籤的同級位置。

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">  
      <lst name="defaults">  
        <str name="config">data-config.xml</str>  
      </lst>  
  </requestHandler>

4.自定乂solr的欄位,在managed-schema檔案中新增filed欄位。( 位置放在text欄位後面即可)

<field name="title" type="text_ik" indexed="true" stored="true" multiValued="false"/>
		
  <field name="locality" type="text_ik" indexed="true" stored="true" multiValued="false"/>
       
  <field name="price" type="pfloat" indexed="true" stored="true" multiValued="false"/>
       
  <field name="create_date" type="pdate" indexed="true" stored="true" multiValued="false"/>

注:name的值要和資料庫的欄位名一致

5.新增IK分詞器,引入IK分詞器的依賴到apache-tomcat-8.5.23/webapps/solr/WEB-INF/ib/下,配置IK分詞器(注意:放在fieldType同級附近)。

   <fieldType name="text_ik" class="solr.TextField">
            
    <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
		  
</fieldType>

6.啟動solr,匯入資料

7.匯入資料後,查詢資料(如下顯示 說明匯入資料成功,並且可以查詢到)

資料庫兩條資料,可以全部顯示

 

 

 

相關文章