Cloudsearch范围因负整数而失败

时间:2016-01-31 01:52:10

标签: amazon-cloudsearch

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

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

1 个答案:

答案 0 :(得分:0)

事实证明,Cloudsearch查询可以正常使用负数,正如您所期望的那样。我的问题是我之前将此字段定义为text字段(并且文本比较不会在数字上排序字符串,如'123',' - 555',' - 1'等等。) d将字段更改为int,但我忘记重新编制索引,因此Cloudsearch仍然秘密地将其视为text

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

aws cloudsearch index-documents --domain-name mycloudsearch

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