2010-07-01 77 views
1

我是Haystack和搜索世界的新手,所以我不知道如何提出这个问题。Django + Haystack如何做这个搜索

我想达到的是以下几点。

具有搜索查询,如:一二

我想获得返回的任何内容,如:

  • 这一个
  • 一个
  • 两个一
  • 东西在这里

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

我目前在我的视图中使用SearchQuerySet,但无法做到这一点。

干杯

回答

1

所以你基本上是寻找一个OR类型的查询吗?默认情况下,干草堆使用AND操作来加入查询。

你可以这样做两种方式:

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

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

对于相关性,您应该阅读Best Practices页面,该页面将使用搜索模板并使其成为显示相关内容的方式。

希望有帮助!