是否可以在不重复的情况下查询多个 AWS Cloudsearch 字段以获得相同的值?

Is it possible to query multiple AWS Cloudsearch fields for the same value without repeating?

使用 AWS Cloudsearch,我需要使用结构化(复合)查询来查询 2 个单独的字段以获得相同的值,例如

(and (or name:'john smith') (or curr_addr:'123 someplace' other_addr:'123 someplace'))

此查询有效,但我想知道是否有必要为我要搜索的每个字段重复该值。有没有办法只指定一次值,例如curr_addr+other_addr:'123 someplace'

这是构造复合查询的正确方法。从 AWS 文档中,您会看到他们以相同的方式构建示例查询:

(and title:'star' (or actors:'Harrison Ford' actors:'William Shatner')(not actors:'Zachary Quinto'))

来自Constructing Compound Queries

可以通过在查询选项 (q.options) 中列出重复性更高的字段来解决这个问题,然后为其余的字段指定字段田野。 fields 列表是当您没有指定在复合查询中搜索哪个字段时的后备。因此,如果您在那里列出地址字段,然后仅在查询中指定 name 字段,您可能会接近您正在寻找的行为。

查询选项

q.options={fields: ['curr_addr','other_addr']}

查询

(and (or name:'john smith') (or '123 someplace'))

但这种方法只适用于一组重复字段,因此它无论如何都不是灵丹妙药。

来自 Search API Reference(参见 q.options => fields