Version: CMS 10, 10.x, CMS 8, 8.x, CMS 9, 9.x
August 30, 2013
Last updated: 1/30/2021
Because searching by keywords can sometimes return an overwhelming number of results, limiting the initial list to a more relevant result set would often be more helpful in locating prime interest pages.
The idea behind faceted searches is that, after executing a search, users can choose a category value on the returned results to narrow the scope of the initial list. Typically, users have the option to unhook selected filters and return to previous views.
Implementation of a Faceted Search solution in the Ingeniux CMS is outlined below, using the example of a Google Custom Search XML result set.
- Categorize pages in the site with values that will drive the Faceted Search taxonomy listing in a Search Results Page and publish.
- Create a Search Results Page schema that features an insert element (element name: Search) and a taxonomy navigation element (element name: Faceted Search): sample schema.
- Create a Search Results Page in the CMS, enter the Google Custom Search URL into the Insert element (example: http://www.google.com/cse?cx=ENTER REQUIRED ID HERE&client=google-csbe&output=xml_no_dtd&q=q&start=start&getfields=schema.pageID.cat). The getfields values in the query string are dot-delimited and essential to generate the needed tags in the XML feed.
Set up the taxonomy navigation (Faceted Search) in this or a similar fashion:
* Pick a Category = select any applicable parent categories with or without sub-categories; sample,
* Include Pages = [un-checked], Depth = 2, all other settings = un-defined.
- Include additional meta tags in the head section of the implementation code files: meta tags,
Finally, publish the Search Results Page. It will take two or more days until all pages are indexed and the xml feed will contain the needed tags: example.
- Implementation Code
- Keep a list of variables within the Search Results Page template: variables,
- Display paginated results per keyword entry and Facetted Search category selection: example,
- Invoke the Faceted Search categories list: example,
- Integrate pagination: example.
- Testing the implementation
Publish once again the Search Results Page, search by a keyword, verify correct results display, verify correct taxonomy and sub-category listing, and navigate to the xml document of the page (add ?tfrm=4 to the URL). Verify that there are result nodes that contain tags with name="pageID", name="cat", and name="schema",
On the Search Results Page, click on a category and verify that the new list contains only items that match keyword and selected category.