我有以下数据集:
[
{
"name": "Name 1",
"countries": [
"AF", "AL", "DZ", "AS", "AD", "AO", "AI", "AQ", "AG", "AR", "AM", "AW", "AU", "AT", "AZ", "BS", "BH", "UM", "BD", "BB", "BY", "BE", "BZ", "BJ", "BM", "BT", "BO", "BA", "BW", "BV", "BR", "IO", "BN", "BG", "BF", "BI", "KH", "CM", "CA", "CV", "KY", "CF", "TD", "CL", "CN", "CX", "CC", "CO", "KM", "CG", "CK", "CR", "HR", "CU", "CY", "CZ", "DK", "DJ", "DM", "DO", "TP", "EC", "EG", "SV", "GQ", "ER", "EE", "ET", "FK", "FO", "FJ", "FI", "FR", "FX", "GF"
]
},
{
"name": "Name 2",
"countries": [
"US", "GB"
]
}
]
如何过滤不包含某些特定国家(例如
["GB", "FR"]
)的项目。 最佳答案
假设countries
是keyword
类型的字段,则以下查询应返回不包含任何国家/地区的项目。
{
"query": {
"bool": {
"must_not": [
{
"terms": {
"countries": [
"GB",
"FR"
]
}
}
]
}
}
}
关于elasticsearch - ElasticSearch按数组字段过滤不包含某些值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60771607/