Django + Haystack如何进行此搜索

时间:2010-07-01 11:56:21

标签: django solr django-haystack xapian

我是Haystack和搜索领域的新手,所以我不知道如何提出这个问题。

我想要实现的目标如下。

有一个搜索查询,如:一二

我想返回任何内容,例如:

  • 这个
  • 一个
  • 2
  • 两个
  • 这里的东西

Haystack + solr / xapian可以实现吗? 也有可能与结果有关联吗?在两个单词被击中的情况下,这将给我更多相关性。

我目前在我的视图中使用SearchQuerySet但无法实现。

干杯

1 个答案:

答案 0 :(得分:1)

所以你基本上正在寻找OR类型的查询吗?默认情况下,haystack使用AND操作来加入查询。

你可以这两种方式:

  • 将settings.py中的HAYSTACK_DEFAULT_OPERATOR更改为OR。这显然是整个网站的变化。
  • 修改您的SearchQuerySet表单以使用filter_or,这将强制OR样式查找。所以将新的一个传递到您的表单/视图中:SearchQuerySet.filter_or(**kwargs)

除此之外,您可以随时加入Django Q个对象,但考虑到您有这些选项,这些可能是您最好的选择。

要获得相关性,您应该阅读使用搜索模板的Best Practices页面,并将其作为展示相关内容的方式。

希望有所帮助!