1

I have the following data indexed in my elasticsearch version 7.4.

[
  {
    "users": [
      {
        "age": "31",
        "dept": "IT",
        "city": "Chennai"
      },
      {
        "age": "25",
        "dept": "Accounts",
        "city": "Bengaluru"
      },
      {
        "age": "26",
        "dept": "Finance",
        "city": "Kochi"
      }
    ],
    "isActive": true
  },
  {
    "users": [
      {
        "age": "23",
        "dept": "IT",
        "city": "Chennai"
      },
      {
        "age": "22",
        "dept": "Finance",
        "city": "Kochi"
      },
      {
        "age": "21",
        "dept": "Accounts",
        "city": "Bengaluru"
      }
    ],
    "isActive": true
  },
  {
    "users": [
      {
        "age": "28",
        "dept": "IT",
        "city": "Chennai"
      },
      {
        "age": "22",
        "dept": "Finance",
        "city": "Kochi"
      },
      {
        "age": "21",
        "dept": "Accounts",
        "city": "Bengaluru"
      }
    ],
    "isActive": true
  },
  {
    "users": [
      {
        "age": "31",
        "dept": "IT",
        "city": "Kochi"
      },
      {
        "age": "25",
        "dept": "Finance",
        "city": "Bengaluru"
      },
      {
        "age": "26",
        "dept": "Accounts",
        "city": "Chennai"
      }
    ],
    "isActive": true
  },
  {
    "users": [
      {
        "age": "21",
        "dept": "IT",
        "city": "Kochi"
      },
      {
        "age": "45",
        "dept": "Accounts",
        "city": "Bengaluru"
      },
      {
        "age": "26",
        "dept": "Finance",
        "city": "Chennai"
      }
    ],
    "isActive": false
  }
]

the users is nested type

I want to sort the documents based on the following condition

isActive == true && users.dept == "IT" && users.city == "Chennai" with the age sorts in ascending

I am expecting the following result

[
  {
    "users": [
      {
        "age": "23",
        "dept": "IT",
        "city": "Chennai"
      },
      {
        "age": "22",
        "dept": "Finance",
        "city": "Kochi"
      },
      {
        "age": "21",
        "dept": "Accounts",
        "city": "Bengaluru"
      }
    ],
    "isActive": true
  },
  {
    "users": [
      {
        "age": "28",
        "dept": "IT",
        "city": "Chennai"
      },
      {
        "age": "22",
        "dept": "Finance",
        "city": "Kochi"
      },
      {
        "age": "21",
        "dept": "Accounts",
        "city": "Bengaluru"
      }
    ],
    "isActive": true
  },
  {
    "users": [
      {
        "age": "31",
        "dept": "IT",
        "city": "Chennai"
      },
      {
        "age": "25",
        "dept": "Accounts",
        "city": "Bengaluru"
      },
      {
        "age": "26",
        "dept": "Finance",
        "city": "Kochi"
      }
    ],
    "isActive": true
  },
  {
    "users": [
      {
        "age": "31",
        "dept": "IT",
        "city": "Kochi"
      },
      {
        "age": "25",
        "dept": "Finance",
        "city": "Bengaluru"
      },
      {
        "age": "26",
        "dept": "Accounts",
        "city": "Chennai"
      }
    ],
    "isActive": true
  }
]

I tried with script based sorting, I couldn't able to achieve the result. Please help me to sort this out.

Thanks in advance.

1
  • Could you please share your mapping info. I hope you are aware of nested and object type in ES. Just wanted to confirm which one are you using. Commented Nov 14, 2019 at 13:51

0

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.