Solr的Django-Haystack包含搜索
|
我在使用
solr
作为后端的项目中使用haystack
。我希望能够执行包含搜索,类似于Django.filter(something__contains=\"...\")
顾名思义,“ 3”选项不符合我们的需求,它会查找以字符串开头的单词。
我尝试使用类似*keyword*
的方法,但Solr不允许将*
用作第一个字符
谢谢。
没有找到相关结果
已邀请:
4 个回复
搜洼挂时
作为索引分析器。 这将为您的字段中每个空格分隔的单词创建ngram。例如:
如您所见,这将大大扩展索引,但是如果您现在输入如下查询:
它将与\“ ndex \”匹配,从而为您带来成功。 请仔细使用此方法,以确保索引不会太大。如果增加minGramSize或减小maxGramSize,它将不会扩展索引,而会降低“包含”功能。例如,设置minGramSize = \“ 3 \”将要求您的包含查询中至少包含3个字符。
剃摧庭峨僳
迪擅哨乘傅
钨蜡唤喉晤
。 他们找不到较大字符串(不是前缀或后缀)一部分的关键字。 在索引中使用
或
只能执行\“ startswith \”或\“ endswith \”类型的过滤。 解决方案是使用这样的NgramField:
这非常优雅,因为您无需手动将任何内容添加到schema.xml