【问题标题】:Is it possible to query multiple AWS Cloudsearch fields for the same value without repeating?是否可以在不重复的情况下查询多个 AWS Cloudsearch 字段以获得相同的值?
【发布时间】:2018-05-16 04:38:53
【问题描述】:

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

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

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

【问题讨论】:

    标签: amazon-web-services amazon-cloudsearch


    【解决方案1】:

    这是构建复合查询的正确方法。从 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)

    【讨论】:

      猜你喜欢
      • 2012-03-28
      • 2023-03-15
      • 2012-03-17
      • 1970-01-01
      • 2012-12-13
      • 2019-07-30
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      相关资源
      最近更新 更多