場景:Solr的copyField夾雜RegexTransformer
在我有分隔的一個名爲分類領域哪種類型的字符串,幷包含了許多數字管道,如1|8|90|130|
我想要什麼數據庫:
在Solr的指標,我想有2個字段:
-
個
- 領域分類 _ 管這將包含完全匹配的字符串作爲DB即
1|8|90|130|
- 領域分類這將是包含值1,8,90和130型INT的一個多值字段
對於後者,在實體規範我可以使用一個regexTransformer然後我指定的以下字段中的數據的config.xml: <field column="Categories" name="Navigation" splitBy="\|"/>
然後指定字段作爲多值在schema.xml中
我不知道的是我怎麼能'複製'相同的領域兩次,只執行一個正則表達式分裂。我知道有可以在schema.xml中定義的copyField
工具,但是我找不到一種方法來轉換複製的字段,因爲根據我所知(我可能在這裏錯了),變換器只能在實體規範中使用。
作爲一種變通方法我還可以從實體的查詢,但在現實中,場分類發送相同的字段兩次是計算字段(選擇嵌套的)這是有點昂貴,因此我想避免它。
任何幫助表示讚賞,謝謝。
感謝您的回答,但是我對第3點有疑問。雖然它是一個多值字段,但'stored'值仍然只是'1 | 8 | 90 | 130'的一個值。標記器對存儲的值沒有任何作用,它改變了該值的索引的內部結構。事實上,這就是你引用的問題所說的。 – mrd3650
我可能是錯的,但我不認爲PatternTokenizerFactory適用於複製字段的*存儲值*,至少這是我似乎遇到的問題。正則表達式效果在facet中顯示,但不在FieldSplit的存儲值中。 – ghukill