我想要一种优雅的方式从haystack中的elasticsearch索引中获取文档。 Haystack似乎只提供查询,但Get API没有实现,我找到了很多可以方便的例子。
我正在使用带有内部_id字段的SearchQuerySet(经过一些试验和错误后找到)。
from haystack.query import SearchQuerySet
doc_id = myapp.my_model.id
model_instance = SearchQuerySet().filter(_id__exact=doc_id)[0].object
我认为这将始终如一,但我想知道是否有更优雅的方式。
有什么想法吗?
答案 0 :(得分:2)
我建议你使用数据库,如果你只想获得一个你已经拥有id的对象,而不是使用干草堆中任何意味着搜索内容的东西。
model_instance = SearchQuerySet().filter(_id__exact=doc_id)[0].object
^^^^^^^
此外,通过调用 object ,您已经在使用Model.objects.get(pk = doc_id)。