W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵
您可能想要以多種方式解釋某些文檔字段。Solr 有一個復(fù)制字段的機(jī)制,以便您可以將多個不同的字段類型應(yīng)用于單個傳入的信息。
您要復(fù)制的字段的名稱是源,并且副本的名稱是目標(biāo)。在 schema.xml 中,復(fù)制字段非常簡單:
<copyField source="cat" dest="text" maxChars="30000" />
在這個例子中,我們希望 Solr 將 cat 字段復(fù)制到一個名為 text 的字段中。在分析完成之前將復(fù)制字段,這意味著您可以擁有兩個具有相同原始內(nèi)容的字段,但是它們使用不同的分析鏈并以不同的方式存儲在索引中。
在上面的示例中,如果 text 目標(biāo)字段在輸入文檔中具有自己的數(shù)據(jù),則 cat 字段的內(nèi)容將作為附加值添加 - 就像客戶端最初指定了所有值一樣。請記住將您的字段配置為 multivalued="true",如果它們最終將獲得多個值 (來自多項(xiàng)源或多個 copyField 指令)。
此功能的常見用法是創(chuàng)建單個“搜索”字段,當(dāng)用戶或客戶端未指定要查詢的字段時,該字段將用作默認(rèn)查詢字段。例如:title、author、keywords 和 body 都可能是默認(rèn)情況下應(yīng)搜索的字段,將每個字段的復(fù)制字段規(guī)則復(fù)制到統(tǒng)稱字段 (例如,它可以命名為任何內(nèi)容)。稍后,您可以在 solrconfig.xml 中設(shè)置一個規(guī)則,以在默認(rèn)情況下搜索 catchall 字段。其中一個警告是,當(dāng)使用復(fù)制字段時,你的索引將增長。但是,這是否會對您造成問題以及最終大小取決于正在復(fù)制的字段數(shù)、要復(fù)制的目標(biāo)字段數(shù)、正在使用的分析以及可用磁盤空間。
maxChars 參數(shù)是一個 int 參數(shù),用于在構(gòu)造添加到目標(biāo)字段的值時,為要從源值復(fù)制的字符數(shù)建立一個上限。此限制對于要從源字段復(fù)制某些數(shù)據(jù)的情況非常有用,而且還可以控制索引文件的大??小。
copyField 的源和目標(biāo)都可以包含前導(dǎo)或尾隨星號,這將匹配任何內(nèi)容。例如,下面的行將與通配符模式 * _t 匹配的所有傳入字段的內(nèi)容復(fù)制到文本字段中:
<copyField source="*_t" dest="text" maxChars="25000" />
Tip:只有當(dāng) source 參數(shù)也包含一個參數(shù)時,該 copyField 命令才可以在 dest 參數(shù)中使用通配符(*)。copyField 使用源字段中匹配的 glob dest 作為源內(nèi)容復(fù)制到的字段名稱。
復(fù)制是在流源級別完成的,并且不復(fù)制到另一個副本中。這意味著復(fù)制字段不能被鏈接,即不能從 here 復(fù)制到 there 然后從 there 復(fù)制到 elsewhere。但是,可以將相同的源字段復(fù)制到多個目標(biāo)字段:
<copyField source="here" dest="there"/>
<copyField source="here" dest="elsewhere"/>
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: