W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
最高級(jí)別的 schema.xml 結(jié)構(gòu)如下。
這個(gè)例子不是真正的 XML,但它為您提供了文件結(jié)構(gòu)的概念。
<schema>
<types>
<fields>
<uniqueKey>
<copyField>
</schema>
顯然,大部分的興奮是在 types 和 fields 中,其中字段類型和實(shí)際字段定義的存在。
這些由 copyFields 補(bǔ)充。
必須始終定義 uniqueKey。
類型和字段是可選的標(biāo)記:請注意, "types" 和 "fields" 部分是可選的,這意味著您可以在頂層上自由搭配field
、dynamicField
、copyField
和fieldType
定義。這允許在架構(gòu)中對相關(guān)標(biāo)記進(jìn)行更合理的分組。
對于一般的數(shù)字需求,可以考慮使用 IntPointField、LongPointField、FloatPointField 或 DoublePointField 類之一,具體取決于所期望的特定值。這些基于“維度點(diǎn)”的數(shù)字類使用特殊編碼的數(shù)據(jù)結(jié)構(gòu)來支持高效的范圍查詢,而不管所用范圍的大小。根據(jù)需要在這些字段上啟用 DocValues 進(jìn)行排序或刻面。
有些 Solr 功能可能還不能使用 "維度點(diǎn)",在這種情況下,您可能需要考慮等效的 TrieIntField、TrieLongField、TrieFloatField 和 TrieDoubleField 類。這些字段類型已被棄用,并可能在未來的主要 Solr 版本中被刪除,但仍可在必要時(shí)使用。配置 precisionStep="0" 如果希望最小化索引大小,但是如果您希望用戶對數(shù)值類型進(jìn)行頻繁的范圍查詢,請使用默認(rèn)的 precisionStep(不指定它)或?qū)⑵渲付?precisionStep="8"(默認(rèn)值)。這提高了范圍查詢的速度,但是增加了索引大小。
正確處理文本將使用戶感到滿意,為他們提供最佳的文本搜索結(jié)果。
一種方法是使用文本字段作為關(guān)鍵字搜索的全部功能。大多數(shù)用戶對他們的搜索并不熟悉,最常見的搜索可能是一個(gè)簡單的關(guān)鍵字搜索。您可以使用 copyField 各種字段,并將它們?nèi)繀R入到單個(gè)文本字段中以進(jìn)行關(guān)鍵字搜索。
在包含 Solr 的 "techproducts" 示例的 Schema.xml 文件中,copyField 聲明用于轉(zhuǎn)儲(chǔ) cat、name、manu、features,和 includes 的內(nèi)容成為單個(gè)字段:text。此外,最好將 ID 復(fù)制到 text 中,以防用戶希望通過將其產(chǎn)品編號(hào)傳遞給關(guān)鍵字搜索來搜索特定產(chǎn)品。
另一種方法是使用 copyField 以不同的方式使用相同的字段。假設(shè)您有一個(gè)作者列表的字段,如下所示:
Schildt, Herbert; Wolpert, Lewis; Davies, P.
對于作者搜索,您可以標(biāo)記字段,轉(zhuǎn)換為小寫,并刪除標(biāo)點(diǎn)符號(hào):
schildt / herbert / wolpert / lewis / davies / p
對于排序,只需使用 untokenized 字段,將其轉(zhuǎn)換為小寫字母,并刪除標(biāo)點(diǎn)符號(hào):
schildt herbert wolpert lewis davies p
最后,為了 faceting,僅通過 StrField 使用主作者:
Schildt, Herbert
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: