




WebSphere Commerce search interface
The search interface is composed of two portions: a set of control parameters
and an XPath key. All search parameters are defined as a control parameter. These parameters are
extracted in an internal Java representation called the SelectionCriteria object. As
search parameters can largely vary, it is difficult to define a common logical schema that can cover
all scenarios. Using control parameters helps with this structural restriction, and reduces the
overall parser overhead at runtime.
- Access profile (_wcp.ap)
- Allows the runtime to perform command-level access control on the given search operation. However, the content access control is not performed, as entitlement is performed by the contract component through one of the expression providers specified in the search profile. Another application of access profiles in a search expression is for triggering customization points using InsertMoreData.
- Search profile (_wcf.search.profile)
- Defines a collection that groups a set of search runtime parameters such as search index name, search index fields, expression providers, paging and sorting, and search feature configurations such as text highlighting, facets, and spelling correction. It is therefore possible to control the storefront search experience at a page-level by using different search profiles.
- Filters (_wcf.search.(exclude.)term, _wcf.search.category, _wcf.search.(exclude.)facet, _wcf.search.manufacturer, _wcf.search.price.minimum/maximum)
- These parameters are search criteria that trigger a search operation to perform. As these actions should be tracked for later reference, these parameters cannot be sticky or carried forward to future search requests. For example, performing faceted navigation after a keyword search is returned. This operation first involves a search by keyword. Then, the keyword is stored in the second facet search request's context.
- Filters (_wcf.search.meta)
- Contains the input meta data string, that is, the previous click history of the current sequence of requests. it remembers only parameters provided by the user through the storefront. Do not store internal meta information, such as store-path, that can be regenerated upon the next request. The exceptions are that the only user-specified parameters not remembered are keywords and category ID. They are passed in at all times for the purpose of invoking the marketing logic to generate the proper e-Marketing Spots.
- Match type (_wcf.search.type)
- The match type can be used to define more precise search instructions on how the search engine
should perform the search operation with the given set of keywords.
For example, the following samples provide several usage combinations for two search terms, t1 and t2, against two fields, f1 and f2:
- Include EXACT
+(f1:"t1 t2" f2:"t1 t2")
- Include NONE
-(f1:(t1 t2) f2:(t1 t2))
- Include ALL
+(f1:(+t1 +t2) f2:(+t1 +t2))
- Include ANY
+(f1:(t1 t2) f2:(t1 t2))
- Exclude EXACT
-f1:"t1 t2" -f2:"t1 t2"
- Exclude ANY or ALL
-f1:(t1 t2) -f2:(t1 t2)
- Include EXACT
- Custom search expression (_wcf.search.expr)
- Optional: The caller can include a search engine native expression in the request using this control parameter. However, this is typically not recommended since this turns the search expression into a search engine-specific instruction.
Mandatory search expression (_wcf.search.mandatory.expr)
The value of this parameter is passed in at all times during search or navigation. It is only used in
SolrSearchByCustomExpressionProvider
to append the given expression to the main search query with anAND
operator.- Custom sorting (_wcf.search.sort)
- Allows the caller to override the relevancy ranking order from the search engine. The value given in this parameter is a logic name defined in the search profile where it is then mapped into a physical index column name and sorting order.
- Internal use control parameters
-
- _wcf.search.index
- Defines the core name for the search request.
- _wcf.search.internal.experiment
- The value of this parameter is used to represent the experiment for AB testing. It consists of four part identifiers in the following sequence: marketing spot, activity, experiment, and test element.
- _wcf.search.internal.filterquery
- Defines a multivalue list of filter query criteria.
- _wcf.search.internal.meta
- Contains additional meta information at runtime.
- _wcf.search.internal.sort
- Contains the value of this parameter to carry sorting for internal nested searches.
- _wcf.search.internal.boostquery
- Contains the value of this parameter to contain the boost query used to influence the relevancy score of the results. This parameter is used in conjunction with the _wcf.search.internal.query. The boost query affects the scoring of the items that already match the query in the _wcf.search.internal.query. If a matched item also matches the _wcf.search.internal.query, it is scored higher or lower, depending on whether the boost query increases or decreases the relevancy score.
- _wcf.search.internal.mandatory.query
- Contains partial search expressions to be used in the query section of the search expression.
Each element in this array is treated as a separate term and is
AND
'ed together to form the final expression for the search engine. That is, all expressions must match the searched documents. These expressions can be used in conjunction with the expressions from _wcf.search.internal.optional.query. Not all values specified should be remembered in the meta string.Note: This is a multivalue parameter. - _wcf.search.internal.optional.query
- Contains partial search expressions to be used in the query section of the search expression.
Each element in this array is treated as a separate term is
OR
'ed together to form the final expression for the search engine. That is, at least one of the expressions must match the searched documents. These expressions can be used in conjunction with the expressions from _wcf.search.internal.mandatory.query. Not all values specified should be remembered in the meta string.Note: This is a multivalue parameter. - _wcf.search.internal.filterquery
- Contains expressions for a filtered query expression. Each element in this array is treated as a
separate term and are assigned individually as separate
fq
parameters when sending to the search engine. These values can resemble filters (also known asAND
'ed - intersections) of all the result sets.Note: This is a multivalue parameter. - _wcf.search.internal.meta
- Used by SolrSearchMetaTokenExpressionProvider to remember some of the user-specific click
history and encode them into a meta string to be reused in future search requests. In addition,
similar to the _wcf.search.internal.query, the decoded value of this parameter is used in the query
section of the search expression. Each element in this array is treated as a separate term and will
be
OR
'ed together to form the final expression for the search engine. _wcf.search.intent.term
The value of the parameter is the term that the user intends to search, the difference between _wcf.search.intent.term and _wcf.search.term is that _wcf.search.term has been escaped with Solr reserved characters.
_wcf.search.originalterm
The value of the parameter is the original term that performs the second spell-corrected search request, _wcf.search.originalterm is not escaped with Solr reserved characters as _wcf.search.intent.term.
_wcf.search.source
Used as a notion for identifying the source nature of the keyword search request from the storefront.
_wcf.search.internal.synonyms
Used internally for synonym expansion.
_wcf.search.catalogfilter
_wcf.search.contract
Control parameters used internally for representing contract entitlement information.
_wcf.search.facet.field
_wcf.search.facet.properties
_wcf.search.facetquery.field
Used internally to represent facet operations.
_wcf.search.internal.workspace.schema
_wcf.search.internal.workspace.indexname
Used internally to represent current workspace-related information.
_wcf.search.internal.edismax.mm
Used internally to represent the minimum number of search criteria that must match.
_wcf.search.internal.edismax.queryfields
Used internally to represent the list of query fields and their corresponding boost factors.