Ordering by SDATA Sections
You can order the query results according to the content of SDATA sections by using the <order> and <orderkey> elements of the query template.
In the following example, the first level of ordering is performed on the SDATA price section, which is sorted in ascending order. The second and third level of ordering are performed by the SDATA pub_date section and score, both of which are sorted in descending order.
select id from docs where CONTAINS (text, '
<query>
<textquery lang="ENGLISH" grammar="CONTEXT"> Oracle </textquery>
<score datatype="INTEGER" algorithm="COUNT"/>
<order>
<orderkey> SDATA(price) ASC </orderkey>
<orderkey> SDATA(pub_date) DESC </orderKey>
<orderkey> Score DESC </orderkey>
</order>
</query>', 1)>0;
Note:
-
You can add additional
SDATAsections to an index. Refer to theADD SDATA SECTIONparameter string underALTER INDEXin Oracle Text Reference. -
Documents that were indexed before adding an
SDATAsection do not reflect this new preference. Rebuild the index in this case.
See Also: Oracle Text Reference for syntax of <order> and <orderkey> elements of the query template