I'm trying to implement hierarchical facets (Province -> District) using out-of-the-box Search UI. With searchDriver can I do facets like this
Province 1
- District 1-1
- District 1-2
Province 2
- District 2-1
- District 2-2
I'm trying to implement hierarchical facets (Province -> District) using out-of-the-box Search UI. With searchDriver can I do facets like this
Province 1
- District 1-1
- District 1-2
Province 2
- District 2-1
- District 2-2
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
But how would I know that District 2-1 actually related to Province 2?
In that case, there is no direct relationship between the two. You'd have your data structured like so:
{
"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:
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".
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.
Provinces:
[x] Province 2
District:
[ ] 2-1
Does that make sense?
This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
© 2020. All Rights Reserved - Elasticsearch
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant logo are trademarks of the Apache Software Foundation in the United States and/or other countries.