文章目錄
1、項目初衷
Solr版本升級迭代速度較快,各個版本之間變化差異較大。蒐集了不少資料終於搭建了solr當前比較新版本的流程,在此分享一下。
希望可以幫助到大家!
2、Solr版本之間的主要變化
版本 | 變化 |
---|---|
4.x | 4.x的安裝方式,solr的安裝包中會有一個war包,可以部署類似tomcat的服務器上運行,這是大家都熟知的方式 |
5.x 6.x 7.x 8.x | 5.x之後solr中不再提供war包,這是一個重大變化,項目直接在解壓後的目錄中通過命令運行 |
我在這裏踩了不少坑,下載solr8.4解壓後就是找不到war包,查了半天資料才發現solr新版本已經不提供war包了。
3、項目環境
java:Jdk1.8
solr:solr-8.4.1
linux:Centos7
分詞器:IK分詞器
4、Solr安裝
4.1、安裝Jdk
之前寫的帖子中有詳細關於jdk環境部署的教程 : https://blog.csdn.net/jrgdspuwij/article/details/104239983
4.2、下載Solr安裝包
下載地址 : https://archive.apache.org/dist/lucene/solr/
我下載的是solr-8.4.1.tgz 版本。
4.3、上傳solr安裝包
cd /opt #打開上傳文件夾
rz #上傳文件
tar -zxvf solr-8.4.1.tar #解壓
cd solr-8.4.1 #進入加壓後目錄
4.4、測試啓動Solr
cd bin #打開bin文件夾
./solr start -force #啓動solr
看到截圖中內容說明項目已經啓動,項目默認啓動是8983端口
測試登錄網址:http://192.168.1.243:8983/solr 檢查是否啓動成功(ip按照實際部署環境ip填入)
看到以上截圖說明Solr已經啓動成功。(打開建議使用google瀏覽器chrome,頁面存在瀏覽器兼容性問題有的瀏覽器打開後,左側按鈕點擊後沒有反應)
4.5、Solr查看服務狀態命令
cd /opt/solr-8.4.1/bin #進入solr的bin文件夾下
./solr status #查看solr的啓動狀態
4.6、Solr關閉服務命令
cd /opt/solr-8.4.1/bin #進入solr的bin文件夾下
./solr stop #查看solr的啓動狀態
4.7、Solr重啓服務命令
cd /opt/solr-8.4.1/bin #進入solr的bin文件夾下
./solr restart -force #查看solr的啓動狀態
4.7、引入IK分詞器
4.7.1 打開solr網頁,創建core
登錄http://ip:port/solr網址中,創建core_admin
創建:dev_core
點擊Add Core 會提示報錯,原因是沒有找到對應的目錄以及目錄中應該有的配置文件
解決辦法:
cd /opt/solr-8.4.1/server/solr #打開solr對應路徑,會發現dev_core文件夾已經被創建
需要將實際應有配置文件拷貝到該目錄下,可從/opt/solr-8.4.1/example/example-DIH/solr/db 中複製conf文件夾過去。
拷貝之後截圖
此時在回到網頁上,點擊add_core,提示成功創建。
4.7.2 引入IK分詞器所需要的jar包
下載地址 : 鏈接:https://pan.baidu.com/s/1-QNVeNCK1UQPnqMRyjwn-Q 提取碼:mg1r
按照截圖內容中標註進行拷貝。
4.7.3 修改配置文件引入IK分詞器
cd /opt/solr-8.4.1/server/solr/dev_core/conf #進入配置文件目錄
vim managed-schema #修改配置文件
在managed-schema底部增加如下內容
<fieldType name="text_ik" class="solr.TextField">
<analyzer type="index" useSmart="false"
class="org.wltea.analyzer.lucene.IKAnalyzer" />
<analyzer type="query" useSmart="true"
class="org.wltea.analyzer.lucene.IKAnalyzer" />
</fieldType>
4.7.4 修改後重啓solr服務
./solr restart #重啓服務
4.7.5 測試IK分詞器
測試可看到,可以選擇到新增加的text_ik這個類型,也可以分詞成功。
4.8 mysql數據與solr同步在這裏插入代碼片
4.8.1 導入相關jar包
放入數據庫連接jar包,我的數據庫是mysql的所有放入mysql-connector-java-5.1.46.jar
cd /opt/solr-8.4.1/server/solr-webapp/webapp/WEB-INF/lib #在這個位置放入jar包
4.8.2 修改solr連接數據庫配置文件
db-data-config.xml和managed-schema中進行配置
cd /opt/solr-8.4.1/server/solr/dev_core/conf #進入路徑中
vim db-data-config.xml #修改連接數據庫配置文件
<dataConfig>
<dataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/myschool?charactorEncoding=utf-8" user="root" password="root" />
<document>
<entity name="item" query="select * from student" pk="id">
<field column="id" name="id" />
<field column="stuname" name="stuname" />
<field column="password" name="password"/>
</entity>
</document>
</dataConfig>
DataSource:數據庫連接信息
Entity:對應數據庫的數據表
Field:數據庫字段,對應於solr的schema.xml中的 field 字段。其中 column 表示數據庫字段名,name 表示 field 的 name。
4.8.3 登錄solr頁面,進行數據同步