1. 程式人生 > >solr 7.4.0使用教程

solr 7.4.0使用教程

本文摘要

一、下載與安裝

二、執行solr     

三、建立core例項

四、配置schema

五、DIH匯入資料

六、solrJ(java客戶端)

本文所用到的工具

一、下載與安裝:

2.      下載完成後會得到一個壓縮包,解壓後會獲得一個solr_7.4.0資料夾,此資料夾目錄結構如下圖

          

二、執行solr

Solr的執行分為單機執行和叢集執行,這裡以單機為例:

1.      在bin目錄下執行bin/solr start 此命令會啟動solr應用伺服器預設埠為8983,如果想指定埠號啟動可以加引數–p例 如:solr start –p 8888.

如圖這句提示出現後證明服務啟動成功(啟動過程中如果列印java異常堆疊log4j2.xml 檔名、目錄名或卷標語法不正確。沒有關係不妨礙我們正常使用solr可以忽略此問題),接下來在瀏覽器輸入http://localhost:8888/solr可以進入Admin UI介面驗證是否啟動成功如下圖

此介面是用來管理solr的,此時solr伺服器已經可以啟動成功啦下面介紹一下其他比較常用的solr命令。

2. solr常用命令:

solr start –p 埠號 單機版啟動solr服務

solr restart –p 埠號 重啟solr服務

solr stop –p 埠號關閉solr服務

solr create –c name 建立一個core例項(core概念後面介紹)

三、建立core例項:

1.      core簡介:簡單說core就是solr的一個例項,一個solr服務下可以有多個core,每個core下都有自己的索引庫和與之相應的配置檔案,所以在操作solr建立索引之前要建立一個core,因為索引都存在core下面。

2.      core建立:core的建立方式有很多種一下列出兩種比較方便的。

(1)      在bin目錄下執行solr create –c name,建立一個core,預設創建出來的位置如下圖

                

(2)      第二種方式是直接使用AdminUI頁面建立一個core,如下圖

                

四、  配置schema

1.      schema簡介:

       schema是用來告訴solr如何建立索引的,他的配置圍繞著一個schema配置檔案,這個配置檔案決定著solr如何建立索引,每個欄位的資料型別,分詞方式等,老版本的schema配置檔案的名字叫做schema.xml他的配置方式就是手工編輯,但是現在新版本的schema配置檔案的名字叫做managed-schema,他的配置方式不再是用手工編輯而是使用schemaAPI來配置,官方給出的解釋是使用schemaAPI修改managed-schema內容後不需要重新載入core或者重啟solr更適合在生產環境下維護,如果使用手工編輯的方式更改配置不進行重載入core有可能會造成配置丟失,配置檔案所在的路徑如下圖:

                

2.      schema主要成員:

(1)      fieldType:為field定義型別,最主要作用是定義分詞器,分詞器決定著如何從文件中檢索關鍵字。

(2)      analyzer:他是fieldType下的子元素,這就是傳說中的分詞器,他由一組tokenizer和filter組成,如下圖所示

(3)      field:他是建立索引用的欄位,如果想要這個欄位生成索引需要配置他的indexed屬性為true,stored屬性為true表示儲存該索引。如下圖所示每個field都要引用一種fieldType由type屬性定義

3.      Schema API:

Schema API其實就是用post請求向solr伺服器傳送攜帶json引數的請求,所有操作內容都封裝在json中,如果是linux系統直接使用curl工具,如果是windows系統推薦使用Postman

這裡以新增一個field為例,下面列出其他API:

add-field: add a new field with parameters youprovide.

delete-field: delete a field.

replace-field: replace an existing field withone that is differently configured.

4.中文分詞器:

solr自帶了一些中文分詞器,比較好用的是SmartChineseAnalyzer,但是擴充套件性比較差不能自定義擴充套件中文詞庫,所以這裡選擇使用IKAnalyzer,這是第三方的一個分詞器可以很好的擴充套件中文詞庫,IKAnalyzer下載後解壓會有如下檔案

