The
DGraph.WhyMatch
property value has a three-part format
that is made up of a list of fields where the terms matched, a list of the
terms that matched, and several possible query expansions that may have been
applied to the during processing.
The
DGraph.WhyMatch
property is returned as a JSON object
with the following format: :
[{fields: [<FieldName>, <FieldName>, ... ], terms:[ {term:<TermName>, expansions:[{type:<TypeName>}, {type:<TypeName>}, ... ]}, {term:<TermName>, expansions:[{type:<TypeName>}, {type:<TypeName>}, ... ]}]} ... ]
where the supported expansion types (i.e. the
<TypeName>
values) are as follows:
Stemming
– returned results based on the stemming dictionaries available in the MDEX Engine.Thesaurus
– returned augmented results based on thesaurus entries added in Developer Studio or Oracle Commerce Workbench.Spell-corrected
– returned spell-corrected results using application-specific dictionary words.
The availability of these values depends on which search features have been enabled in the MDEX Engine.
For example, suppose there is a matchpartial query for "nueve uno
firefighter" that produces a single-field match in "Spanish", a cross-field
match in Spanish and English (i.e. "one" appears in English via thesaurus from
uno), and firefighter is not in any field. The following
DGraph.WhyMatch
property value is returned:
[{fields:[Spanish], terms:[{term:nueve,expansions:[]}, {term:uno,expansions:[]}]}, {fields:[Spanish,English], terms:[{term:nueve,expansions:[]}, {term:uno, expansions:[{type:Thesaurus}]}]}]