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