gpt4 book ai didi

java - 使 SOLR 拼写检查器搜索不区分大小写但返回原始大小写

转载 作者:搜寻专家 更新时间:2023-10-30 23:02:58 27 4
gpt4 key购买 nike

我正在使用 SOLR 4.10 实现搜索服务,并希望根据已指定的术语提供搜索建议。当今搜索应用程序的相当标准的功能...

我想要的是 SOLR 搜索不区分大小写的建议但返回原始大小写字符串,这似乎是不可能的......搜索:abc返回:AbCdEfG

当我使用“LowerCaseFilterFactory”时,搜索不区分大小写,但返回的建议都是小写的。当我删除它时,返回的建议是原始的,但搜索不区分大小写.... =/

我将此请求处理程序和搜索组件添加到我的 solrconfig.xml 中:

<requestHandler name="/suggest" class="org.apache.solr.handler.component.SearchHandler">
<lst name="defaults">
<str name="echoParams">none</str>
<str name="wt">json</str>
<str name="indent">false</str>
<str name="spellcheck">true</str>
<str name="spellcheck.dictionary">_all</str>
<str name="spellcheck.onlyMorePopular">false</str>
<str name="spellcheck.count">20</str>
<str name="spellcheck.collate">false</str>
</lst>
<arr name="components">
<str>suggest</str>
</arr>
</requestHandler>

<searchComponent name="suggest" class="solr.SpellCheckComponent" >
<lst name="spellchecker">
<str name="name">_all</str>
<str name="classname">org.apache.solr.spelling.suggest.Suggester</str>
<str name="lookupImpl">org.apache.solr.spelling.suggest.fst.FSTLookupFactory</str>
<str name="field">_all</str>
<float name="threshold">0.</float>
<str name="buildOnCommit">true</str>
</lst>

我将其添加到我的 schema.xml

<fields>
<field name="_all" type="string" indexed="true" stored="false" multiValued="true" omitNorms="true" />
</fields>
<types>
<fieldType name="string" class="solr.TextField">
<analyzer>
<tokenizer class="solr.KeywordTokenizerFactory" />
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.TrimFilterFactory" />
</analyzer>
</fieldType>
</types>

最佳答案

我认为,如果您在希望返回原始值并重新索引的字段上将“stored”属性设置为 true,那么它将解决您的问题。

如果在字段上将索引属性设置为 true,Solr 只会将它从文档分析中获得的标记存储在其索引中。因此,您的 Solr 索引仅包含从您的文档中获取的不区分大小写的标记。如果 stored 也设置为 true,那么它将原始术语存储在它创建的索引中的某个位置,以便它可以在搜索时返回它。

可以在此处找到有关索引与存储的更多信息: Link

关于java - 使 SOLR 拼写检查器搜索不区分大小写但返回原始大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28763386/

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