gpt4 book ai didi

python - Django-Haystack with Solr 包含搜索

转载 作者:太空狗 更新时间:2023-10-29 21:35:30 24 4
gpt4 key购买 nike

我在使用 solr 作为后端的项目中使用 haystack。我希望能够执行包含搜索,类似于 Django .filter(something__contains="...")

__startswith 选项不适合我们的需要,因为顾名思义,它会查找以字符串开头的单词。

我尝试使用类似 *keyword* 的东西,但 Solr 不允许 * 用作第一个字符

谢谢。

最佳答案

要获得“包含”功能,您可以使用:

<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="100" side="back"/>
<filter class="solr.LowerCaseFilterFactory" />

作为索引分析器。

这将为您领域中的每个空格分隔的单词创建 ngram。例如:

"Index this!" => x, ex, dex, ndex, index, !, s!, is!, his!, this!

如您所见,这将大大扩展您的索引,但如果您现在输入如下查询:

"nde*"

它将匹配“ndex”给你一个命中。

谨慎使用此方法以确保您的索引不会变得太大。如果您增加 minGramSize 或减少 maxGramSize,它不会将索引扩展为 mutch,但会减少“包含”功能。例如设置 minGramSize="3"将要求您在包含查询中至少有 3 个字符。

关于python - Django-Haystack with Solr 包含搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6337811/

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