Faceted Search concepts

Release 1.3 - ...

Smartsite iXperion Faceted Search is a powerful and highly configurable search technology. In order to provide a rich user experience, it uses a wide range of technology, from complex database queries to advanced SXML technology with extensive ajax support.

Faceted search is an open platform; its database queries are defined in configuration items and the presentation is implemented as smartlets which are completely open and adaptable.

Some of its main concepts are introduced in this article.Search steps

Faceted Search smartlet

The Faceted Search smarlet is the main smartlet which takes care of all the logic for the search environment. It processes the input data, prepares and runs the search query and displays the search result. This smartlet can be used stand-alone or together with helper smartlets such as the Facet smartlets.

Facets

In the context of Faceted search, facets are smartlets that display information related to the current search query. Normally, they display the query result grouped by a given meta property, but they can also display other information, for example, the most popular query terms or the available data sources.

Indexed Search catalogs

Modern databases support an text indexing mechanism to speed up and enhance the search process. Faceted Search can make full use of these catalogs (named full-text indexing for SQL server), but is also has full support for regular SQL search queries (named 'native' search queries). Keep in mind that each technology has its own capabilities and limitations.

Query Definition XML

The query xml contains the definition of all the SQL queries that are executed against the phyiscal data source. The default Query Definition XMLs are located in the folder Configuration/Query Definition XMLs within the Faceted Search smartlet. You can customize theses definitions, or create your own version to query other data sources. The Query Definition XML is passed to the main smartlet using the parameter queryxml (locator) or queryxmlname (name within the Configuration/Query Definition XMLs folder). The internal default for the query xml is Configuration/Query Definition XMLs/Publication which refers to a query xml that can be used for front-end search.

Data Source

A source is a physical object (normally a table or view) that can be used as a query source by Faceted Search. The CMS content is a commonly used as a source, but any other table or view within the same database can also be used. A search query can span more sources. Sources are selected using the sources filter, which can be set by the sources facet. If no source is provided, the first source found in the query xml is used as the default source.

To search in a database, different from the CMS database, a specific query xml must be defined using a specific connection declared in the Smartsite.Data.Config.

Search Base

The Query Definition XML can define multiple queries per source. Such a query is named a search base and can be selected by settings the searchbase parameter on the main smartlet. In the Publication query xml, for example, inclused a special search base for non-full-text (native) searches.

Search Groups

Search Groups are used to map the physical columns in the table Contents to an audience (search users). Examples of audiences are site visitors, content editors and site developers. For each of these audiences, the SearchGroups CTFP setting determines which content types and content type fields they can search and also how the content is filtered.
Site visitors search within the content that is published on (their part of the) site. Content editors also want to search within unpublished content and other CMS objects, like translations. Site developers on the other hand, want to search for macro's and vipers. The default configuration contains three Search Groups: PUB, CMS and SXML, but you can easily add your own. Search Groups are defined using the Manager actions Faceted Search Console|Search Groups and are configured as a CTFP on a content type field.

Field Filters

Field Filters work together with Search Groups to determine which part of the physical content is searchable. The role of field filters is to filter the physical data for the audience. The plaintext filter, for example, removes the tags en SXML logic from the data. This is used by Search Group PUB for front-end search. Field filters are configured as parameters within the SearchGroups CTFP.

Search Profile

A Search Profile is a named subset of the searchable content. An example of search profile usage is the 'Search only within titles' option from the search examples. Search Profiles are configured in the Query Definition XML and can be selected using by setting a property on the main smartlet.

Search Filters

Search Filters can be used to, as the name implies, filter the query result. Selecting a facet results in a filter being added to the query, but filters can be (pre-)selected from many sources such as form fields or smartlet parameters. Internally, filters are stored as a JSON.
Faceted Search supports advanced filter operations; filters of the same type can be inverted or combined using the boolean AND  or OR operator.