-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Faceting #10995
Comments
etj
added a commit
to etj/geonode
that referenced
this issue
May 2, 2023
etj
added a commit
to etj/geonode
that referenced
this issue
May 2, 2023
etj
added a commit
to etj/geonode
that referenced
this issue
May 3, 2023
etj
added a commit
to etj/geonode
that referenced
this issue
May 3, 2023
etj
added a commit
to etj/geonode
that referenced
this issue
May 3, 2023
etj
added a commit
to etj/geonode
that referenced
this issue
May 3, 2023
etj
added a commit
to etj/geonode
that referenced
this issue
May 4, 2023
etj
added a commit
to etj/geonode
that referenced
this issue
May 4, 2023
etj
added a commit
to etj/geonode
that referenced
this issue
May 4, 2023
etj
added a commit
to etj/geonode
that referenced
this issue
May 4, 2023
etj
added a commit
to etj/geonode
that referenced
this issue
May 4, 2023
etj
added a commit
to etj/geonode
that referenced
this issue
May 4, 2023
etj
added a commit
to etj/geonode
that referenced
this issue
May 5, 2023
etj
added a commit
to etj/geonode
that referenced
this issue
May 9, 2023
etj
added a commit
to etj/geonode
that referenced
this issue
May 10, 2023
etj
added a commit
to etj/geonode
that referenced
this issue
May 11, 2023
etj
added a commit
to etj/geonode
that referenced
this issue
May 11, 2023
etj
added a commit
to etj/geonode
that referenced
this issue
May 15, 2023
etj
added a commit
to etj/geonode
that referenced
this issue
May 15, 2023
etj
added a commit
that referenced
this issue
May 15, 2023
etj
added a commit
that referenced
this issue
May 15, 2023
etj
added a commit
that referenced
this issue
May 15, 2023
etj
added a commit
that referenced
this issue
May 15, 2023
etj
added a commit
that referenced
this issue
May 15, 2023
etj
added a commit
that referenced
this issue
May 15, 2023
@etj @giohappy I'm currently testing the facet for
Screenshot shows the page reload with the selected admin (1000) |
Error: If a thesaurus keyword does not have a Label entry for the requested language, it will not be counted. 9e3c150 fixes this problem. Furthermore, it returns the alternate label as topic label, and its "is_localized" flag will be set to |
ridoo
pushed a commit
to Thuenen-GeoNode-Development/geonode
that referenced
this issue
Jun 2, 2023
* [Fixes GeoNode#10995] GNIP#94 - Faceting - Base framework * [Fixes GeoNode#10995] Faceting - Some implementations
etj
added a commit
that referenced
this issue
Jun 29, 2023
etj
added a commit
that referenced
this issue
Jun 29, 2023
This was referenced Jul 5, 2023
Closed
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Overview
Implement an API for facet filtering
Motivation
Current faceting at the moment
Proposal
API endpoints
_GEONODE_VERSIONED_API_/facets
Returns a list of available facets
The returned payload is a dict
include_topics
(bool): include first n topics to every facetinclude_topics
, this field is used to pre-filter resources (see pre-filtering)lang
: bool, opt, return localized labels if possibleadd_links
: bool, add links to facets endpoint_GEONODE_VERSIONED_API_/facets/<facet_name>
Returns info for the requested facet.
First page of topics is included.
page
/page_size
: opt, (int,int) topics pagination paramstopic_contains
: 0..1, string, used to pre-filter topics with a stringlang
: 0..1, str (2 letters): return localized labels if possibleadd_links
: 0..1, bool: add links to prev/next pagesPre-filtering
The
filter
parameters are parsed by the DREST library and are in the formfilter{FIELD_EXPRESSION}=VALUE
, for instance:filter{metadata_only}=false
filter{date.gte}=2023-06-01T00:00:00
Payloads
facet
is a dict:name
/facet/<facet_name>
entrypoint)key
label
is_localized
type
region
,category
,people
,thesaurus
hierarchical
order
thesauri have their own internal ordering
(where can it be configured?)
link
-
/facets
: requested using theadd_links
param-
/facets/<ID>
: N/Aprev
-
/facets
: N/A-
/facets/<ID>
: requested using theadd_links
paramnext
-
/facets
: N/A-
/facets/<ID>
: requested using theadd_links
paramtopics
-
/facets
: only present ifinclude_topics
requested-
/facets/<ID>
: always presenttopics
is a dict:page
page_size
start
total
items
topic
is a dict, having at least 3 mandatory elements:key
label
is_localized
count
The topics may also have other elements, according to the Facet handler;
i.e.:
e.g.:
Filtering
The facets payloads provide all the info to create a filter on the resources.
In order to create a filter on the topic you need to add in the KVP string
FACET_KEY=ITEM_KEY
.For instance, if we have this payload:
in order to filter by "Zone a rischio naturale" we need to add in the search query
filter{tkeyword}=36
Configuration
The faceting framework is extensible and configurable:
FacetProvider
Backwards Compatibility
No backward compatibility issue, since the idea is to implement a brand new entrypoint
Future evolution
The idea is to implement filtering and faceting based on the current DB architecture.
In the future we way want to improve the filtering functionalities by integrating an indexing engine (Solr, ...), and leave this interface as much stable as possible.
The text was updated successfully, but these errors were encountered: