gpt4 book ai didi

java - Solr 不区分大小写的查询

转载 作者:行者123 更新时间:2023-11-29 02:58:37 26 4
gpt4 key购买 nike

我需要以不区分大小写的方式过滤查询 (fq)。我在网上看到的所有解决方案都与编辑文件 schema.xml 有关。

但是,我没有这个文件,因为我使用的是无架构的 Solr(数据驱动的配置集)。

我怎样才能达到这个结果?非常感谢!

最佳答案

当您使用 managed-schema file 中定义的 dynamicField 时。你正在使用模式

因为您的字段也以 *_ss 模式作为 name_ss 结尾。如您所见,字段 *_ss 的类型为字符串,这些字符串未被分析或按原样编入索引。

我建议你使用下面的dynamicField

<dynamicField name="*_txt" type="text_general" indexed="true" stored="true"/>

此处 text_general 类型在 managed-schema 文件中构建如下

 <fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
<filter class="solr.LowerCaseFilterFactory"/>
<charFilter class="solr.PatternReplaceCharFilterFactory"
pattern="-" replacement=""/>
<charFilter class="solr.PatternReplaceCharFilterFactory"
pattern="." replacement=""/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>

因此您的字段将是 name_txt

关于java - Solr 不区分大小写的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36623579/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com