1. 程式人生 > >solr + tomcat + mysql整合

solr + tomcat + mysql整合

strong jar包 還需 cor chan schema min 內部 img

上一次分享了solr+tomcat的整合

學習就是要一步一步的進行才有趣

所以這次給大家分享solr+tomcat+mysql

一、準備工作

1.一張帶數據的數據庫表(我用的是這張叫merchant的表)

技術分享圖片

2.導jar包

需要把solr-5.5.4\dist目錄下的solr-dataimporthandler-5.5.4.jar復制到tomcat\webapps\solr\WEB-INF\lib

目錄下如圖

技術分享圖片

技術分享圖片

還需要導一個數據庫連接的jar包到tomcat\webapps\solr\WEB-INF\lib

技術分享圖片

3.core配置(core具體創建不描述了雖然會的不多但是還是懶=。=)

默認dataImport功能在Solr5中是禁用的,需要在solrconfig.xml中添加如下配置開啟數據導入功能:

<requestHandler name="/dataimport" class="solr.DataImportHandler"> 

  <lst name="defaults"> 

    <str name="config">data-config.xml</str> 

  </lst> 

 </requestHandler>

這個地址可以是絕對路徑。

將core中的solr-data-config.xml修改成data-config.xml

技術分享圖片

技術分享圖片

需要在裏面敲的代碼如下

<dataConfig>
<dataSource name="bfy" type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://39.108.147.253:3306/bfy" user="root" password="199610liu"/> <document> <entity pk="MID" dataSource
="bfy" name="merchant" query="select * from merchant" deltaImportQuery="select * from merchant where id =‘${dih.delta.id}‘" deltaQuery="select id from merchant where timestamp > ‘${dih.last_index_time}‘"> <field column="MID" name="id"/> <field column="mName" name="mName"/> <field column="northernLatitude" name="northernLatitude"/> <field column="eastLongitude" name="eastLongitude"/> </entity> </document> </dataConfig>

這裏解釋下以上代碼

dataSource裏邊就是我們經常配置的數據源

entity中要註意的就是查詢後面的表名要修改

field是你表中的數據可以只選需要的

緊接著我們需要打開schema.xml配置文件對域名稱、域類型、是否索引、是否存儲、是否分詞等信息進行配置,

如圖:

   <field name="mName" type="text_ik" indexed="true" stored="true" omitNorms="true"/>
   <field name="MID" type="int" indexed="true" stored="true"/>    
   <field name="northernLatitude" type="string" indexed="true" stored="true"/>    
   <field name="eastLongitude" type="string" indexed="true" stored="true"/>    

可以看見代碼中有一個 text_ik 這個值一個分詞器

這時我們需要引入ik分詞器

這裏需要引如下2個jar包到tomcat\webapps\solr\WEB-INF\lib下

技術分享圖片

<fieldType name="text_ik" class="solr.TextField">   
                   <analyzer type="index" isMaxWordLength="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/>   
                   <analyzer type="query" isMaxWordLength="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/>   
         </fieldType>

這樣連接數據庫的配置都配好了

再去啟動tomcat進入http://localhost:8000/solr/admin.html#/ 進入如下位置可以見到效果

技術分享圖片

技術分享圖片

頁面上的內容介紹

full-import:全量導入,它會覆蓋原有的索引

delta-import:即增量導入,它會在原有索引的基礎上追加

下面的幾個多選框含義解釋如下:

verbose:這個選項設為true的話,會打印導入的一些中間過程的詳細信息,有利於調試以及了解內部操作細節

clean:表示是否在導入數據創建索引之前先清空掉原有的索引

commit:表示是否立即提交索引

optimize:表示是否優化索引

debug: 表示是否開啟調試模式

選中merchant後點藍色的那個按鈕

技術分享圖片

上面的頁面是正在創建索引,但是這個頁面不會停太久如果很久沒有反應就去tomcat那邊看是否有報錯日誌

成功的話會有如下界面

技術分享圖片

切換到overview菜單,我們會看到:

技術分享圖片

Num Docs會有數據

切換到Query菜單,對我們剛插入的索引進行查詢測試,如圖:

技術分享圖片

numFound是找到的數據條數

附上我使用的ik分詞器下載鏈接 https://pan.baidu.com/s/1amtFlufyTEzMLcSnbOr7vA

這裏整合就結束了

如果有不足和錯誤的地方還請各位大佬指點

謝謝!!!

2018-09-20 17:35:52

solr + tomcat + mysql整合