solr的域


solrhom相當於存放數據的地方,里面一個個文件相當於數據庫,每個數據庫里面有兩個文件夾,一個data,一個conf,conf下有一個schema.xml文件,配置域,相當於表的字段。

solr中內置了許多的字段類型

參照Solr中的字段類型field type

配置域

域相當於數據庫的表字段,用戶存放數據,因此用戶根據業務需要去定義相關的Field(域),一般來說,每一種對應着一種數據,用戶對同一種數據進行相同的操作。

域的常用屬性:

  • name:指定域的名稱
  • type:指定域的類型
  • indexed:是否索引
  • stored:是否存儲
  • required:是否必須
  • multiValued:是否多值
一般域的配置:
<field name="item_goodsid" type="long" indexed="true" stored="true" />
 

域為item_goodsid我們在使用spring data solr 的時候會用到這個域

type就是指定這個域存放的數據類型

indexed=true就是需要索引

 

復制域

復制域的作用在於將某一個Field中的數據復制到另一個域中

一般 不需要存儲,需要索引,type為ik分詞

<!-- 復制域 -->
  <field name="item_keywords" type="text_ik" indexed="true" stored="false" multivalued="true"/>
    <copyField source="item_title" dest="item_keywords"/>
   <copyField source="item_category" dest="item_keywords"/>
   <copyField source="item_seller" dest="item_keywords"/>
   <copyField source="item_brand" dest="item_keywords"/>

動態域

動態域的配置:
 <dynamicField name="attr_*" type="string" indexed="true" stored="true" multiValued="true"/>
參數:   source:原來域
          dest:指定域(即:將原來域復制到該指定域)
復制域常用於多域搜索,如:電商項目中搜索商品,既要在名字域中搜索也要在描述域中搜索,傳統的做法需要手工寫兩次,而solr想發送一次請求,可到兩個域中搜索,為此,引入了復制域的概念,將兩個域的域名復制到一個text文本域中。

 

主鍵

<uniqueKey>id</uniqueKey>

文檔的唯一標識,對應field里name="id"的那個字段, 必須填寫這個field(除非該field被標記required="false"),否則solr建立索引報錯。

 

常用的類型

String--->solr.StrField
boolean--->solr.BoolField
int--->solr.TrieIntField
float--->solr.TrieFloatField
long--->solr.TrieLongField
double--->solr.TrieDoubleField
text_general--->solr.TextField

 

 

自定義的域(參考)

<schema>

  。。。。。。


<!-- 基本字段 -->
    <!-- 商品id -->
    <field name="item_goodsid" type="long" indexed="true" stored="true"/>
    <!-- 商品標題 -->
    <field name="item_title" type="text_ik" indexed="true" stored="true"/>
    <!-- 商品價格 -->
    <field name="item_price" type="double" indexed="true" stored="true"/>
    <!-- 商品圖片 -->
    <field name="item_image" type="string" indexed="false" stored="true" />
    <!-- 商品種類 -->
    <field name="item_category" type="string" indexed="true" stored="true" />
    <!-- 商品賣家 -->
    <field name="item_seller" type="text_ik" indexed="true" stored="true" />
    <!-- 商品 品牌 -->
    <field name="item_brand" type="string" indexed="true" stored="true" />
    
    <!-- 復制域  標題+種類+賣家+品牌 -->
    <field name="item_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>
    <copyField source="item_title" dest="item_keywords"/>
    <copyField source="item_category" dest="item_keywords"/>
    <copyField source="item_seller" dest="item_keywords"/>
    <copyField source="item_brand" dest="item_keywords"/>
    
    <!-- 動態域 -->
    <dynamicField name="item_spec_*" type="string" indexed="true" stored="true" />
</schema>
{
    "id": "1",
    "item_goodsid": 1111,
    "item_title": "128G的華為p30",
    "item_price": 3888.8,
    "item_image": "http://1.jpg",
    "item_category": "手機",
    "item_seller": "張三店鋪",
    "item_brand": "華為",
    "item_spec_size": "3.5mm"
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM