2

我正在使用 Solr 搜索使用 Haystack 的 Django 应用程序。为了获得更精确的结果,我不得不更改搜索查询以执行精确搜索 -

from haystack.query import SearchQuerySet, SQ
from haystack.inputs import Exact

....
query = SQ(tags_indexed=Exact(val.lower()))
sqs = SearchQuerySet().models(
                    SampleModel).filter(query)
...

现在,您可以进行某些文档中提到的精确搜索的其他方法是 -

query = SQ(tags_indexed__exact=val.lower())

这两者有什么区别?

4

1 回答 1

1

SQ继承自 django 的Q对象,并将使用 djangosexact字段查找。

Exact是一个干自己的事的 Haystack 类。(但很可能以相同的查询结束)

文档声明它们是等效的,因此您使用的区别不大。

于 2016-05-25T14:38:00.540 回答