1. 程式人生 > 其它 >Solr的schema.xml(managed-schema)檔案

Solr的schema.xml(managed-schema)檔案

* 新版改名為managed-schema,沒有後綴.xml

作用:

schema.xml這個配置檔案的根本目的是為了通過配置告訴Solr如何建立索引。 solr的資料結構:
  • document:一個文件、一條記錄
    • field:域、屬性
solr通過搜尋某個或某些field,返回若干個符合條件的document,或者按搜尋的score排序返回。 如果跟資料庫對比,document相當於資料庫的表,field相當於表中的欄位。而schema.xml就是為了定義一個表的結構(定義各個field的名字、型別、約束、等等)。 schema.xml的基本結構: <schema> <types> <fields> <uniqueKey> <copyField> </schema> 常用的配置說明:
  • field:定義一個document中的各個fields
    • name:必填。該field的名字。前後都有下劃線的name是系統保留的名字,比如“_version_”
    • type:必填。型別,對應於fieldType的name
    • default:該field的預設值
    • indexed:true/false,是否為該field建立索引,以讓使用者可以搜尋它、統計它(facet)
    • stored:true/false,定義這個field是否可以返回給查詢者
    • multiValued:true/false,是否可以容納多個值(比如多個copyField的dest指向它)。如果是true,則該field不能被排序、不能作為uniqueKey
    • required:true/false,告訴solr這個field是否接受空值,預設為false
    • docValues:true/false,建立document-to-value索引,以提高某些特殊搜尋的效率(排序、統計、高亮)
  • copyField:把一個field的內容拷貝到另外一個field中。一般用來把幾個不同的field copy到同一個field中,以方便只對一個field進行搜尋
    • source:被拷貝的field,支援用萬用字元指定多個field,比如:*_name
    • dest:拷貝到的目的field
    • maxChars:最大字元數
  • uniqueKey:指定一個field為唯一索引
  • fieldType:定義field的型別,包括下面一些屬性
    • name:必填,被field配置使用
    • class:必填,filedType的實現類。solr.TextField是路徑縮寫,"等價於"org.apache.solr.schema.TextField"
    • multiValued:?
    • positionIncrementGap:指定mutiValued的距離
    • ananlyzer:如果class是solr.TextField,這個配置是必填的。告訴solr如何處理某些單詞、如何分詞,比如要不要去掉“a”,要不要全部變成小寫……
      • type:index或query
      • tokenizer:分詞器,比如:StandardTokenizerFactory
      • filter:過濾器,比如:LowerCaseFilterFactory
  • dynamicField:用萬用字元定義一個field來存在沒有被field定義的漏網之魚
    • name:使用萬用字元,比如“*_i”,來處理類似“cost_i”之類的field

引用地址:https://www.jb51.cc/xml/296300.html