【问题标题】: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 页面,该页面介绍了使用搜索模板并使它们成为您展示相关内容的方式。

    希望有帮助!

    【讨论】:

      猜你喜欢
      • 2014-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-25
      • 2013-08-12
      • 1970-01-01
      • 1970-01-01
      • 2012-05-15
      相关资源
      最近更新 更多