0

NDB Search APIを使用するためのものであるため、使用しているかどうかはわかりません。ドキュメントを読みましたが、何かが足りないか、Pythonのスキルが足りないと思います。誰かが検索の使用のこの進歩を確認/改善できますか?

# build the query object
query_options = search.QueryOptions(limit=results_per_page, offset=number_to_offset)
query_object = search.Query(query_string=escaped_param, options=query_options)

# searchResults object
video_search_results = videos.INDEX.search(query_object)

# ScoredDocuments list
video_search_docs = video_search_results.results

# doc_ids
video_ids = [x.doc_id for x in video_search_docs]

# entities
video_entities = [Video.GetById(x) for x in video_ids]
4

2 に答える 2

1

私は個人的にこれをもっと次のように書くかもしれません:

# build the query object
query_options = search.QueryOptions(limit=results_per_page, offset=number_to_offset)
query_object = search.Query(query_string=escaped_param, options=query_options)

# do the search
video_search = search.Index(name=VIDEO_INDEX).search(query_object)

# list of matching video keys
video_keys = [ndb.Key(Video, x.doc_id) for x in video_search.results]

# get video entities
video_entities = ndb.get_multi(video_keys)

使用ndb.get_multiする方が効率的です。AppStatsを使用してそれを確認できます。RPCが未処理のときに実行できる他の処理がある場合は、非同期の同等のものを調べることもできます。

Video.GetByIdメソッドが実際に何であるかはわかりませんが、のndbドキュメントを参照することをお勧めしますModel.get_by_id

于 2013-03-26T14:37:14.820 に答える
0

コードはすべて問題ないようです。何か問題がありますか?

于 2013-03-25T09:31:59.487 に答える