Solr 6.6.0 不区分大小写的查询不工作
Solr 6.6.0 Case Insensitive Query Not Working
Solr 6.6.0 不区分大小写的查询不工作。
我已经尝试了互联网上所有其他 option/answer。
我厌倦了,
<tokenizer class="solr.LowerCaseTokenizerFactory"/>
但它不起作用。
我厌倦了,
<filter class="solr.LowerCaseFilterFactory"/>
但它不起作用。
我已经厌倦了很多不同的方式,但是 none 工作。
即我想要使用 title_s:iPhone 和 title_s:iphone 搜索相同的结果。
我不确定什么会导致问题。
如果不区分大小写的搜索在 Solr 版本中不起作用,您会得到比一个堆栈溢出问题更多的噪音。
让我们用这个问题来说明每个人在使用 Solr 时应该遵循的基本方法:
1) 参考文档 - Solr 有一个很好的免费在线文档。
具体描述了如何配置 schema.xml 及其各个方面 [1]。
从那里您可以了解到将字段配置为不区分大小写非常简单:
<field name="title" type="text_case_insensitive" indexed="true" stored="true"/>
<fieldType name="text_case_insensitive" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
N.B。如果您在标题字段的架构中有先前的配置,则需要 re-index
[1]https://lucene.apache.org/solr/guide/6_6/field-type-definitions-and-properties.html
我尝试过很多不同的方法,但 none 行得通。
比我按照下面的方式实施并且工作正常。
让我知道下面的方法是否正确,但对我来说效果很好:)
我已经从架构中删除了以下代码,
<fieldType name="string" class="solr.StrField" sortMissingLast="true" docValues="true"/>
并添加(替换)下面的代码,
<fieldType name="string" class="solr.TextField">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
Solr 6.6.0 不区分大小写的查询不工作。 我已经尝试了互联网上所有其他 option/answer。
我厌倦了,
<tokenizer class="solr.LowerCaseTokenizerFactory"/>
但它不起作用。
我厌倦了,
<filter class="solr.LowerCaseFilterFactory"/>
但它不起作用。
我已经厌倦了很多不同的方式,但是 none 工作。
即我想要使用 title_s:iPhone 和 title_s:iphone 搜索相同的结果。
我不确定什么会导致问题。
如果不区分大小写的搜索在 Solr 版本中不起作用,您会得到比一个堆栈溢出问题更多的噪音。
让我们用这个问题来说明每个人在使用 Solr 时应该遵循的基本方法:
1) 参考文档 - Solr 有一个很好的免费在线文档。 具体描述了如何配置 schema.xml 及其各个方面 [1]。 从那里您可以了解到将字段配置为不区分大小写非常简单:
<field name="title" type="text_case_insensitive" indexed="true" stored="true"/>
<fieldType name="text_case_insensitive" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
N.B。如果您在标题字段的架构中有先前的配置,则需要 re-index
[1]https://lucene.apache.org/solr/guide/6_6/field-type-definitions-and-properties.html
我尝试过很多不同的方法,但 none 行得通。 比我按照下面的方式实施并且工作正常。
让我知道下面的方法是否正确,但对我来说效果很好:)
我已经从架构中删除了以下代码,
<fieldType name="string" class="solr.StrField" sortMissingLast="true" docValues="true"/>
并添加(替换)下面的代码,
<fieldType name="string" class="solr.TextField">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>