【发布时间】:2012-09-04 22:10:55
【问题描述】:
我和这里讨论的问题基本相同:Solr wildcard query with whitespace,但是这个问题没有得到回答。
我在名为“品牌”的字段的过滤查询中使用了通配符。
当品牌名称中包含空格时,我遇到了麻烦。例如,当我说 fq={!tag=brand}brand:Lexing*n 时,过滤品牌“Lexington”效果很好。然而,像“Athentic Models”这样的多词品牌会引起问题。似乎必须在名称周围包含双引号。
当有 "s,*s 不做任何事情,即品牌:"Athentic Mode*" 或品牌:"Lexingt*",不会匹配任何东西。没有双引号,它可以说品牌: Authen*,没有引号和空格,这将匹配 Authentic Models。但是一旦品牌名称中包含空格,匹配时似乎只考虑到第一个空格的字符串。
brand 字段的类型为
<fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/>
据我了解,这不是空格标记的。但是,它填充了来自空白标记化字段的 copyField。
我可以做些什么来阻止 Solr 在不使用双引号的情况下对过滤器查询进行标记?
【问题讨论】: