gpt4 book ai didi

java - SolrQuery 不返回少于 3 个字符的结果

转载 作者:行者123 更新时间:2023-11-29 05:56:04 25 4
gpt4 key购买 nike

我的代码如下:

SolrQuery query = new SolrQuery();
query.setQuery(q.trim());
try {
QueryResponse res = getSolrServer().query(query);
return res.getResults();
} catch (SolrServerException sse) {
log.error(sse);
}

问题是,当我查询超过 3 个字符时,这会返回响应,例如查询字符串“che”会返回结果,但是查询字符串“ch”不会返回任何响应。有没有一种方法可以覆盖 Solr 查询的 3 个字符的最小长度。

是下面的 xml 导致了问题,如果是,我可以使用 java 以编程方式覆盖它吗

<analyzer type="index">
<tokenizer class="solr.NGramTokenizerFactory" minGramSize="3" maxGramSize="50" />
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>

感谢提前提供的帮助。

感谢和问候,

爱国者

最佳答案

NGramTokenizerFactory :-
默认行为。请注意,此分词器在整个字段上运行。它不会在空格处打断字段。因此,空格字符包含在编码中。

<analyzer>
<tokenizer class="solr.NGramTokenizerFactory"/>
</analyzer>

在:“嘿伙计”

输出:“h”、“e”、“y”、“”、“m”、“a”、“n”、“he”、“ey”、“y”、“m”、“ma” ", "一个"

因此根据您的配置:- minGramSize="3"maxGramSize="50"小于 3 的项目将被过滤

对于两个字母的单词,由于索引中没有这些术语,因此永远无法搜索这些单词。您需要将 minGramSize 更改为 2 才能使它们可搜索。

关于java - SolrQuery 不返回少于 3 个字符的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12088938/

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