Personal tools
You are here: Home Products Plone Roadmap #219: New site search implementation
Document Actions

#219: New site search implementation

Contents
  1. Motivation
  2. Proposal
  3. Implementation
  4. Deliverables
  5. Risks
  6. Progress log
  7. Participants
by Wichert Akkerman last modified December 14, 2007 - 20:08
Replace the current site search with a new implementation which shows search results per (group of) content types, allowing the user get more results from a single group.
Proposed by
Wichert Akkerman
Proposal type
User interface
State
draft

Motivation

Searching in Plone sites has a tendency to overwhelm the user with results that are not relevant. For example a user is interested in PAS and does a search on it on plone.org. The search results consists of lots of different types of items, many of which will not be relevant (PlonePAS releases, screenshots, etc.). Users have to wade through all of them to find the useful results.

The section-specific search improves this a lot, but is still not ideal.

Proposal

I propose to modify the search results for both live search and normal search to divide the results in different groups, giving the user a quick overview of the types of results and allowing him to get more results from a specific category.

The search results for both livesearch and normal search will show the available groups and for each group the best search results. By clicking on the group title a page will be shown with all results from that group (batched if needed). The livesearch on www.apple.com is an example of how this can work.

There can be two different ways of grouping search: type-based and category based.

Type based grouping
This works by grouping content types into groups. For example common groups can be documents (ATDocument, ATNewsItem, ATEvent) and files (ATFile, ATImage, blob files, etc.).
Category based grouping
Commonly a site hierarchy defines different categories. For example plone.org has separate trees for products, documentation and organisational information. I propose to add a 'this is a category' flag to the schema for folderish types. Enabling this makes a group a category that can be used for grouping.

Implementation

 There are several products/packages affected by this proposal:

  • plone.app.portlets: the search portlet needs to be updated
  • plone.app.layout: this will gain the views and logic for the search pages
  • CMFPlone: the current search templates and scripts here can be deprecated
  • ATContentTypes: schema changes for the folder types are needed (see below)

To manage the type based grouping we will need a place to store the groups, their titles and content types. This can be done with a combination of a persistent local utility, a control panel and GS export/import handlers.

To manage category-based grouping a new marker interface will be used which can be toggled through a field on the schema. When searching we can quickly get the list of categories to used by looking in the catalog for all objects with that marked interface.

 

Deliverables

 New versions of all packages and products mentioned under implementation.

Risks

 This change will break customisations of the current search templates.

Progress log

 A very basic implementation of type-based grouping which groups per individual type was made during the sprint at the Plone conference in Naples. This can act as a basis for the other changes.

Participants

 

Framework team vote

Posted by Raphael Ritz at December 21, 2007 - 16:27
-1 because of the risk of breaking customizations as discussed on the framework team list

Framework vote

Posted by Martijn Pieters at December 21, 2007 - 17:14
-1 because we can't make this optional.

Framework team vote

Posted by Andreas Zeidler at December 22, 2007 - 09:57
+1 provided the new result listing can be made optional (see http://lists.plone.org/pipermail/framework-team/2007-December/001622.html)

Framework team vote

Posted by Tom Lazar at December 22, 2007 - 15:20
+1 but the grouping behaviour should be made optional, configurable via the search control panel (i'm fine with setting the default to 'grouping')

Framework team vote

Posted by Danny Bloemendaal at December 22, 2007 - 16:07
+1 This is a necessary improvement imo.

For 4.0?

Posted by Jon Stahl at February 20, 2008 - 08:56
This is a really good idea; it would be a shame to lose it. Perhaps this would be a good PLIP for 4.0, where we can perhaps afford to break some customizations. (Personally, I think modifications to the search results templates are relatively uncommon.)

Not lost at all

Posted by Wichert Akkerman at February 20, 2008 - 09:23
Modifications to the search results page are not that uncommon. Ploneboard (trunk) is an example of doing that and shows that it can be very useful for local-to-section searches.

I still very much intent to implement this, but 4.0 is indeed a better target than 3.x.

For any issues with the web site functionality, please file a ticket.

Please consult the policy on plone.org content if you want your content published on this site.

Servers and hosting by