如何将solr字符串字段截断为10个字符?

时间:2012-04-24 16:21:41

标签: solr indexing

我为索引创建了以下字符串字段。

<fieldType name="short_text_for_sort" class="solr.StrField" omitNorms="true" sortMissingLast="true" omitTermFreqAndPositions="true" positionIncrementGap="100">
  <analyzer type="index">
    <!-- TODO: truncate to 10 characters-->
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.ASCIIFoldingFilterFactory"/>
  </analyzer>
</fieldType>

如何将此字段限制为10个字符?我需要编写自己的过滤器吗?

2 个答案:

答案 0 :(得分:6)

一个选项:PatternTokenizerFactory并将输入正则表达为您需要的任何形式。

第二个选项:使用copyfield命令,将maxChars参数设置为10.

第三个选项:在数据进入solr之前处理此问题。

第二个选项可能是最简单的选项,可让您保持原始字段值不变。

答案 1 :(得分:0)

使用字长过滤器

<filter class="solr.LengthFilterFactory" min="1" max="10" />

http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.LengthFilterFactory

*编辑我可能弄错了。我不确定这会截断令牌(看起来它可能只是过滤令牌)