Each EQL expression used in the
stratify
statement corresponds to a stratum, as does
the set of records which do not match any expression, producing
k + 1 strata (where
k is the number of EQL expressions). Records are placed in the
stratum associated with the first EQL expression they match. The first stratum
is the highest ranked, the next stratum is next-highest ranked, and so forth.
Note a record will be stratified in the highest strata it matches, so boosting
will have priority over burying.
If a record matches none of the specified EQL expressions, it is assigned to the unmatched stratum. By default, the unmatched stratum is ranked below all strata. However, you can change the rank of the unmatched stratum by specifying an asterisk (*) in the list of EQL expressions. In this case, the asterisk stands for the unmatched stratum.
The rules for using an asterisk to specify the unmatched stratum are:
If an asterisk is specified instead of an EQL expression, unmatched records are placed in the stratum that corresponds to the asterisk.
If no asterisk is specified, unmatched records are placed in a stratum lower than any expression's stratum.
Only one asterisk can be used. If more than one asterisk is specified, the first one will be used and the rest ignored.
This
Ntx
snippet shows the use of an asterisk in the query:
N=0&Ntx=rel+stratify(collection()/record[Score>90],*,collection()/record[Score<50])
The query will produce three strata of records:
Note that the EQL expressions must be URL-encoded. For example, this query:
collection()/record[status = 4]
should be issued in this URL-encoded format:
collection%28%29/record%5Bstatus%20%3D%204%5D
However, the examples in this chapter are not URL-encoded, in order to make them easier to understand.