springboot整合solr8(一)

環境:ubuntu18 + springboot2.0 + solr-8.0.0

第一部分 安裝solr

先去官網下載solr:Index of /apache/lucene/solr/8.0.0
我這裏下載的是zip的包,下載之後unzip命令解壓得到下列文件:
clipboard.png

進入bin目錄,執行sudo ./solr -start 命令,
這裏可能遇到的錯誤有兩個:

  1. 會提示找不到JAVA_HOME,解決方法是在solr中加入 export JAVA_HOME='你的JDK路徑'即可;
  2. root啓動需要添加-force參數,錯誤信息如下:

clipboard.png

好吧,再次運行sudo ./solr start -force,運行成功。
clipboard.png

solr的默認端口是8983,打開瀏覽器輸入localhost:8983,可以看到solr已經可以訪問了~
clipboard.png

第二部分 創建核心(core),並導入mysql數據

選擇左側CoreAdmin,再選擇Add Core,輸入核心的名稱和實例路徑,後邊三個默認就好。

clipboard.png

點擊Add Core提交信息,這裏我遇到了一個錯誤信息,如下:

clipboard.png

意思是在覈心目錄下找不到相應的配置文件,解決辦法:將下圖的conf文件夾cope到新創建的core目錄下 /usr/local/solr-8.0.0/server/solr/new_core2

clipboard.png

重新點擊Add Core,創建成功~

clipboard.png

接下來導入MySQL中的數據,我們會用到Solr自帶的DIH(DataImportHandler)去進行數據導入。
這一步需要導入三個jar包(solr-dataimporthandler-8.0.0.jarolr-dataimporthandler-extras-8.0.0.jarmysql-connector-java-8.0.15.jar),編輯三個文件(db-data-confg.xmlsolrconfig.xml以及managed-schema)。

導入jar包

進入到/usr/local/solr-8.0.0/dist目錄,將solr-dataimporthandler-8.0.0.jarsolr-dataimporthandler-extras-8.0.0.jar複製到/usr/local/solr-8.0.0/server/solr-webapp/webapp/WEB-INF/lib,再去mvn倉庫下載一個mysql-connector-java的包,也複製到這裏。

編輯配置文件

  • 首先需要我們進入到/usr/local/solr-8.0.0/example/example-DIH/solr/db/conf 目錄,拷貝db-data-config.xml 到我們剛纔複製的conf文件夾內/usr/local/solr-8.0.0/server/solr/new_core2/conf,可以隨意修改一個文件名,也可以用他默認的,如下,我改成了mysql-db.xml:

clipboard.png

編輯該文件vim mysql-db.xml,將原本的內容修改成我們自己的需求:
修改dateSource:

<dataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/dbname" user="root" password="" />

加入entity:
圖片描述

  • 接着退出,編輯另一個文件solrconfig.xml,添加如下信息:
  <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
    <lst name="defaults">
      <str name="config">mysql-db.xml</str>
    </lst>
  </requestHandler>

mysql-db.xml就是剛纔copy的db-data-config.xml的文件名。

  • 保存退出,編輯managed-schema,加入
<!-- custom fields-->
<field name="title" type="string" indexed="true" stored="true"/>
<field name="content" type="string" indexed="true" stored="true"/> 
<field name="labels" type="string" indexed="true" stored="true"/> 

保存 --> 退出 --> 重啓solr, sudo ./solr restart -force

再次打開localhost:8983管理頁面,選擇新創建的核心 --> 選擇 DateImport --> 選擇 full-import 全量導入 --> 提交 --> 點擊Refresh刷新,可以看到導入成功的提示:

clipboard.png

至此,數據導入就完畢了!

之後的文章我們會加入中文分詞以及如何在springboot項目中使用solr

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章