0

我想要一种优雅的方式从 haystack 中的弹性搜索索引中获取文档。Haystack 似乎只提供查询,但没有实现 Get API,我发现了许多可以派上用场的示例。

我将 SearchQuerySet 与内部 _id 字段一起使用(经过反复试验后找到)。

from haystack.query import SearchQuerySet

    doc_id = myapp.my_model.id

    model_instance = SearchQuerySet().filter(_id__exact=doc_id)[0].object

我认为这将始终保持一致,但我想知道是否有更优雅的方式。

任何想法?

4

1 回答 1

2

如果您只是想获取一个已经拥有 id 的对象,我建议您使用数据库,而不是使用来自干草堆的任何内容来搜索内容。

model_instance = SearchQuerySet().filter(_id__exact=doc_id)[0].object
                                                              ^^^^^^^

此外,通过调用object,您已经在执行与 Model.objects.get(pk=doc_id) 相同的操作。

于 2013-01-15T22:54:56.660 回答