[英]Elastic query to search a term and with in a date range
GET _search
{
"query": {
"bool":{
"filter":{
"and":[
{
"term":{
"Server": "XYZ"
},
"range": {
"DateTime":{
"from": "2018-12-13T00:20:48.782Z",
"to":"2018-12-14T00:20:48.782Z"
}
}
}
]
}}
}
}
以上是我的弹性查询,用于获取属于XYZ
服务器的所有记录,并且在时间范围内,我的数据集中有Server
和DateTime
列,但抛出以下错误:
{ "error": { "root_cause": [ { "type": "parsing_exception", "reason": "[term] 格式错误的查询,预期为 [END_OBJECT] 但发现 [FIELD_NAME]", "line": 9, "col ": 11 } ], "type": "parsing_exception", "reason": "[term] 格式错误的查询,预期为 [END_OBJECT] 但发现 [FIELD_NAME]", "line": 9, "col": 11 }, "状态”:400 }
我在这里错过了什么!
您的查询格式错误,请改用以下查询:
GET _search
{
"query": {
"bool": {
"filter": [
{
"term": {
"Server": "XYZ"
}
},
{
"range": {
"DateTime":{
"from": "2018-12-13T00:20:48.782Z",
"to": "2018-12-14T00:20:48.782Z"
}
}
}
]
}
}
}
您不能在过滤器子句中使用and
。 ES 查询中没有and
子句。 基本上,您需要在term
和range
子句上组合过滤器。 请阅读ES 中的组合过滤器以获取更多信息。
由于您的查询使用了无效子句,ES 无法解析您的查询。
请使用正确的查询,您应该能够从 ES 获得结果。
请尝试下面的查询,它应该可以正常工作,如果它不起作用,请告诉我。
{
"query": {
"constant_score": {
"filter": {
"bool": {
"must": [
{
"term": {
"Server": "XYZ"
}
},
{
"bool": {
"must": [
{
"range": {
"DateTime": {
"from": "2018-12-13T00:20:48.782Z",
"to": "2018-12-14T00:20:48.782Z"
}
}
}
]
}
}
]
}
}
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.