【Solr】- Field 域配置

Schema.xml:正則表達式

  1. 配置域名及域的類型等信息,Solr域先定義後使用數組

  2. solr core的conf目錄:配置域名及域的類型等信息,Solr中的域要先建立後使用ui

{"id":"change.me","title":"change.me"}

title表示域名,必須在schema.xml中的filed屬性指定配置,不然不能使用this

配置域Field:code

<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
  • name:域名xml

  • type:域名類型blog

  • indexed:是否索引索引

  • stored:域是否存儲可讀token

  • docValues:文檔值rem

  • multiValued:是否能夠多值,存儲多個值,數組存儲:商品大圖、中圖、小圖

  • required:是否必須,通常只有id設置,做爲搜索的主鍵

  • dynamicField:動態域:經過表達式的形式構建file名稱,相似正則表達式的表示

<dynamicField name="*_i"  type="int"    indexed="true"  stored="true"/>
name:動態域的名稱
type:動態域的類型

uniqueKey:主鍵域:必須在schema.xml中配置,每一個文檔中都應該有惟一主鍵

<uniqueKey>id</uniqueKey>

copyField:複製域:將原域的內容複製到目標域中,通常做爲默認域使用

<copyField source="cat" dest="text"/>

目標域:必須是multiValued類型

<field name="text" type="text_general" indexed="true" stored="false" multiValued="true"/>

FieldType: 域類型

<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
<!-- in this example, we will only use synonyms at query time
<filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
-->
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
  • name: 域類型名稱
  • class: 類型對應的solr類型
  • analyzer: 分析器 type="index":索引分詞:包含分詞器和過濾器
  • tokenizer:分詞器
  • Filter: 過濾器
  • analyzer type="query"

查詢分詞

相關文章
相關標籤/搜索