我使用Opensearch-py来处理与OpenSearch的交互。然而,我在设置超时以修复搜索索引时的超时问题时遇到了一些问题。
self.get_client().search(
index=index,
body=search_body,
scroll=scroll,
ignore=ignore,
size=size,
timeout=30)
我得到的错误:
ValueError:连接的超时值为30.0,但它必须是int、float或None。
我很难理解为什么30不解析为int。我还尝试了“30”,“30 s”,30.0和使用int()和float()的强制转换。同样的错误。
Traceback (most recent call last):
File "/usr/src/app/opensearchpy/connection/http_requests.py", line 179, in perform_request
response = self.session.send(prepared_request, **send_kwargs)
File "/usr/src/app/requests/sessions.py", line 618, in send
r = adapter.send(request, **kwargs)
File "/usr/src/app/requests/adapters.py", line 426, in send
timeout = TimeoutSauce(connect=timeout, read=timeout)
File "/usr/src/app/urllib3/util/timeout.py", line 94, in __init__
self._connect = self._validate_timeout(connect, 'connect')
File "/usr/src/app/urllib3/util/timeout.py", line 135, in _validate_timeout
raise ValueError("Timeout value %s was %s, but it must be an "
ValueError: Timeout value connect was 30.0, but it must be an int, float or None.
2条答案
按热度按时间mm9b1k5b1#
根据文档,params是查询参数的“字典”。因此,下面的实现将起作用。
41zrol4v2#
也有同样的问题没有直接修复,但找到了一个解决方案:可以在OpenSearch构造函数中传递timeout参数。