solr學習之路 配置文件的講解以及頁面客戶端的使用

爲什麼我們學習頁面客戶端,其實在開發中幾乎不會使用到頁面客戶端。但爲什麼要學,原因就是後面使用代碼控制solr其實就是自己寫代碼實現頁面客戶端的各種功能。
總之,學習頁面客戶端的使用對我們入門solr是十分重要的
這裏只介紹solr的核心功能的介紹。

頁面主要功能
這裏寫圖片描述

分詞器
這裏寫圖片描述

你可能注意到了,分詞方式是什麼,還記得我們配置ikanalyze時在schema.xml中添加的配置嗎

 <!-- IKAnalyzer-->
    <fieldType name="text_ik" class="solr.TextField">
      <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
    </fieldType>


<!--IKAnalyzer Field-->
   <field name="title_ik" type="text_ik" indexed="true" stored="true" />
   <field name="content_ik" type="text_ik" indexed="true" stored="false" multiValued="true"/>

趁機我們來講講schema.xml中的配置

fieldType
name:是這個FieldType的名稱
class:是Solr提供的包solr.TextField,solr.TextField 允許用戶通過分析器來定製索引和查詢,分析器包括一個分詞器(tokenizer)和多個過濾器(filter)
positionIncrementGap:可選屬性,定義在同一個文檔中此類型數據的空白間隔,避免短語匹配錯誤,此值相當於Lucene的短語查詢設置slop值,根據經驗設置爲100。

在FieldType定義的時候最重要的就是定義這個類型的數據在建立索引和進行查詢的時候要使用的分析器analyzer,包括分詞和過濾

索引分析器中:使用solr.StandardTokenizerFactory標準分詞器,solr.StopFilterFactory停用詞過濾器,solr.LowerCaseFilterFactory小寫過濾器。
搜索分析器中:使用solr.StandardTokenizerFactory標準分詞器,solr.StopFilterFactory停用詞過濾器,這裏還用到了solr.SynonymFilterFactory同義詞過濾器

field
name(名稱),
type(爲之前定義過的各種FieldType),
indexed(是否被索引),
stored(是否被儲存),
multiValued(是否存儲多個值)等屬性。
multiValued:該Field如果要存儲多個值時設置爲true,solr允許一個Field存儲多個值,比如存儲一個用戶的好友id(多個),商品的圖片(多個,大圖和小圖),通過使用solr查詢要看出返回給客戶端是數組:

copyField
copyField複製域,可以將多個Field複製到一個Field中,以便進行統一的檢索:
比如,輸入關鍵字搜索title標題內容content

   <copyField source="title" dest="text"/>
   <copyField source="author" dest="text"/>
   <copyField source="description" dest="text"/>

上面的配置意思是將title域author域description域複製到text域
當搜索text域時也會去title域author域description域中搜索

dynamicField
動態字段就是不用指定具體的名稱,只要定義字段名稱的規則,例如定義一個 dynamicField,name 爲_i,定義它的type爲text,那麼在使用這個字段的時候,任何以_i結尾的字段都被認爲是符合這個定義的, 就是任意匹配的意思

schema.xml配置講解差不多了。
繼續講解頁面客戶端的使用
創建索引
這裏寫圖片描述

查詢
這裏寫圖片描述

到此配置文件和客戶端基本功能瞭解完成
你有沒有發現一個一個的添加數據很煩,數據庫裏的大量文件如何批量導入呢
下一篇 solr 學習之路 如何將數據庫中大量的數據導入solr <三>

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