wiki:NarrowYourSearchWidget

Version 10 (modified by fxp, 12 years ago) ( diff )

--

"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

  1. Overview
    1. Proposal Type
    2. Links
    3. Voting History
  2. Motivations
  3. Proposal
    1. Faceted search widgets
    2. Facet configuration
    3. Facet response
    4. Performance analysis
    5. Changes
    6. Backwards Compatibility Issues
  4. Risks
  5. Participants

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

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:

<item name="keyword" plural="keywords" indexKey="keyword"/>

<item name="createDateYear" plural="createDateYears" indexKey="createDateYear"
				sortBy="value" sortOrder="asc" max="40"/>

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:

<response>
  <summary count="4797" type="local">
    <keywords>
      <keyword count="1280" name="soil types"/>
      <keyword count="1003" name="geology"/>
      <keyword count="958" name="soils"/>
      <keyword count="894" name="soil classification"/>
      <keyword count="695" name="land use"/>
      <keyword count="609" name="topography"/>
      <keyword count="595" name="land suitability"/>
      <keyword count="550" name="land"/>
      <keyword count="508" name="physiography"/>
      <keyword count="507" name="crops"/>
    </keywords>
    <spatialRepresentationTypes>
      <spatialRepresentationType count="2641" name="grid"/>
      <spatialRepresentationType count="625" name="vector"/>
    </spatialRepresentationTypes>
  </summary>
  <metadata>
   ...

The summaryOnly=true parameter return only the summary without records.

Performance analysis

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

Attachments (4)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.