【问题标题】:Cloudsearch range failing for negative integersCloudsearch 范围因负整数而失败
【发布时间】:2016-02-11 13:52:11
【问题描述】:

我在 Amazon 的 cloudsearch 中有记录,其时间戳为 int,表示自纪元以来的毫秒数。我称该领域为time。这对于 1970 年之前的日期可能是负数。当我使用 time:[0,} 执行结构化查询时,它会返回负时间戳和正时间戳,这是错误的。文档说整数是 64 位签名的,所以我不明白为什么这无效。我的查询语法适用于其他只有正值的字段。范围搜索实际上是否仅限于正数?

(除此之外:我知道我可以使用日期字符串格式,但我想使用整数以与系统的其他部分保持一致。此外,我希望能够表示 BCE 日期,但我不确定是否 YYYY :MM:DD 格式在 YYYY 为负数时表现安全。)

【问题讨论】:

    标签: amazon-cloudsearch


    【解决方案1】:

    事实证明,Cloudsearch 查询可以正常处理负数,正如您所期望的那样。我的问题是我之前将此字段定义为text 字段(并且文本比较不会对字符串进行数字排序,如'123'、'-555'、'-1'等)我已经改变了字段到int,但我忘记重新索引,所以Cloudsearch仍然偷偷把它当作text

    要在更改字段类型后重新索引,您可以使用:

    aws cloudsearch index-documents --domain-name mycloudsearch

    或者您可以通过网络界面进行操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-09
      • 2015-07-05
      • 1970-01-01
      • 1970-01-01
      • 2015-07-09
      • 2020-01-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多