gpt4 book ai didi

java - 字符串字段 LIKE% 的 SOLR schema.xml

转载 作者:行者123 更新时间:2023-12-01 13:34:23 24 4
gpt4 key购买 nike

如何在 SOLR 中获取字符串的值,如 SQL LIKE%

例如我有这些字符串:

  • a - 0 个结果
  • as - 0 个结果
  • asd - 0 个结果
  • asdd - 15 个结果

如何在 schema.xml 中进行配置?

我尝试添加 sortMissingLast="true" 但仍然不起作用。

最佳答案

当你想从前面搜索时,逐个字母a Edge N-Gram Tokenizer会做你想做的事。为了减少索引大小,我还添加 a Lower Case Filter到分析仪。

您将需要一个自定义fieldType - 见下文 - 然后您需要在您选择的文档字段上使用它。

<fieldType name="my_sql_like" class="solr.TextField">
<analyzer>
<tokenizer class="solr.EdgeNGramTokenizerFactory"
minGramSize="4" maxGramSize="10"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>

这里有趣的属性是

  • minGramSize - 用户输入至少需要多少个字符才能匹配;由于您希望 asdd 成为第一个生成命中的搜索,我建议使用 4。更正式地说,这定义了单词/单词片段的最小大小。如果某个单词小于此值,它将不会进入索引,因此无法搜索。
  • ma​​xGramSize - 每个单词将放置在索引中的最大值; 10只是一个最佳选择;这取决于文本中的单词有多长和/或用户的搜索输入有多长

关于java - 字符串字段 LIKE% 的 SOLR schema.xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21385832/

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