是否可以在不重复的情况下查询多个 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
)
使用 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
)