我的solr cloud版本是coudera cdh5.4.7中的4.10.3。我想使用copyfield将hbase rowkey复制到另一个字段,并使用patternreplacecharfilterfactory删除一些模式。但它不起作用。搜索文档时,rowkey\列和rowkey是相同的,不剪切任何内容。例如,rowkey是
"HDSA00_01$41872607-9_11654094_1001292270_1443404975000$0"
,并且rowkey\u列必须是
"41872607-9_11654094_1001292270_1443404975000$0"
但是我对罗基也一样。为什么?请帮帮我!
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>
1条答案
按热度按时间oprakyz71#
你可能不想
$
在这里,因为它意味着“字符串的结尾”,意思是唯一匹配的东西是任何不是空白的东西,并且正好是九个字符长的东西。您还想添加replacement=""
说它应该被移除。您还可以使用admin页面下的“analysis”页面(至少对于native solr,我猜cloudera也有相同的可用功能)查看字段分析链中每个步骤的文本处理方式。
copyfield不应该与此相关,因为copyfield指令发生在调用任何字段定义之前很久。