Amazon Cloudsearch:筛选是否存在

Nyx*_*ter 8 java amazon filter amazon-web-services amazon-cloudsearch

我有一个亚马逊云搜索域名.目的是过滤字段"语言"是否存在.并非所有对象都有一种语言,我希望有一些语言被过滤,但是那些没有任何语言的对象也会被返回.

我想过滤(或语言:'en'语言:null)

但是,无法在字符串中传递null.

这可能吗?如果是这样,它将如何完成.

小智 6

如果您愿意使用 Lucene 查询解析器,您可以像这样表达您的查询:

(*:* OR -language:*) OR language:en

注意:(*:* OR ...)由于 Lucene 处理否定 OR 子句的方式,时髦的构造是必要的。

一般来说,您可以使用 Lucene 查询解析器按字段是否存在进行过滤:

所有文件包含fieldfield:[* TO *]

所有文件不包含field-field:[* TO *]

注意:如果field是文本(文本或文字数据类型),则不需要范围查询,可以将上述内容缩短为:

field:*-field:*


Nyx*_*ter 4

我也看了其他地方,似乎:

最简单的方法是为字段设置默认值,然后使用该值作为 null。

例如,将默认值设置为字符串“null”,然后您可以轻松地进行测试。

我相信您可以添加默认值并重新索引,这应该重新应用默认值。