首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >弹性搜索中的id、嵌套数组和范围查询(开放搜索AWS)

弹性搜索中的id、嵌套数组和范围查询(开放搜索AWS)
EN

Stack Overflow用户
提问于 2022-08-31 16:28:05
回答 1查看 85关注 0票数 1

我有一份专家文件如下:

代码语言:javascript
复制
    {
        "_id" : "test@domain.com",
        "age" : 12,
        "hobbiles" : ["Singing", "Dancing"]
    
    },
{
        "_id" : "test1@domain.com",
        "age" : 7,
        "hobbiles" : ["Coding", "Chess"]
    
    }

我将电子邮件存储为id、age和hobbiles,兴趣爱好是嵌套型的,年龄是长的,我想查询id、age和hobbiles,如下所示:

代码语言:javascript
复制
Select * FROM tbl where _id IN ('val1', 'val2') AND age > 5 AND hobbiles should match with Chess or Dancing

在弹性搜索中我能做些什么?我使用的是OpenSearch 1.3 (最新):

EN

回答 1

Stack Overflow用户

发布于 2022-08-31 17:05:18

我会怀疑字段hobbiles是关键字,然后查询建议:

代码语言:javascript
复制
PUT test
{
  "mappings": {
    "properties": {
      "age": {
        "type": "long"
      },
      "hobbiles": {
        "type": "keyword"
      }
    }
  }
}

POST test/_doc/test@domain.com
{
  "age": 12,
  "hobbiles": [
    "Singing",
    "Dancing"
  ]
}
    
POST test/_doc/test1@domain.com
{
  "age": 7,
  "hobbiles": [
    "Coding",
    "Chess"
  ]
}
  
GET test/_search
{
  "query": {
    "bool": {
      "filter": [
        {
          "terms": {
            "_id": [
              "test1@domain.com",
              "test@domain.com"
            ]
          }
        }
      ],
      "must": [
        {
          "range": {
            "age": {
              "gt": 5
            }
          }
        },
        {
          "terms": {
            "hobbiles": [
              "Coding",
              "Chess"
            ]
          }
        }
      ]
    }
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73559083

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档