Python から有益なトレースを取得していませんInvalidRequest
。トレースを調査しているにもかかわらず、断続的に機能しているリクエストについてのメッセージを受け取っているだけです。私が得たのは、pythonが「InvalidRequest」と言っているということだけです。エラーをキャッチすると、どの検索クエリが失敗したか、検索ボックスにクエリとして入力すると機能している検索クエリが表示されます。したがって、タイムアウトではなくランダムなエラーであることは意味がなく、エラーを InvalidRequest として分類するのにまったく役立ちません。
何ができるでしょうか?
問題を解決しなかった私が尋ねた質問は
このサイトの地域ベースのリストを順方向にページ移動し、その後のリロード (または最初のヒット) でページ 2 または 3 がタイムアウト エラーの空の結果を取得するように見える場合、問題のライブ ビューを見つけることができますが、タイムアウトではありません。ページネーションのページ 2 に到達してリロードを押すと、失敗するか、タイムアウトよりも短い時間でランダムに動作する可能性があります。
そのため、何が起こっているのかを理解するための助けが必要です。私は自分が間違っていることを理解していません。コードは私には良さそうですが、どう思いますか?
def find_documents(query_string, limit, cursor):
try:
date_desc = search.SortExpression(expression='date',
direction=search.SortExpression.DESCENDING,
default_value=datetime.now().date())
hr_desc = search.SortExpression(expression='hour',
direction=search.SortExpression.DESCENDING,
default_value=datetime.now().hour)
min_desc = search.SortExpression(expression='minute',
direction=search.SortExpression.DESCENDING,
default_value=datetime.now().minute)
# Sort up to matching results by subject in descending order
sort = search.SortOptions(expressions=[date_desc, hr_desc,
min_desc], limit=ACCURACY)
# Set query options
options = search.QueryOptions(limit=50, cursor=cursor,
sort_options=sort, number_found_accuracy=10000,
# returned_fields=['title', 'city', 'region','category', 'adID', 'date','price', 'type', 'company_ad', 'adID', 'cityID','regionID', 'hour','minute'],
#snippeted_fields=['text']
)
query = search.Query(query_string=query_string, options=options)
index = search.Index(name=_INDEX_NAME)
logging.debug('query_string i find %s' , str(query.query_string))
logging.debug('query_options i find %s' , str(query.options))
# Execute the query
return index.search(query)
except search.PutError as e:
logging.exception('caught PutError %s', e)
except search.InternalError as e:
logging.exception('caught InternalError %s', e)
except search.DeleteError as e:
logging.exception('caught DeleteError %s', e)
except search.TransientError as e:
logging.exception('caught TransientError %s', e)
except search.InvalidRequest as e:
logging.exception('caught InvalidError %s', e)
except search.Error as e:
logging.exception('caught unknown error %s', e)
return None
順序を完全に削除すると、同じエラーが発生します。
def find_documents(query_string, limit, cursor):
try:
#date_desc = search.SortExpression(expression='date',
direction=search.SortExpression.DESCENDING,
default_value=datetime(2013,01,01))
#hr_desc = search.SortExpression(expression='hour',
direction=search.SortExpression.DESCENDING,
default_value=1)
#min_desc = search.SortExpression(expression='minute',
direction=search.SortExpression.DESCENDING,
default_value=1)
# Sort up to matching results by subject in descending order
#sort = search.SortOptions(expressions=[date_desc, hr_desc,
min_desc], limit=ACCURACY)
# Set query options
options = search.QueryOptions(limit=50, cursor=cursor,
#sort_options=sort,
number_found_accuracy=10000,
# returned_fields=['title', 'city', 'region','category', 'adID', 'date','price', 'type', 'company_ad', 'adID', 'cityID','regionID', 'hour','minute'],
#snippeted_fields=['text']
)
query = search.Query(query_string=query_string, options=options)
index = search.Index(name=_INDEX_NAME)
logging.debug('query_string i find %s' , str(query.query_string))
logging.debug('query_options i find %s' , str(query.options))
# Execute the query
return index.search(query)