solr + tomcat + mysql整合
上一次分享了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整合