gpt4 book ai didi

Solr:搜索带连字符的术语会得到 0 个结果

转载 作者:行者123 更新时间:2023-12-04 21:18:27 27 4
gpt4 key购买 nike

我无法在 SOLR 搜索结果中检索带连字符的术语。例如,当我尝试进行诸如超人、超人等搜索时,我应该会在搜索结果中看到超人、超人 3 等标题。

字段类型如下:

<fieldType name="autocomplete_edge" class="solr.TextField">
<analyzer type="index">
<charFilter class="solr.MappingCharFilterFactory" mapping="mapping-ISOLatin1Accent.txt" />
<tokenizer class="solr.KeywordTokenizerFactory" />
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.PatternReplaceFilterFactory" pattern="([\.,;:-_])" replacement=" " replace="all" />
<filter class="solr.EdgeNGramFilterFactory" maxGramSize="30" minGramSize="1" />
<filter class="solr.PatternReplaceFilterFactory" pattern="([^\w\d\*æøåÆØÅ ])" replacement="" replace="all" />
</analyzer>
<analyzer type="query">
<charFilter class="solr.MappingCharFilterFactory" mapping="mapping-ISOLatin1Accent.txt" />
<tokenizer class="solr.KeywordTokenizerFactory" />
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.PatternReplaceFilterFactory" pattern="([\.,;:-_])" replacement=" " replace="all" />
<filter class="solr.PatternReplaceFilterFactory" pattern="([^\w\d\*æøåÆØÅ ])" replacement="" replace="all" />
<filter class="solr.PatternReplaceFilterFactory" pattern="^(.{30})(.*)?" replacement="$1" replace="all" />
</analyzer>
</fieldType>

请帮忙。

问候

最佳答案

我建议使用 WordDelimiterFilterFactory对于您的用例。

WordDelimiterFilterFactory 将允许您生成可以在特殊字符和数字上拆分的标记,并维护原始标记,以便与搜索词匹配。

例如generateWordParts会转换 super-man -> super, mansplitOnNumerics将生成 super-man3 -> super, man, 3catenateWords会转换 super-man -> supermancatenateAll会转换 super-man3 -> superman3
因此,这将为您提供匹配相同单词组合的能力

关于Solr:搜索带连字符的术语会得到 0 个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17425910/

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