= "Narrow your search" widget =
|| '''Date''' || 2012/09/11 ||
|| '''Contact(s)''' || François Prunayre ||
|| '''Last edited''' || 2012/09/11 ||
|| '''Status''' || Ongoing ||
|| '''Assigned to release''' || 2.9.x ||
|| '''Resources''' || Resource available ||
[[PageOutline(2-3,,inline)]]
== Overview ==
This proposal aims to provide a « Narrow your search » module aka as faceted search (http://en.wikipedia.org/wiki/Faceted_search). This module allows aggregation based on criteria (e.g. keywords, organization, dates, ...) with frequency for the current search. Output view could be a list (with link to add a specific criteria to the search) and optionnaly a tagcloud view (http://en.wikipedia.org/wiki/Tag_cloud).
On the client side, user interacts with facets using :
* the facets summary used to select new filter
* the facet breadcrumb which indicates which filter has been applied
and allows user to remove a filter.
Those 2 components are created and interact with search form and search results widgets.
A first implementation has been made on geocat.ch using the internal summary module in 2008. This proposal is using Lucene faceting module to compute the summary.
=== Proposal Type ===
* '''Type''': GUI Change, LuceneSearcher
* '''App''': !GeoNetwork
* '''Module''': Search Interface
=== Links ===
* '''Documents''':
* example http://www.geocatalogue.fr/, http://www.geocat.ch
* '''Email discussions''':
* '''Other wiki discussions''':
=== Voting History ===
* Vote proposed by X on Y, result was +/-n (m non-voting members).
----
== Motivations ==
* Improve user search experience : facets help user to quickly refine search
* Better performance : Lucene facet module using its own taxonomy index is faster than computing summary.
* New way of presenting information : facet could be use to provide catalog indicators using charts (http://www.youtube.com/watch?v=ISEOKOq6t2Q&feature=plcp)
== Proposal ==
=== Faceted search widgets ===
TODO
=== Facet configuration ===
The facet configuration define which field in the index to use to compute the summary.
The configuration is stored in WEB-INF/config-summary.xml. For each facet configure an item with the following properties:
* name: the name of the facet (ie. the tag name in the XML response)
* plural: the plural for the name (ie. the parent tag of each facet values)
* indexKey: the name of the field in the index
* (optional) sortBy: the ordering for the facet. Defaults is by count.
* (optional) sortOrder: asc or desc. Defaults is descendant.
* (optional) max: the number of values to be returned for the facet. Defaults is 10.
When an item is modified or added, the index MUST be rebuild.
Configuration example:
{{{
}}}
Facet configuration is loaded on startup. It could be reloaded from the administration panel using the reload configuration button.
=== Facet response ===
Facet summary is returned in the XML response. The response structure is the following:
{{{
...
}}}
The summaryOnly=true parameter return only the summary without records.
=== Performance analysis ===
[[Image(geonetwork-test-on-lucene-faceting-module.png)]]
=== Changes ===
* Lucene
* Update to version 3.6.1
* New dependency : lucene-facet
* LuceneSearcher.makeSummary()
* Add an option to search services to only produce the summary
* LuceneConfig
* Summary configuration is part of LuceneConfig
* Summary configuration could be reload dynamically when the LuceneConfig is reload.
=== Backwards Compatibility Issues ===
== Risks ==
== Participants ==
* As above