1

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

我想要实现的是以下。

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

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

  • 这个
  • 二一
  • 这里有东西

Haystack + solr/xapian 有可能吗?是否也可能对结果有相关性?在两个词都被击中的情况下,这将给我更多的相关性。

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

干杯

4

1 回答 1

2

所以你基本上是在寻找OR类型查询,对吗?默认情况下,haystack 使用一个AND操作来连接查询。

您可以通过以下两种方式执行此操作:

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

除此之外,您总是可以将 DjangoQ对象连接在一起,但考虑到您有这些选项,这些可能是您最好的选择。

为了相关性,您应该阅读最佳实践页面,该页面介绍了使用搜索模板并使它们成为您展示相关内容的方式。

希望有帮助!

于 2010-07-01T12:54:03.963 回答