【问题标题】:What is the difference between using __exact and Exact()?使用 __exact 和 Exact() 有什么区别?
【发布时间】:2016-05-25 14:19:05
【问题描述】:

我正在使用 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())

这两者有什么区别?

【问题讨论】:

    标签: django solr django-haystack searchqueryset


    【解决方案1】:

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

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

    The docs 声明它们是等价的,因此您使用的差别不大。

    【讨论】:

    • 完美!感谢您指向链接和解释。我问的原因是我在本地使用 whoosh 和 Haystack,并且在使用 __exact 与 Exact() 时没有给出相同的结果。嗖嗖声使用 Exact() 给出正确的结果。
    猜你喜欢
    • 2012-04-15
    • 1970-01-01
    • 1970-01-01
    • 2010-10-20
    相关资源
    最近更新 更多