Solr 如何查询和分析int值

Solr 如何查询和分析int值,solr,lucene,schema,Solr,Lucene,Schema,我在SOLR/Lucen中有一个整数值。 当我在其中搜索值时,人们可能会在查询中添加前缀: 该字段是一个ID。因此对于ID=900的项目,人们可能会搜索“900”或“it900”或“it-900”,因为这是我们表示项目的方式(categort+'-'+ID) 现在,我去掉代码中所有的非数字字符。在我看来,从逻辑上讲,SOLR模式中应该有一种简单的方法来实现这一点 我尝试为整数字段定义查询分析器。但是,Lucen不喜欢INT字段的分析器 错误消息: FieldType: TrieIntField

我在SOLR/Lucen中有一个整数值。
当我在其中搜索值时,人们可能会在查询中添加前缀: 该字段是一个ID。因此对于ID=900的项目,人们可能会搜索“900”或“it900”或“it-900”,因为这是我们表示项目的方式(categort+'-'+ID)

现在,我去掉代码中所有的非数字字符。在我看来,从逻辑上讲,SOLR模式中应该有一种简单的方法来实现这一点

我尝试为整数字段定义查询分析器。但是,Lucen不喜欢INT字段的分析器 错误消息:

FieldType: TrieIntField (int) does not support specifying an analyzer
字段为(如上所述,分析仪不工作)



你知道我是如何定义的吗?

你能在(比如)文本字段上指定过滤器,然后将该字符串字段的内容复制到int字段吗?这似乎是最简单的处理方法。

您可以在(比如)文本字段上指定筛选器,然后将该字符串字段的内容复制到int字段吗?这似乎是最简单的处理方法。

您可以在(比如)文本字段上指定筛选器,然后将该字符串字段的内容复制到int字段吗?这似乎是最简单的处理方法。如果这是索引过程中的一个问题,它会起作用。唉,问题出在查询过程中。除非,也有一种查询的方法?我想你不能重新索引?因为如果你能够重新编制索引,你可以按照我上面概述的步骤进行。对不起,你的过程似乎确实有效,但我需要更多的测试,你能把这作为一个答案吗?你能在(比如)文本字段上指定过滤器,然后将该字符串字段的内容复制到int字段吗?这似乎是最简单的处理方法。如果这是索引过程中的一个问题,它会起作用。唉,问题出在查询过程中。除非,也有一种查询的方法?我想你不能重新索引?因为如果你能够重新编制索引,你可以按照我上面概述的步骤进行。对不起,你的过程似乎确实有效,但我需要更多的测试,你能把这作为一个答案吗?
        <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>