Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Date Elasticsearch或与日期范围组合的术语_Date_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Range - Fatal编程技术网 elasticsearch,range,Date,elasticsearch,Range" /> elasticsearch,range,Date,elasticsearch,Range" />

Date Elasticsearch或与日期范围组合的术语

Date Elasticsearch或与日期范围组合的术语,date,elasticsearch,range,Date,elasticsearch,Range,我试图用包含范围的OR语句查询我的索引,为此,我构造了以下查询(在文档的帮助下): 然而,这给了我一个“查询格式错误,启动\u对象后没有字段”错误。完整的错误消息: { "error": { "root_cause": [ { "type": "query_parsing_exception", "reason": "[_na] query malformed, no field after start_object", "

我试图用包含范围的OR语句查询我的索引,为此,我构造了以下查询(在文档的帮助下):

然而,这给了我一个“查询格式错误,启动\u对象后没有字段”错误。完整的错误消息:

{
  "error": {
    "root_cause": [
      {
        "type": "query_parsing_exception",
        "reason": "[_na] query malformed, no field after start_object",
        "index": "quote-lanes2",
        "line": 13,
        "col": 15
      }
    ],
    "type": "search_phase_execution_exception",
    "reason": "all shards failed",
    "phase": "query",
    "grouped": true,
    "failed_shards": [
      {
        "shard": 0,
        "index": "quote-lanes2",
        "node": "opqibf4zRxOXTHz0QIAaeA",
        "reason": {
          "type": "query_parsing_exception",
          "reason": "[_na] query malformed, no field after start_object",
          "index": "quote-lanes2",
          "line": 13,
          "col": 15
        }
      }
    ]
  },
  "status": 400
}
有什么建议吗?还是对文档进行详细说明? 提前谢谢各位

编辑: 因此,由于的原因,查询得到了修复,但实际上它并没有按日期过滤。我将“query”更改为“validFrom”,因此我的查询如下所示:

{
  "size": 50,
  "query": {
    "bool": {
      "must": {
        "match_all": {}
      },
      "filter": {
        "or": [
          {
            "term": {
              "fromPlace": "liverpool"
            }
          },
          {
            "range": {
              "validFrom": {
                "gte": "2017-03-22T08:43:11",
                "format": "strict_date_optional_time||epoch_millis"
              }
            }
          }
        ]
      }
    }
  }
}
GTE显然是在未来,不应与具有以下值的文档匹配(但它确实匹配):

我的日期字段已正确映射为日期字段:

理想情况下,我希望只对“yyyy/mm/ddddd”部分进行过滤。
有什么想法吗?

您的查询确实格式不正确,筛选器应位于
bool
元素下,该元素应位于
query
元素下。此外,当使用
/
时,您应该为每个过滤器元素(范围/术语等)创建单独的对象,例如:

{
  "size": 50,
  "query": {
    "bool": {
      "must": {
        "match_all": {}
      },
      "filter": {
        "or": [
          {
            "term": {
              "fromPlace": "liverpool"
            }
          },
          {
            "range": {
              "query": {
                "gte": "01/01/2012",
                "lte": "2013",
                "format": "dd/MM/yyyy||yyyy"
              }
            }
          }
        ]
      }
    }
  }
}

您的查询确实格式不正确,筛选器应位于
bool
元素下,该元素应位于
query
元素下。此外,当使用
/
时,您应该为每个过滤器元素(范围/术语等)创建单独的对象,例如:

{
  "size": 50,
  "query": {
    "bool": {
      "must": {
        "match_all": {}
      },
      "filter": {
        "or": [
          {
            "term": {
              "fromPlace": "liverpool"
            }
          },
          {
            "range": {
              "query": {
                "gte": "01/01/2012",
                "lte": "2013",
                "format": "dd/MM/yyyy||yyyy"
              }
            }
          }
        ]
      }
    }
  }
}

谢谢,我不知道bool的事情:)所以如果我想在字段“validFrom”上应用范围,我将“query”改为“validFrom”,对吗?这会产生0个结果,可能是因为我的日期格式不同,对吗?我得到了“2015-07-22T08:43:11”,我尝试将格式选项设置为yyyy-MM-dd h:MM tt,但没有成功。tt明显无效。然后,我尝试将其更改为:“yyyy/MM/dd HH:MM:ss”,但这似乎并没有实际应用过滤器。因此我尝试了:“格式”:“严格的日期可选时间”似乎有效,但不知何故“gte”:“2017-03-22T08:43:11”也与“有效时间”匹配:“2015-07-22T08:43:11”。。。。mmmm映射为日期的字段
是否有效?请转到
/\u映射
端点进行检查。好吧。。。。提名我为旅鼠奖。。。。。哈哈,我真的不记得那句话了……)谢谢你,伙计!谢谢,我不知道bool的事情:)所以如果我想在字段“validFrom”上应用范围,我将“query”改为“validFrom”,对吗?这会产生0个结果,可能是因为我的日期格式不同,对吗?我得到了“2015-07-22T08:43:11”,我尝试将格式选项设置为yyyy-MM-dd h:MM tt,但没有成功。tt明显无效。然后,我尝试将其更改为:“yyyy/MM/dd HH:MM:ss”,但这似乎并没有实际应用过滤器。因此我尝试了:“格式”:“严格的日期可选时间”似乎有效,但不知何故“gte”:“2017-03-22T08:43:11”也与“有效时间”匹配:“2015-07-22T08:43:11”。。。。mmmm映射为日期的字段
是否有效?请转到
/\u映射
端点进行检查。好吧。。。。提名我为旅鼠奖。。。。。哈哈,我真的不记得那句话了……)谢谢你,伙计!