簡體   English   中英

使用 Where In 過濾數組 ElasticSearch 中項目的文檔

[英]Filter document on items in an array ElasticSearch using Where In

我有數據:

[
  {
    "NAME": "John Doe", 
    "CLASS":[1,10,30]
  },
  {
    "NAME": "Albert",
    "CLASS": [1,20,40]
  },
  {
    "NAME": "XINN",
    "CLASS": [10,30]
  },
  {
    "NAME": "UJANG",
    "CLASS": [20,40]
  },
  {
    "NAME": "BAMBANG",
    "CLASS": [30,40]
  }
]

我有以下查詢 SQL:

SELECT * FROM table_name WHERE CLASS IN (1,20)

我想要出現的是:

[{"NAME": "John Doe","CLASS":[1,10,30]},{"NAME": "Albert","CLASS": [1,20,40]},{"NAME": "UJANG","CLASS": [20,40]}]

如何更改我的搜索以匹配 SQL 查詢?

您可以使用terms 查詢來獲得您的預期結果,並添加一個工作示例。

索引示例文檔

{
    "name" : "John Doe",
    "class" : [1, 10,30]
}

{
    "name": "Albert",
    "class": [1,20,40]
}

{
    "name": "XINN",
    "class": [10,30]
}

{
    "name": "UJANG",
    "class": [20,40]
}

{
    "name": "BAMBANG",
    "class": [30,40]
}

和搜索查詢

{
    "query": {
        "terms": {
            "class": [
                1,20
            ]
        }
    }
}

和搜索結果

"hits": [
            {
                "_index": "shingleside",
                "_type": "_doc",
                "_id": "1",
                "_score": 1.0,
                "_source": {
                    "name": "John Doe",
                    "class": [
                        1,
                        10,
                        30
                    ]
                }
            },
            {
                "_index": "shingleside",
                "_type": "_doc",
                "_id": "2",
                "_score": 1.0,
                "_source": {
                    "name": "Albert",
                    "class": [
                        1,
                        20,
                        40
                    ]
                }
            },
            {
                "_index": "shingleside",
                "_type": "_doc",
                "_id": "4",
                "_score": 1.0,
                "_source": {
                    "name": "UJANG",
                    "class": [
                        20,
                        40
                    ]
                }
            }
        ]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM