[英]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.