Elasticsearch在django-haystack中获取API?

时间:2012-11-29 18:04:09

标签: elasticsearch django-haystack

我想要一种优雅的方式从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

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

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

我建议你使用数据库,如果你只想获得一个你已经拥有id的对象,而不是使用干草堆中任何意味着搜索内容的东西。

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

此外,通过调用 object ,您已经在使用Model.objects.get(pk = doc_id)。