Maria Rauba from Asponte presented how she implemented a multifaceted search using IBM Web Content Manager in Portal. Faceted search is an often requested feature and is not something that comes out of the box in WCM. Components used:
- Custom JSP
- Custom Search Seedlist
- WCM Search component
- Custom Javascript
The HTML Form contains the custom JSP used to render the checkboxes for the faceted search. The search component is placed on the HTML form to show the results of the search. When the search is submitted, custom javascript executes the search against the seedlist.
JSP component was used instead of Taxonomy fields because the taxonomy field is sortable only one way – alphbetical.
Search Component & Search Collection. They used one search component for each language. In the search component you can specify the sort order. Out of the box you can select sort by relevance, date and none. The search collection was scheduled to run every night, but you can schedule the crawler as often as you want.
Custom Seedlist was necessary to support the many levels in the taxonomy. Out of the box seedlist only looks at the last level for the search and does not include the full taxonomy hierarchy. Also many times category names are repeated under different taxonomies, so you have to use a unique identifier (UUID) to make sure the search finds the right categories.
Some issues that were faced:
- Dojo performance for sorting wasn’t as good as it could be, so they reduced the number of items in the list. In the end, the sort time was unacceptable, so they went back to the default sort provided by WCM instead of using the custom sort.
- Caching was an issue when the advanced cache was turned on. They ended up turning cache off for this feature.
- When there were a lot of check boxes, the ran into url length issues.
As a summary, Maria’s solution was
- Dynamic
- Fully multifaceted
- Used only WCM
- Provided a custom sort
- Allowed content authors to manage the content and feed the search appropriately
Overall Maria’s solution was a good way to use out of the box features with some simple customizations.