1

AppEngine全文検索APIがをスローする問題がありTransientErrorます。これが私が作成できる最も単純な形式です(それでも本番サーバーではエラーが発生しますが、開発者ではエラーが発生しません)。これは、これだけでなく、5つの検索インデックスすべてで発生することに注意してください。

from google.appengine.api import search

query_obj = search.Query(query_string='')
print search.Index(name='donation').search(query=query_obj)

AppEngineのエラーは次のとおりです。

File "/base/data/home/apps/s~ghidonations/4e.365801633107307526/GlobalUtilities.py", line 914, in search
  search_results = search.Index(name=index_name).search(query=query_obj)
File "/python27_runtime/python27_lib/versions/1/google/appengine/api/search/search.py", line 3093, in search
  raise _ToSearchError(e)
TransientError

私がこれを書いているときに、いくつかの検索クエリが実際に再び機能し始めました(5分前にエラーがスローされました)が、まだ間抜けなものもあります。以前のフォーラムで日付による並べ替え(実際の製品コードで行っています)について読んだので、それを削除することで問題が解決することがわかりました。そうではありませんでした-上部の3行のコードを参照してください。

何がこれを引き起こしているのか考えていますか?

4

1 に答える 1

2

TransientErrorsは、将来なくなるエラーです。これらのエラーの原因はわかりません。バググーグルは検索を再試行することをお勧めします。

# Index the document.
try:
    index.put(doc)
except search.PutError, e:
    result = e.results[0]
    if result.code == search.OperationResult.TRANSIENT_ERROR:
        # possibly retry indexing result.object_id
except search.Error, e:
    # possibly log the failure

この例はIndex.putのドキュメントからのものですが、検索APIで一時的なエラーが発生する唯一の例であるため、同じ手法を使用できる可能性があります。

ソースhttps://developers.google.com/appengine/docs/python/search/indexclass#Introduction

于 2013-03-08T09:14:50.473 に答える