App Engine全文搜索API出现问题TransientError
。这是我可能做到的最简单的形式(它仍然在生产服务器上提供错误,但不是dev)。请注意,这会发生在我的所有5个搜索索引上,而不仅仅是这个索引。
from google.appengine.api import search
query_obj = search.Query(query_string='')
print search.Index(name='donation').search(query=query_obj)
以下是App Engine提供的错误:
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行代码。
知道造成这种情况的原因是什么?
答案 0 :(得分: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