Feature Pack 4Feature Pack 2Feature Pack 5Feature Pack 3Feature Pack 6

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.
See WebSphere Commerce search configuration file (wc-search.xml) (WC EAR) for more information.
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.
To achieve sticky behavior, a server-generated meta string is attached with all subsequent requests. This meta string contains all previously-executed search context, such as facets that have been applied. This meta string is encoded using UTF8 base64 and is therefore URL-friendly.
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)
The following subexpression is appended, where the value of this parameter is used for identifying whether to include SKU as part of the search scope:
  • Exclude SKU -catenttype_id_ntk_cs:ItemBean
  • Only SKU +catenttype_id_ntk_cs:ItemBean
The possible values for assigning to _wcf.search.type are:
  • 0: ANY (exclude SKU)
  • 1: EXACT (exclude SKU)
  • 2: ALL (exclude SKU)
  • 3: NONE (exclude SKU)
  • 10: ANY (include SKU)
  • 11: EXACT (include SKU)
  • 12: ALL (include SKU)
  • 13: NONE (include SKU)
  • 100: ANY (only SKU)
  • 101: EXACT (only SKU)
  • 102: ALL (only SKU)
  • 103: NONE (only SKU)
  • Introduced in Feature Pack 31000: ANY (include products, kits, bundles, category level SKU) (exclude product level SKU)
  • Introduced in Feature Pack 31001: EXACT (include products, kits, bundles, category level SKU) (exclude product level SKU)
  • Introduced in Feature Pack 31002: ALL (include products, kits, bundles, category level SKU) (exclude product level SKU)
  • Introduced in Feature Pack 31003: NONE (include products, kits, bundles, category level SKU) (exclude product level SKU)
  • Introduced in Feature Pack 310000: ANY (include category level SKU) (exclude products, kits, bundles, product level SKU)
  • Introduced in Feature Pack 310001: EXACT (include category level SKU) (exclude products, kits, bundles, product level SKU)
  • Introduced in Feature Pack 310002: ALL (include category level SKU) (exclude products, kits, bundles, product level SKU)
  • Introduced in Feature Pack 310003: NONE (include category level SKU) (exclude products, kits, bundles, product level SKU)
The value of this parameter must be passed in at all times during search or navigation, since it is not remembered by the meta string.
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.
Feature Pack 5 or laterMandatory search expression (_wcf.search.mandatory.expr)
Feature Pack 5 or laterThe 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 an AND 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.
For example:

<_config:sort>
  <_config:field name="1" value="mfName_ntk_cs asc" />
  <_config:field name="2" value="name_ntk_cs asc" />
  <_config:field name="3" value="price_* asc" /> 
  <_config:field name="4" value="price_* desc" /> 
</_config:sort>
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 as AND'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.
Feature Pack 5 or later_wcf.search.intent.term
Feature Pack 5 or laterThe 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.
Feature Pack 5 or later_wcf.search.originalterm
Feature Pack 5 or laterThe 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.
Feature Pack 5 or later_wcf.search.source
Feature Pack 5 or laterUsed as a notion for identifying the source nature of the keyword search request from the storefront.
Feature Pack 5 or laterThe following are the acceptable values:
Q
Quick search
A
Advanced search
S
Spell correction
N
Navigation
O
Others
Feature Pack 5 or later_wcf.search.internal.synonyms
Feature Pack 5 or laterUsed internally for synonym expansion.
Feature Pack 5 or later_wcf.search.catalogfilter
Feature Pack 5 or later_wcf.search.contract
Feature Pack 5 or laterControl parameters used internally for representing contract entitlement information.
Feature Pack 5 or later_wcf.search.facet.field
Feature Pack 5 or later_wcf.search.facet.properties
Feature Pack 5 or later_wcf.search.facetquery.field
Feature Pack 5 or laterUsed internally to represent facet operations.
Feature Pack 5 or later_wcf.search.internal.workspace.schema
Feature Pack 5 or later_wcf.search.internal.workspace.indexname
Feature Pack 5 or laterUsed internally to represent current workspace-related information.
Feature Pack 6 or later_wcf.search.internal.edismax.mm
Feature Pack 6 or laterUsed internally to represent the minimum number of search criteria that must match.
Feature Pack 6 or laterBy default, all words or phrases specified in the q parameter are treated as optional clauses unless they are preceded by + or - characters.
Feature Pack 6 or laterWhen working with the optional clauses, the mm option enables the choice to select the minimum number of clauses that must match (mm).
Feature Pack 6 or laterThe default value is 1. However, when using the All match type, the default value is set to 100%.
Feature Pack 6 or later_wcf.search.internal.edismax.queryfields
Feature Pack 6 or laterUsed internally to represent the list of query fields and their corresponding boost factors.