【发布时间】:2018-08-22 12:51:21
【问题描述】:
我有两个 Python 客户端代码。每 30 秒运行一次,并将数据提交给 elasticsearch。另一个每30秒运行一次,下载第一个程序提交的数据并分析数据。
在第二个程序中,我想限制 SEARCH 函数只获取最近 30 秒内提交的数据(因为之前的数据已经下载)。
我有一个搜索命令(修改自https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-range-query.html):
POST /my_index_*/_search
{
"size": 10,
"query": {
"match_all": {},
"range": {
"date": {
"gte": "now-30s/d",
"lt": "now/d"
}
}
}
}
但它返回一个错误。
{
"error": {
"root_cause": [
{
"type": "parsing_exception",
"reason": "[match_all] malformed query, expected [END_OBJECT] but found [FIELD_NAME]",
"line": 5,
"col": 5
}
],
"type": "parsing_exception",
"reason": "[match_all] malformed query, expected [END_OBJECT] but found [FIELD_NAME]",
"line": 5,
"col": 5
},
"status": 400
}
我认为错误肯定来自range 条件,因为没有它我可以很好地获取数据。
我该怎么做?有没有比限制 30 秒的持续时间更好的方法来确保第二个程序永远不会有一个数据超过一次,而且不会错过任何数据。
非常感谢
【问题讨论】:
-
你得到什么错误?
标签: elasticsearch