2016-01-27 54 views
0

中使用PatternReplaceCharFilterFactory我的solr雲版本是coudera cdh5.4.7中的4.10.3。我想使用copyfield將hbase rowkey複製到另一個字段並使用PatternReplaceCharFilterFactory刪除某些模式。但它沒有工作。當我搜索文檔時,rowkey_column和rowkey是相同的,不會削減任何內容。例如,rowkey是爲什麼copyfield無法在solr

"HDSA00_01$41872607-9_11654094_1001292270_1443404975000$0"
,而rowkey_column必須是
"41872607-9_11654094_1001292270_1443404975000$0"
。但是我得到了rowkey.Why?請幫助我!
 
My config in schema.xml is here,rowkey is a string type:

<field name="rowkey_column" type="rowkeyColumn" indexed="true" stored="true" /> 
<copyField source="rowkey" dest="rowkey_column"/> 
<fieldType name="rowkeyColumn" class="solr.TextField"> 
    <analyzer> 
    <charFilter class="solr.PatternReplaceCharFilterFactory" pattern="^\S{9}\$|^HealthArchives\$" maxBlockChars="20000" /> 
    <tokenizer class="solr.KeywordTokenizerFactory"/> 
    </analyzer> 
</fieldType> 

回答

0

你可能不希望$那裏,因爲它意味着「字符串的結束」,這意味着將要匹配的唯一的事情是什麼,這不是空白,並準確長九個字符。你也想添加replacement=""來表示它應該被刪除。

您還可以使用管理頁面下的「分析」頁面(至少對於本機Solr,我猜Cloudera具有相同的功能)可以準確查看分析鏈中每個步驟的文本處理方式領域。

copyField不應與此相關,因爲copyField指令在調用任何字段定義之前很久就會發生。

+0

更換=「」是不是默認 – lyxing

+0

我使用關注回答自己:?<字段類型名稱= 「rowkeyColumn」 級= 「solr.TextField」> lyxing