使用 __exact 和 Exact() 有什么区别?



我正在使用Haystack使用Solr搜索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())

这两者有什么区别?

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

Exact是一个做自己事情的 Haystack 类。(但很可能最终得到相同的查询)

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

相关内容

  • 没有找到相关文章

最新更新