django-haystack现场提升 - 究竟如何使用它?

时间:2014-04-09 11:36:33

标签: django boost elasticsearch django-haystack

我所知道的是this example在索引时提升了 title 字段的重要性。

如何将其与SearchQuerySet一起使用? 可以使用哪个InputTypes和运算符(引用,排除,OR),以及它们如何混合? 哪个field lookups可以使用以及结束?

我正在使用ElasticSearch后端 示例目标:提升其标题(不是任何其他字段)以查询字符串开头(或至少包含)的条目 总体思路:title__startswith=q以某种方式与content=Raw(q)结合,以便我们获得后者的所有结果,并根据前者进行提升。

filter(SQ(title__startswith=q) | SQ(content=Raw(q))似乎对得分没有影响 连续的filter(...) s(或&)工作很奇怪:title__startswith允许标题中出现的内容,即使不在开头,但过滤掉那里没有的内容。既不是真正的过滤器,也不是唯一的提升。

1 个答案:

答案 0 :(得分:1)

我使用飞快移动作为后端。

在类似的情况下,在使用boost = 1.2添加CharField或EdgeNgramField后,我注意到结果列表和结果顺序没有变化。

我只能通过将模板文件中的标题字段加倍来实现我的目标:

{{object.title}}

{{object.title}}

{{object.body}}