忽略斜杠顺序的Solr

忽略斜杠顺序的Solr,solr,datastax-enterprise,solr4,Solr,Datastax Enterprise,Solr4,我有一个名为:text 该字段包含如下值:12/1 还有:1/12 问题是当我查询时:文本:“1/*” 它还发现,12/1就像斜杠没有任何意义一样 如何按顺序限制结果 (我试过文本:“1\/*”但不起作用) 字段的类型: <fieldType class="org.apache.solr.schema.TextField" name="TextField"> 问题在于,您使用的是执行文本标记化的文本字段类型,然后是附加过滤,如小写等。在您的情况下,索引中没有值12/1,但对于第一个

我有一个名为:
text

该字段包含如下值:
12/1

还有:
1/12

问题是当我查询时:
文本:“1/*”

它还发现,
12/1
就像斜杠没有任何意义一样

如何按顺序限制结果

(我试过
文本:“1\/*”
但不起作用)

字段的类型:

<fieldType class="org.apache.solr.schema.TextField" name="TextField">

问题在于,您使用的是执行文本标记化的
文本字段类型,然后是附加过滤,如小写等。在您的情况下,索引中没有值
12/1
,但对于第一个和第二个值,您有两个值,
12
1
,因此,搜索
1/*
将与这两条记录匹配,因为搜索将针对输入标记化后生成的值
1

要防止字符串标记化,您需要:

  • 或者改用
    StrField
    type,但在这种情况下,管柱将按原样进行索引,无需下套管等
  • 如果希望使用小写等,则为字段定义一个新类型,但使用
    solr.KeywordTokenizerFactory
    作为标记器,并添加相应的过滤器

你可以在网上阅读更多。另外请注意,从第6版开始,
text
数据的默认类型是
StrField
,如果需要标记化等,则需要明确定义
TextField

我已将类型更改为StrField(重新索引所有内容),现在“1/*”根本不起作用,我也尝试了“1\/*”,知道为什么吗?抱歉,它起作用了,我只需要删除引号:1/*