hbase—为什么copyfield不能在solr中使用patternreplacecharfilterfactory

m0rkklqb  于 2021-06-09  发布在  Hbase
关注(0)|答案(1)|浏览(414)

我的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>
oprakyz7

oprakyz71#

你可能不想 $ 在这里,因为它意味着“字符串的结尾”,意思是唯一匹配的东西是任何不是空白的东西,并且正好是九个字符长的东西。您还想添加 replacement="" 说它应该被移除。
您还可以使用admin页面下的“analysis”页面(至少对于native solr,我猜cloudera也有相同的可用功能)查看字段分析链中每个步骤的文本处理方式。
copyfield不应该与此相关,因为copyfield指令发生在调用任何字段定义之前很久。

相关问题