我在 SOLR/Lucen 中有一个整数值。
当我在其中搜索值时,人们可能会在查询中添加一个前缀:该字段是一个 ID。因此对于 id=900 的项目,人们可能会搜索“900”或“it900”或“it-900”,因为这是我们表示项目的方式(类别 +'-'+id)。
现在,我在我的代码中去除所有非数字字符。在我看来,从逻辑上讲,SOLR 模式中应该有一种简单的方法来实现这一点。
我尝试为整数字段定义查询分析器。但是,Lucen 不喜欢 INT 字段错误消息的分析器:
FieldType: TrieIntField (int) does not support specifying an analyzer
该字段是(分析仪不工作,如上所述)
<fieldType name="int" class="solr.TrieIntField" precisionStep="0" omitNorms="true" positionIncrementGap="0">
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.PatternReplaceFilterFactory" pattern="(\d+)" replacement="$1" />
</analyzer>
</fieldType>
知道我如何定义这个吗?