# Hierarchical Facets using out-of-the-box Search UI

**URL:** https://discuss.elastic.co/t/hierarchical-facets-using-out-of-the-box-search-ui/316314
**Category:** Elastic Search
**Tags:** elastic-app-search
**Created:** [October 11, 2022, 10:29am UTC](https://discuss.elastic.co/t/hierarchical-facets-using-out-of-the-box-search-ui/316314 "2022-10-11T10:29:59Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![Rustin\_Spencer](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/rustin_spencer/32/103495_2.png) [@Rustin\_Spencer](https://discuss.elastic.co/u/Rustin_Spencer)
#### Post date: [October 11, 2022, 10:29am UTC](https://discuss.elastic.co/t/hierarchical-facets-using-out-of-the-box-search-ui/316314/1 "2022-10-11T10:29:59Z")

</div>

I'm trying to implement hierarchical facets (Province -\> District) using out-of-the-box Search UI. With searchDriver can I do facets like this

```auto
Province 1
    - District 1-1
    - District 1-2
Province 2
    - District 2-1
    - District 2-2

```

---

<div class="post-metadata">

### Author: ![JasonStoltz](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/jasonstoltz/32/49893_2.png) [@JasonStoltz](https://discuss.elastic.co/u/JasonStoltz)
#### Post date: [October 11, 2022, 11:53am UTC](https://discuss.elastic.co/t/hierarchical-facets-using-out-of-the-box-search-ui/316314/2 "2022-10-11T11:53:35Z")

</div>

The easiest way to implement this is to make District a separate facet, rather than trying to do a hierarchy: [First class support for Hierarchical facets · Issue #285 · elastic/search-ui · GitHub](https://github.com/elastic/search-ui/issues/285#issuecomment-1188032266)

---

<div class="post-metadata">

### Author: ![Rustin\_Spencer](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/rustin_spencer/32/103495_2.png) [@Rustin\_Spencer](https://discuss.elastic.co/u/Rustin_Spencer)
#### Post date: [October 11, 2022, 8:46pm UTC](https://discuss.elastic.co/t/hierarchical-facets-using-out-of-the-box-search-ui/316314/3 "2022-10-11T20:46:31Z")

</div>

But how would I know that District 2-1 actually related to Province 2?

---

<div class="post-metadata">

### Author: ![JasonStoltz](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/jasonstoltz/32/49893_2.png) [@JasonStoltz](https://discuss.elastic.co/u/JasonStoltz)
#### Post date: [October 12, 2022, 3:14pm UTC](https://discuss.elastic.co/t/hierarchical-facets-using-out-of-the-box-search-ui/316314/4 "2022-10-12T15:14:17Z")

</div>

In that case, there is no direct relationship between the two. You'd have your data structured like so:

```auto
{
  "id": 1,
  "province": "Province 1",
  "district": "District 1-1"
},
{
  "id": 2,
  "province": "Province 1",
  "district": "District 1-2"
},
{
  "id": 3,
  "province": "Province 2",
  "district": "District 2-1"
}

```

You would facet on "province", first, which would allow you to show the entire list of Provinces:

```auto
Provinces:
[] Province 1
[] Province 2

```

After a user has selected a province (or in other words, has applied a filter on "province"), you can then facet on "district".

At this point, since you're data is filtered on a particular "province", like "Province 1", for instance, you'd only see results "district" facets for districts that are actually in "Province 1".

```auto
Provinces:
[x] Province 1

District:
[] District 1-1
[] District 1-2

```

Similarly, if a user would have selected "Province 2", you would then only see district values that are  
in Province 2.

```auto
Provinces:
[x] Province 2

District:
[] 2-1

```

Does that make sense?

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)
#### Post date: [November 9, 2022, 3:14pm UTC](https://discuss.elastic.co/t/hierarchical-facets-using-out-of-the-box-search-ui/316314/5 "2022-11-09T15:14:25Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
