Amazon web services 在CloudSearch中查询字段是否存在

Amazon web services 在CloudSearch中查询字段是否存在,amazon-web-services,amazon-cloudsearch,Amazon Web Services,Amazon Cloudsearch,假设我在CloudSearch中索引的文档列表中有一个名为“xyz”的可选字段 如何查询CloudSearch,使其仅返回包含“xyz”的文档 如果我事先知道它是一个正整数,我可能可以这样做来获得所需的列表: q=xyz:[0,}&q.parser=structured 但是,如果“xyz”存储了其他类型,如字符串或整数/字符串列表等,我该怎么做呢 顺便说一句,我以前使用过Solr,在那里,我可以简单地执行q=xyz:来实现这一点。CloudSearch支持这样的正则表达式吗?您可以使用*运算符

假设我在CloudSearch中索引的文档列表中有一个名为“xyz”的可选字段

如何查询CloudSearch,使其仅返回包含“xyz”的文档

如果我事先知道它是一个正整数,我可能可以这样做来获得所需的列表:
q=xyz:[0,}&q.parser=structured

但是,如果“xyz”存储了其他类型,如字符串或整数/字符串列表等,我该怎么做呢


顺便说一句,我以前使用过Solr,在那里,我可以简单地执行
q=xyz:
来实现这一点。CloudSearch支持这样的正则表达式吗?

您可以使用*运算符查询字段中的非空值,在您的情况下,它将是xyz:*只有在使用Lucene解析器进行CloudSearch查询时,这才有效。

相关:q查询解析器在搜索api中的属性为“queryParser”,示例代码:$result=$this->client->search(数组('query'=>$str,//'queryParser'=>'simple | structured | lucene | dismax','queryParser'=>'lucene','size'=>100,'return'=>'u评分,'u所有字段');