把核心jar檔案複製到solr WEB應用的lib資料夾下,如下圖

把配置檔案和詞庫等檔案複製到WEB應用的classes資料夾下,如果子WEB-INF下沒有這個資料夾自己建立即可,如下圖:

如果想要擴充套件詞庫可以在ext.dic檔案中配置自定義的中文片語,例如:誅仙這個片語,這個分詞器的演算法是算不出來的但是通過我們自定義詞庫,分詞器也可以把誅仙列出關鍵詞。

    上圖是ext.dic檔案中的內容,注意編輯此檔案時字元編碼最好是UTF-8無BOM模式,這個可以通過EditPlus等文字編輯工具設定。下面開始在Schema中應用分詞器如下圖:

定義了一個text_ik這個欄位型別並採用Ik分詞器,接下來在field元素定義式指定type=text_ik就可以把這個分詞器應用在這個field中。

接下來我們來驗證下ik分詞器,如下圖:

五、DIH匯入索引資料

1.      DIH簡介:

DIH全稱是Data Import Handler 資料匯入處理器,顧名思義這是向solr中匯入資料的,我們的solr目的就是為了能讓我們的應用程式更快的查詢出使用者想要的資料,而資料儲存在應用中的各種地方入xml、pdf、關係資料庫中,那麼solr首先就要能夠獲取這些資料並在這些資料中建立索引來達成快速搜尋的目的,這裡就列舉我們最常用的從關係型資料庫中向solr匯入索引資料。

2.      在我們自己建立的core的目錄下有conf目錄,這裡面有著幾個很重要的配置檔案,之前我們用到的managed-schema(老版本是schema.xml)也在其中,另外還有一個solrconfig.xml檔案,這是我們DIH配置的第一步,需要在此檔案中配置資料匯入檔案的對映位置如下圖:

第二步配置資料匯入檔案,這個檔案可以在solr根目錄下的示例檔案中copy一份到core/conf目錄下,也就是跟solrconfig.xml在一個目錄下,因為solrconfig.xml中配置的相對路徑就是這裡,當然也可以寫絕對路徑。如下圖:

Copy過去之後這個檔名可以自定義,我就改成了MyDataConfig.xml,下面開始配置如下圖:

(1)首先配置資料來源關係型資料庫基本四項,驅動類,url,使用者名稱,密碼。

(2)配置document,可以把它當作與mysql中資料庫一個層級的物件。

(3)配置entity,可以把它當作與資料庫中一個表對應,在query中書寫查詢sql。

(4)配置field與表中的欄位與之對應。

        注意這裡容易與schema中的配置混淆,我的理解是schema中配置的是建立索引的配置,而索引的建立需要有資料基礎,而現在講的資料匯入檔案就是建立索引的資料基礎,他是建立索引的元資料。現在配置檔案完成後可以用DIH命令執行了。

3.      DIH 命令

DIH命令就是用來執行資料匯入的,命令種類繁多這裡只列出簡單常用。DIH命令採用的方式是URL的方式。

full-import:全部資料匯入例如:

接下來驗證下資料是否真的匯入成功了,如下圖

六、solrJ(java客戶端)

簡介:solrJ是java訪問solr的客戶端工具包,solr也提供了其他語言訪問的客戶端,可以到官方文件檢視,現在solr的索引和資料匯入都已經有,但是作為專案中應用的一個元件,少不了java與solr的溝通。

1.      匯入solrJ依賴

如果你是用的是依賴管理工具如maven那麼很簡單直接新增依賴。

<dependency>

 <groupId>org.apache.solr</groupId>

 <artifactId>solr-solrj</artifactId>

 <version>7.4.0</version>

</dependency>

2.從solr中查詢索引

3. 向solr新增更改索引

(1)java實體物件與solr索引對映

(2)向solr新增或更新索引,如果此實體在solr索引庫中已有則作為更新操作

轉載文章多多包涵