【问题标题】:Django + Haystack how to do this searchDjango + Haystack 如何进行此搜索
【发布时间】:2010-07-01 11:56:21
【问题描述】:
我是 Haystack 和搜索领域的新手,所以我不知道如何提出这个问题。
我想要达到的目标如下。
有一个搜索查询,例如:一二
我想退回任何内容,例如:
这可以用 Haystack + solr/xapian 实现吗?
是否也可能对结果有相关性?在两个词都被击中的情况下,这将给我更多的相关性。
我目前在我的视图中使用 SearchQuerySet,但无法实现。
干杯
【问题讨论】:
标签:
django
solr
django-haystack
xapian
【解决方案1】:
所以您基本上是在寻找OR 类型的查询,对吧?默认情况下,haystack 使用AND 操作来连接查询。
您可以通过两种方式做到这一点:
- 将您的 settings.py 中的
HAYSTACK_DEFAULT_OPERATOR 更改为 OR。这显然是整个网站的变化。
- 修改您的
SearchQuerySet 表单以使用filter_or,这将强制OR 样式查找。所以将一个新的传递到您的表单/视图中:SearchQuerySet.filter_or(**kwargs)
除此之外,您始终可以将 Django Q 对象连接在一起,但考虑到您有这些选项,这些可能是您最好的选择。
关于相关性,您应该阅读Best Practices 页面,该页面介绍了使用搜索模板并使它们成为您展示相关内容的方式。
希望有帮助!