0

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

これは常に一貫していると思いますが、もっとエレガントな方法があるかどうか知りたいです。

何か案が?

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 に答える