我在SOLR / Lucen中有一个整数值 当我在其中搜索值时,人们可能会在查询中添加前缀: 该字段是ID。因此,对于id = 900的项目,人们可能搜索“900”或“it900”或“it-900”因为这是我们表示项目的方式(categort +' - '+ 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>
知道我如何定义这个吗?
答案 0 :(得分:0)
您可以在(比方说)文本字段上指定过滤器,然后将该字符串字段的内容复制到int字段吗?这似乎是处理它的最简单方法。