Relevance ranking modules are applied in the order in which they are listed in the relevance ranking strategy. For example, the following JSON format configuration of a relevance ranking strategy,
"relRankStrategy": "exact(considerFieldRanks),glom,static(quantity_sold,descending)"
invokes modules named exact
, glom
, and static
, in that order.
The first module applies its criteria to sort records into various strata. Each stratum contains records that have the same relevance ranking according to the first module’s criteria. The next module sorts the records in each stratum into substrata according to its own criteria; each substratum contains records of the same relevance ranking.
The sorting continues in this fashion until all modules have been applied, or until there are no further ties among records. If any ties remain after all modules have been invoked, the ties are resolved by a default sorting rule.
The field
and maxfield
modules take into account the priority of records. A record’s priority corresponds to the position in the search interface’s fields
array of the member that the record matches. Records matched to members closer to the beginning of the fields
array have higher priority than records matched to members closer to the end. If a record matches more than one member, its priority is based on the member that is closest to the beginning of the fields
array.
The exact,
first
, nterms
, and proximity
modules can optionally take a parameter named considerFieldRanks
. The considerFieldRanks
parameter indicates that the module should further sort records according to their priority, after the module has sorted records according to its own criteria. In the relevance ranking strategy, the parameter is specified in parentheses after the module name; for example:
"relRankStrategy": "exact(considerFieldRanks),glom,static(quantity_sold,descending)"
For information about the relevance ranking modules, see Understand each relevance ranking module in detail.
Understand which modules are the more useful for commerce applications
The most commonly used modules in commerce applications are:
phrase
(all options turned on)glom
maxfield
static
The following modules are less commonly used:
field
wfreq
The following modules are not ordinarily useful in commerce applications:
first
interp
nterms
proximity
stem
thesaurus
Oracle recommends against the use of the following modules:
exact
, because of its effect on performance. Usephrase
instead.freq
, because it adds up the counts of every word, affecting performance.