Profile |
The IBM_Global search profile is the base search
profile. It contains all common settings and properties that are reusable
for most search scenarios. Each of these settings can be individually
overridden for additional customization. Other search profiles
that are provided in the wc-search.xml file include:
- AutoComplete
- SearchTermAssociation
- IBM_findCatalogEntryByName
- IBM_findCatalogEntryByNameAndShortDescription
- IBM_findCatalogEntryByNameAndShortDescriptionInDetail
- IBM_findCatalogEntryByUnstructureField
- IBM_findNavigationSuggestions
- IBM_Global_Unstructured
- IBM_Global_WebContent
- IBM_findAttachmentByCatentryId
- IBM_findAttachmentByContent
- IBM_FilteredCatalogEntry
- IBM_CatalogEntryEntitlement
|
Query |
Declares properties that influence how the query
expression gets executed against the search server at run time. Default parameters can be defined in the wc-component.xml file.
For more information, see Search properties in the component configuration file (wc-component.xml) (WebSphere Commerce EAR). It
contains the following parameters:
- maxRows
- Restricts the maximum number of search results per page. The default
value is:
- 500
- 50
- maxTimeAllowed
- Restricts the maximum amount of time allowed (in milliseconds)
for any query to run. If the query takes more time than specified,
a timeout occurs and partial (or no) results might be returned. If
the value is null, the parameter is removed from the request. The
default value is:
- debug
- Requests the search server to generate additional debug messages.
The default value is false.
- preview
- Determines the level of details for the store preview:
- 0 = Minimal, which includes marketing rules.
- 1 = Summary, which includes marketing rules, and index status.
- 2 = Detailed, which includes marketing rules, index status, and
query explanations.
The default value is 2. The default value is 1.
- price
- Determines the display mode for showing prices in the storefront:
- 0 = Computed, which includes:
- Summary: prices only for the current page are calculated at run
time.
- Hide price facets.
- Show computed price in each result.
- Hide price range search in Advanced Search page.
- Usage: prices are not populated in the search index.
- 1: Indexed, which includes:
- Summary: all prices are retrieved from the search index.
- Show price facets with price range configured in facet configuration
table.
- Show indexed price in each result.
- Show price range search in Advanced Search page.
- Usage: prices are populated in the search index.
- 2: Mixed, which includes:
- Summary: search result contains computed prices, while price facets
use indexed prices.
- Show price facets with price range configured in facet configuration
table.
- Show computed price in each result.
- Show price range search in Advanced Search page.
- Usage: prices for all supported currencies are populated in the
search index.
- The default value is 1.
Note: standard offer price is indexed, with price value set to 1, search
returns with product's standard offer price, any adjustment from price rule or contract price is not
reflected. Important: When the price mode is set to 0 or 2, REST calls to the
storefront will not automatically return price information. Even if set as the default, price modes
0 or 2 must also be declared in the REST call in order to retrieve price information. Use the GET
query parameter priceMode={priceMode} in REST calls, where
{priceMode} is {0} or {2}, when using these modes.
- statistics
- Requests the search server to capture search-related statistics.
When this option is enabled, statistical data is cached in memory
until the batch size (defined as SearchStatisticsBatchInsertSize in wc-component.xml under
ExtendedConfiguration) is reached. This is done to minimize the amount
of traffic caused as a result of search statistics gathering. The
default value is false.
A list of mandatory expression providers
is called upon each search request. Note: These providers cannot be
customized or reconfigured.
- SolrSearchProfileNameValidator
- This expression provider is for validating the search profile
name from _wcf.search.profile.
- SolrSearchIndexNameValidator
- This expression provider is for validating the index core name.
It can also determine the name if not specified by:
- Checking if _wcf.search.index is passed in as part of the expression
- If not, then look up the core name from the given search profile
- Otherwise, try to derive the core name by making use of the store
ID to determine the master catalog ID and the locale name.
The resulting index name is added back into the SelectionCriteria
object (_wcf.search.index) for other downstream processing.
- SolrSearchDecodeMetaTokenExpressionProvider
- A Solr specific implementation of the search expression provider
for decoding the meta string by calling SolrSearchMetaTokenDecoder.
The meta string is used for representing the search context, such
as the breadcrumb trail.
- SolrSearchEncodeMetaTokenExpressionProvider
- This is a Solr specific implementation of the search expression
provider for encoding the meta string. This provider encodes the meta
string stored in _wcf.search.meta so that it can be reused later to
represent the current facet state.
- SolrSearchExpressionValidator
- This search expression provider ensures the query expression is
not empty. If so, it generates a default all inclusive condition
(*:*) and
adds it back to the SelectionCriteria object (_wcf.search.internal.optional.query).
It also ensures all special characters are escaped properly before
passing down to the search engine.
An optional list of expression providers
can be specified. A search provider is used for compiling a business
expression from the caller to an executable search engine expression.
Depending on the given search profile, other business components might
also get involved, such as marketing for rule-based merchandising,
or contract for entitlement. Each business component is responsible
for contributing a portion of the search expression, which gets combined
with the main search expression. The consolidated search expression
is executed by the search processor. The following is a list
of predefined expression providers provided by default:
- SolrSearchNoSearchResultsExpressionProvider
- This expression provider generates a search that returns no results.
This is necessary when using the Data Service Layer and search profile
capabilities, without having a full mediation occur for the entire
CatalogNavigationView noun. A search results filter is used to populate
the new area of the noun.
- SolrSearchBasedMerchandisingExpressionProvider
- This is a Solr specific implementation of the search-based merchandising
expression provider. This provider calls the marketing component to
run search rules. Search rules can apply to all searches or target
specific search keywords. They might add additional constraints to
the search request to influence the order of the results, and add
new conditions to the search query with the intention of adding new
products to search results.
For example, search rules might scope
search results to contain only products that are in stock. They can
also elevate products that meet a specific criteria (such as brand,
profit margin or customer ranking) to the top of the search result. The
query fragments produced by search rules are added back into the SelectionCriteria
object for other downstream processing:
- _wcf.search.internal.filterquery
- _wcf.search.internal.optional.query
- _wcf.search.internal.mandatory.query
- _wcf.search.internal.boostquery
- _wcf.search.internal.sort
- _wcf.search.term
Note: This provider should run before SolrSearchByKeywordExpressionProvider
to ensure that search terms can be replaced successfully by the Add
or Replace Search Criteria marketing action.
- SolrSearchByKeywordExpressionProvider
- This search expression provider is for handling the search by
keyword request. This provider helps convert an XPath expression into
a Solr specific expression. The following is the description of its
behavior:
- If EXACT match type is specified, the expression is considered
to include keywords that use the EXACT match pattern
+(f1:"t1
t2" f2:"t1 t2")
- If NONE match type is specified, the expression is considered
to include keywords that use the NONE match pattern
-(f1:(t1
t2) f2:(t1 t2))
- If ALL match type is specified, the expression is considered to
include keywords that use the ALL match pattern
+(f1:(+t1
+t2) f2:(+t1 +t2))
- Otherwise, as is the default behavior for the storefront Quick
Search, the expression is considered to include keywords that use
the ANY match pattern
+(f1:(t1 t2) f2:(t1 t2))
- If exclude term and EXACT match type is specified, the expression
is considered to exclude keywords that use the EXACT match pattern
-f1:"t1
t2" -f2:"t1 t2"
- Otherwise, the expression is considered to exclude keywords that
use the ANY or ALL match pattern
-f1:(t1 t2) -f2:(t1 t2)
The resulting Solr expression is added back into the SelectionCriteria
object (_wcf.search.internal.optional.query) for other downstream
processing.
- SolrSearchByAlternateKeywordExpressionProvider
- An alternate expression provider that improves performance by simplifying synonym expansion
logic for AND type searches in the storefront.
Note: The interim fix
for JR46771 is required to use this expression provider.
- SolrSearchByCategoryExpressionProvider
- This search expression provider is for handling the search by
category, and considers the sales catalog in the current business
context.
The resulting Solr expression is added back into the SelectionCriteria
object (category into _wcf.search.internal.mandatory.query and catalog
into _wcf.search.internal.filterquery) for other downstream processing.
- SolrSearchByManufacturerExpressionProvider
- This search expression provider is for handling the search by
brand name requests.
The resulting Solr expression is added back
into the SelectionCriteria object (_wcf.search.internal.meta) and
to be encoded into the meta string later.
- SolrSearchByPriceExpressionProvider
- This search expression provider is for handling the search by
price range request that is generated from the Advanced
Search page.
The resulting Solr expression is added back
into the SelectionCriteria object (_wcf.search.internal.meta) and
to be encoded into the meta string later.
- SolrSearchByFacetExpressionProvider
- This search expression provider is for handling the search by
facet request. This provider helps convert an XPath expression into
a Solr specific expression.
The resulting Solr expression is added
back into the SelectionCriteria object (_wcf.search.internal.meta)
and to be encoded into the meta string later.
- SolrSearchByStorePathExpressionProvider
- This search expression provider is for generating conditions to
handle the store path.
The resulting Solr expression is added back
into the SelectionCriteria object (_wcf.search.internal.filterquery)
for other downstream processing.
- SolrSearchByPublishedEntryOnlyExpressionProvider
- This search expression provider is for restricting search results
to only published entries.
The resulting Solr expression is added
back into the SelectionCriteria object (_wcf.search.internal.filterquery)
for other downstream processing.
- SolrSearchByCustomExpressionProvider
- This search expression provider is for handling the search by
custom expression that is stored in _wcf.search.expr.
This custom
expression is added to the SelectionCriteria object (_wcf.search.internal.optional.query)
for other downstream processing.
- SolrSearchFacetConditionExpressionProvider
- This search expression provider is used to generate a list of
attribute related facets and currency-specific price range facets
for the current search request.
The resulting Solr expression is
added back into the SelectionCriteria object (_wcf.search.facet.field)
for other downstream processing.
- SolrSearchSequencingExpressionProvider
- This search expression provider is for ordering product entries
in the search result by ranking. The result is added back into the
SelectionCriteria object (_wcf.search.internal.boostquery) for other
downstream processing.
This search expression
provider also supports ordering for categories.
- SolrSearchTermAssociationExpressionProvider
- This search expression provider is for handling the search term
association (STA) expansion. This provider helps get synonyms and
replace the search term to fetch the final result.
The synonyms
fetched by the STA service is added back into the SelectionCriteria
object for other downstream processing: _wcf.search.internal.synonyms.
- SolrSearchTypeExpressionProvider
- This search expression provider is for handling the match type
for keyword search requests. The following list is the pseudo logic
of how the match type (_wcf.search.type) can be converted into a search
criteria:
- Match type is defaulted: ANY, exclude SKU
- Exclude SKU expression is represented as
-catenttype_id_ntk_cs:ItemBean
- Only SKU expression is represented as
- +catenttype_id_ntk_cs:ItemBean
- Include SKU expression does not need to be qualified
The resulting Solr expression is added back into the SelectionCriteria
object (_wcf.search.internal.filterquery) for other downstream processing.
- SolrSearchProductEntitlementExpressionProvider
- This search expression provider is for performing product entitlement.
It is performed by calling ProductEntitlementExpressionHelper to build
search engine specific query expressions for contracts that contain
CatalogFilter Term Conditions and ProductSet Term Conditions. If a
contract list is passed in, ProductEntitlementExpressionHelper builds
the search expression against those contracts, instead of fetching
contract from context. Otherwise, if there are no contracts that are
passed as a parameter, this helper class fetches the current eligible
contracts and builds search expressions against them.
The resulting
Solr expression is added back into the SelectionCriteria object (_wcf.search.internal.filterquery)
for other downstream processing.
- SolrSearchByKeywordRelevancyExpressionProvider
- This search expression provider is for handling the search by
keyword relevancy.
- SolrSearchInventoryExpressionProvider
- This search expression provider is for handling searches for the
inventory search index.
|
Sort |
The sort section is for defining sorting options
and their corresponding values that can be used directly from the
storefront.For example:
<_config:sort>
<_config:field name="1" value="mfName_ntk_cs asc" />
<_config:field name="2" value="name_ntk asc,price_* asc" />
</_config:sort>
Where, when a value of 2 is passed in through a control
parameter _wcf.search.sort, the following two parameters is added
to the final Solr expression:
sort=name_ntk+asc,price_USD+asc
Note: price_* contains a * operator
that is substituted with the shopper's currency at run time. In the
example, the shopper's currency is USD. |
Result |
Declares a list of search index fields to be
returned in the search result set. Additional data filtering can applied.The
following predefined result filters are provided by default:
- SearchCatalogNavigationViewDynamicKitResultFilter
- This CatalogNavigationView search result filter is used to populate
a Dynamic Kit response BOD with its configuration data. This data
includes the Model name, Model configuration, and whether the Dynamic
Kit has a predefined configuration. If a predefined configuration
is defined, the response includes details about the pre-configured
components of the Dynamic Kit and the total price of the Dynamic Kit.
Note:
- Components and price information is returned only when all components
of the Dynamic Kit are displayable and when the shopper has entitlement
to the components.
- You can use the IBM_findCatalogEntryDynamicKitSummary search profile
for a response with price information.
- SearchCatalogEntryViewPriceResultFilter
- The CatalogNavigationView search result filter for modifying prices
in each CatalogEntryView object. Its purpose is to determine the suitable
calculated contract price to be displayed to the shopper.
- SearchCatalogEntryViewSingleSKUResultFilter
- The CatalogNavigationView search result filter for determining
whether each CatalogEntryView object is a single SKU.
- SearchCatalogNavigationViewPreviewResultFilter
- The CatalogNavigationView search result filter for setting up
all required metadata for previewing search operations in the store
preview. This includes the indexing status and search query string.
- SearchNavigationSuggestionsResultFilter
- This search result filter enables the population of the NavigationSuggestion
area of the CatalogNavigationViewNoun. This filter class checks the
search configuration for any registered "navigation suggestion handlers",
with each handler that populates a navigation suggestion displayed
in the drop-down box.
- SearchCatalogNavigationViewDynamicKitResultFilter
- This CatalogNavigationView search result filter is used to populate
a Dynamic Kit response BOD with its configuration data. This data
include the Model name, Model configuration, and whether the Dynamic
Kit has a predefined configuration. If a predefined configuration
is defined, the response includes details about the preconfigured
components of the Dynamic Kit and the total price of the Dynamic Kit.
Note:
- Components and price information is returned only when all components
of the Dynamic Kit are displayable and when the shopper has entitlement
to the components.
- You can use the IBM_findCatalogEntryDynamicKitSummary search profile
for a response with price information.
- SearchCatalogGroupEntitlementResultFilter
- This search result filter determines whether the current user
is entitled to the returned CatalogGroupView objects in the response.
- SearchCatalogEntryViewDescriptionResultFilter
- This CatalogNavigationView search result filter is used to populate
catalog entries override for an eSite store. The fields include name,
short description, long description, thumbnail, full image, and keyword.
- SearchCatalogNavigationViewDynamicKitResultFilter
- This CatalogNavigationView search result filter is used to populate
a Dynamic Kit response BOD with its configuration data. This data
includes the Model name, Model configuration, and whether the Dynamic
Kit has a predefined configuration. If a predefined configuration
is defined, the response includes details about the pre-configured
components of the Dynamic Kit and the total price of the Dynamic Kit.
Note:
- Components and price information are returned only when all components
of the Dynamic Kit are displayable and when the shopper has entitlement
to the components.
- You can use the IBM_findCatalogEntryDynamicKitSummary search profile
for a response with price information.
- FacetEntryViewImageAndSequenceResultFilter
- This CatalogNavigationView search result filter is used to populate
additional information for facet entries. If the facet is attribute
dictionary attribute-based, the sequence and image from the ATTRVALDESC
table is respected for the facet entry values returned. Use this filter
when you sort facet values by attribute value sequence.
Note: The naming convention for some of the preceding
result filters might contain a Solr prefix. |
Highlight |
Declares a list of search index fields to be
used for highlighting and their associated highlighting behavior at
run time. |
Facets |
Declares a list of search index fields to be
used for faceting and their associated faceting behavior at run time.It
contains the following parameters:
- sort
- Determines the ordering of the facet field constraints:
- count = sort the constraints by count (highest count first).
- index = return the constraints sorted in their index order (lexicographic
by indexed term). For terms in the ASCII range, this is alphabetically
sorted.
- The default value is count.
- minCount
- Indicates the minimum counts for facet fields that should be included
in the response.
- The default value is 1.
- limit
- Indicates the maximum number of constraint counts that should
be returned for the facet fields. A negative value denotes unlimited.
- The default value is 200.
Note: The MAX_DISPLAY column of the FACET table overrides this limit by default in the
storefront.
|
Spellcheck |
Defines the spell checking behavior at run time.It
contains the following parameter:
- limit
- Indicates the maximum number of suggestions to return.
- The default value is 5.
|
navigationSuggestion |
Defines the suggested brands, categories, and
articles behavior at run time.Articles contains
the following parameter:
- totalNumber
- The number of cached web content articles to return.
- The default value is 100.
|