Catalog search features
Both the simple catalog search and the advanced catalog search provide the features explained in this section.
Boolean expressions
Attributes with Boolean support will have the search expression parsed into its constituent parts with the space character as the separator. The search parts will be expressed as a set of constraints linked by a logical OR operator. As an example, Boolean support for search expression "a b c" will generate the search constraint "a OR b OR c".
Boolean operations are not supported in advance search pages. These operations will be replaced with alternative search criteria for greater control as listed:
- Any of the words
- Any of the words in the search expression offers the broadest search where each result contains one or more of the words in any order. A constraint will be built with each word in the expression linked by logical OR operator.
- All of the words
- All of the words in the search expression offers a narrower search where each result returned contains all the words in any order. A constraint will be built with each word in the expression linked by logical AND operator.
- An exact phrase
- Exact phrase in the search expression offers the narrowest search where each result contains all the words in the exact order.
Rich attributes
Rich attribute search is the same as other horizontal attributes in advance search except the searchable attributes come from the ATTRIBUTE table and the values will search the ATTRVALUE tables. Searching for rich attributes will be offered across the entire catalog and not be constrained to a particular product-to-item relationship hierarchy. The attribute name in the ATTRIBUTE table will be used under the covers as the search term and not the attribute identifier. This enables any matching attribute with the same name, spanning across all product-to-item relationships, to be found and thus offering a means to search using rich attributes across the catalog.
More than one rich attribute input field can be defined to specify the search expression. Once the search expressions are provided, clicking Go or Start search will initiate search execution and invoke the corresponding search data bean to return catalog items in the result page. Boolean expression support will not be offered for rich attribute search terms.
The availability of searchable rich attributes will depend on what has been populated in the ATTRIBUTE table. Retrieval of these rich attributes for building the user interface will be left up to the page designer using either a server access bean.
Price attributes
Two types of price search will be provided: list price and standard price.
List price search
List price search will look for prices in the LISTPRICE table and provides backwards compatibility.
Searches upon list price must be supplied with currency, otherwise it will be assumed to be the store default currency. All prices specified as search terms, including those supplied with currency will be automatically converted to the default store currency before being applied in the search execution.
Operators supported are the same as those available for numeric type. Unless specified, default operator for this types is "equal".
Standard price search
Standard price search will look for prices in the OFFERPRICE table that meet the following criteria:
- The price comes from the standard price list containing the base prices for products in the store catalog.
- The price comes from offers that are in effect at the time the search is performed.
- The price comes from the lowest priced offer with the highest precedence.
To view the SQL query for this search, refer to Standard price search SQL statement.
Searches upon standard price must be supplied with currency, otherwise it will be assumed to be the store default currency. All prices specified as search terms, including those supplied with currency will be automatically converted to the default store currency before being applied in the search execution.
Operators supported are the same as those available for numeric type. Unless specified, default operator for this types is "equal".
Search attribute operators
All string type attributes can be converted to upper case for non-case sensitive search except for those of LONGVARCHAR type. String type attributes will offer support for substring (default) and equality search operations.
All numeric type attributes will offer the following search operations:
- Less than
- Less than or equal to
- Equal (default)
- Not Equal
- Greater than
- Greater than or equal to