ここで説明したのと基本的に同じ問題があります: Solr wildcard query with whitespaceですが、この質問には回答がありませんでした。
「ブランド」というフィールドのフィルタ クエリでワイルドカードを使用しています。
ブランド名に空白が含まれていると困ります。たとえば、ブランド「Lexington」のフィルタリングは、fq={!tag=brand}brand:Lexing*n と言うと問題なく機能します。ただし、「Athentic Models」のような複数の単語からなるブランドは問題を引き起こします。名前の前後に二重引用符を含める必要があるようです。
"s がある場合、*s は何もしません。つまり、brand:"Athentic Mode*" または brand:"Lexingt*" は、何にも一致しません。二重引用符がなければ、brand:Authen* と指定しても機能します。引用符なし、スペースなし、それは Authentic Models と一致します. しかし、空白がブランド名に含まれると、一致するときに最初のスペースまでの文字列のみが考慮されるようです.
ブランドフィールドのタイプは
<fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/>
私の理解では、これはトークン化された空白ではありません。ただし、空白のトークン化されたフィールドから copyField が取り込まれます。
Solr が二重引用符を使用せずにフィルター クエリをトークン化するのを止めるためにできることはありますか?