我是 Haystack 和搜索世界的新手,所以我不知道如何问这个问题。
我想要实现的是以下。
有一个搜索查询,如:一二
我想退回任何内容,例如:
- 这个
- 一
- 二
- 二一
- 这里有东西
Haystack + solr/xapian 有可能吗?是否也可能对结果有相关性?在两个词都被击中的情况下,这将给我更多的相关性。
我目前在我的视图中使用 SearchQuerySet 但无法实现。
干杯
我是 Haystack 和搜索世界的新手,所以我不知道如何问这个问题。
我想要实现的是以下。
有一个搜索查询,如:一二
我想退回任何内容,例如:
Haystack + solr/xapian 有可能吗?是否也可能对结果有相关性?在两个词都被击中的情况下,这将给我更多的相关性。
我目前在我的视图中使用 SearchQuerySet 但无法实现。
干杯
所以你基本上是在寻找OR
类型查询,对吗?默认情况下,haystack 使用一个AND
操作来连接查询。
您可以通过以下两种方式执行此操作:
HAYSTACK_DEFAULT_OPERATOR
在您的 settings.py 中更改为OR
. 这显然是一个站点范围的变化。SearchQuerySet
表单以使用filter_or这将强制OR
样式查找。因此,将一个新的传递到您的表单/视图中:SearchQuerySet.filter_or(**kwargs)
除此之外,您总是可以将 DjangoQ
对象连接在一起,但考虑到您有这些选项,这些可能是您最好的选择。
为了相关性,您应该阅读最佳实践页面,该页面介绍了使用搜索模板并使它们成为您展示相关内容的方式。
希望有帮助!