環(huán)境:window7+solr6.5.1
0 啟動solr
0.1 通過實現(xiàn)配置好的techproducts示例內(nèi)核啟動Solr搜索服務(wù)器:
bin\solr -e techproducts
0.2 解釋過程
輸入命令之后,先執(zhí)行的是啟動Solr服務(wù)器

啟動
沒有techproducts項目,新建techproducts

新建
post數(shù)據(jù),向techproducts上傳14個示例文件

post
1 理解索引
1.1 定位techproducts所在目錄
F:\solr-6.3.0\solr-6.3.0\example\techproducts
打開該目錄,該目錄下還有兩個子文件夾:logs和solr,logs用來記載內(nèi)核運行的日志,solr是內(nèi)核的核心,一切操作都將在這里進行。
1.2 定位techproducts索引數(shù)據(jù)位置
F:\solr-6.3.0\solr-6.3.0\example\techproducts\solr\techproducts\data
1.3 下載索引數(shù)據(jù)到本地
由于我是在本地搭建的環(huán)境,所以索引數(shù)據(jù)就存儲在本地,無需再下載。
1.4 使用Luke查看索引數(shù)據(jù)
- 1.4.1 打開Luke窗口
雙擊luke-6.3.0目錄下的luke.bat文件,也可以通過命令行運行,先進入luke所在目錄,再輸入如下命令:
java -jar luke-with deps.jar

Paste_Image.png
- 1.4.2 打開techproducts的索引數(shù)據(jù)
在上圖的path中輸入techproducts的索引庫目錄,就可以索引數(shù)據(jù)。
overview選項卡:用來進行索引的一般性查看和操作的,比如索引目錄名,索引文件版本。。。等等概要信息,右上角三個按鈕分別可以重新打開索引,提交索引更改和關(guān)閉當前打開的索引,下面兩個list顯示詞和字段的相關(guān)信息。有時一個關(guān)鍵詞,對應(yīng)于多個文檔,所以文檔數(shù)要多于關(guān)鍵字數(shù)目。
Documents選項卡:用來進行文檔的操作和查看的,比如文件的刪除、添加。下面一個大listview就可以用來查看文檔的詳細信息。通過Document標簽可以查看各個Term,點擊show All,會進入search頁面,顯示使用term查詢,匹配的所有記錄。 這里的term就相當于查詢關(guān)鍵字。Term對應(yīng)的各個文檔,這里也可以show all,這會跳轉(zhuǎn)到Search標簽,也可以點擊Show Position顯示文檔的位置信息。 這里的term frequency是指 term在文檔中的出現(xiàn)次數(shù)。只有Show all,才會觸發(fā)Search,并跳轉(zhuǎn)到Search標簽。
Search選項卡:在這里進行索引的搜索測試,可以編寫lucene搜索語句,然后可以看到語句解析后的query樹,這樣就可以知道為什么有些查詢會查詢不到想要的信息,然后還可以選擇進行搜索的分詞器、默認字段和重復(fù)搜索次數(shù)的(可以通過多次搜索來獲取平均一個搜索過程的耗時長短,這個對查詢的性能測試時非常有用的),然后下面的listview中就會列出一個搜索的的文檔的所有保存的(store)字段的值,下面可以看到查詢花費的時間。在Search標簽頁里,點擊Explain structure,可以看到對查詢字符串的分詞結(jié)果。(在查詢輸入框)更新查詢字符串之后,需要點擊update,才會更新下面的字符。
Commits選項卡:用來查看每個索引相關(guān)文件的一些屬性的界面,具體的話,可以通過這個界面分析下索引文件的多少,是否需要優(yōu)化或者合并等等。
Plugins選項卡:可以看到luke提供的各種插件,我認為比較有用的還是那個分詞工具,提供一個分詞的類,然后下面文本框輸入一段文本,然后就可以讓這個工具幫你分詞,你可以看到詳細的分詞信息。然后還有一個Hadoop插件,支持從hadoop節(jié)點中獲取節(jié)點中文件的相關(guān)信息。Analyzer Tool,可以使用這個測試Analyzer的工具。
總而言之,Luke是一個用于Lucene搜索引擎的,方便開發(fā)和診斷的第三方工具,它可以訪問現(xiàn)有Lucene的索引,并允許用戶顯示和修改。 - 1.4.3 search使用

Paste_Image.png
由上圖可以看到,第一條搜索結(jié)果的score得分為1.4344.
1.5了解schema
1.5.1 定位 techproducts 的 schema 信息(managed-schema 文件),對照之前的索引情況,解讀其 schema 內(nèi)容

圖片.png
在techproducts的managed-shema中,定義了所需數(shù)據(jù)的所有字段,并對這些字段進行了設(shè)置,常用的幾個設(shè)置如下:
- type 分詞器選擇
- indexed 該字段是否可以檢索
- stored 該字段是否需要存儲
- multiValued 該字段的取值是否唯一
1.5.2 定位 techproducts 的被索引文檔(原始文檔),對照索引和 schema 情況,分析多個原始文檔的內(nèi)容構(gòu)成
被索引文檔中的字段在shema中都有定義,solr通過根據(jù)定義字段時的設(shè)置,選擇對應(yīng)的分詞器對該字段進行分詞,然后再對用戶輸入的詞進行分詞,兩者相互匹配,得出索引結(jié)果。
2 掌握Query查詢構(gòu)造#####

2.1
查詢請求:

2.1請求
查詢結(jié)果:

2.1結(jié)果

2.2
查詢請求:

2.2請求
查詢結(jié)果:

2.2結(jié)果

2.3
查詢請求:

2.3請求
查詢結(jié)果:

2.3結(jié)果
這沒啥可說的,主要是了解對field范圍的限定。

2.4
查詢請求:

2.4請求
查詢結(jié)果:

2.4結(jié)果

2.5
查詢請求:

2.5請求
查詢結(jié)果:

2.5結(jié)果

2.6
查詢請求:

2.6請求
查詢結(jié)果:

2.6結(jié)果