2015-10-19 64 views
1

我想根據方面計數對結果進行排序。我該如何去搜索:搜索?在搜索的方面計數排序:搜索

截至目前,我使用這個查詢 -

let $options := 
<options xmlns="http://marklogic.com/appservices/search"> 
    <return-metrics>false</return-metrics> 
    <return-facets>true</return-facets> 
    <return-results>false</return-results> 
    <additional-query>{cts:query($cts-query)}</additional-query> 
    <constraint name="decade"> 
    <range type="xs:dateTime" facet="true">   
     <bucket lt="2002-01-01T00:00:00Z" ge="2001-01-01T00:00:00Z" name="2001">2001</bucket> 
     <bucket lt="2003-01-01T00:00:00Z" ge="2002-01-01T00:00:00Z" name="2002">2002</bucket> 
     <bucket lt="2004-01-01T00:00:00Z" ge="2003-01-01T00:00:00Z" name="2003">2003</bucket> 
     <bucket ge="2004-01-01T00:00:00Z" name="2004">2004</bucket> 
     <facet-option>limit=10</facet-option> 
     <element ns="http://iddn.icis.com/ns/core" name="released-on"/> 
    </range> 
    </constraint> 
    <operator> 
    <state> 
     <sort-order direction="descending" type="xs:integer"> 
     <score/> 
     </sort-order> 
    </state> 
    </operator> 
</options> 

let $date-seq := search:search("*", $options) 
return $date-seq 

我想改變的選項,這樣我可以通過小計數方面對結果進行排序。

回答

3

未與桶試過,但通常我想你最好加刻面選項「頻次」和「降」:

<constraint name="decade"> 
    <range type="xs:dateTime" facet="true">   
    <bucket lt="2002-01-01T00:00:00Z" ge="2001-01-01T00:00:00Z" name="2001">2001</bucket> 
    <bucket lt="2003-01-01T00:00:00Z" ge="2002-01-01T00:00:00Z" name="2002">2002</bucket> 
    <bucket lt="2004-01-01T00:00:00Z" ge="2003-01-01T00:00:00Z" name="2003">2003</bucket> 
    <bucket ge="2004-01-01T00:00:00Z" name="2004">2004</bucket> 
    <facet-option>limit=10</facet-option> 
    <facet-option>frequency-order</facet-option> 
    <facet-option>descending</facet-option> 
    <element ns="http://iddn.icis.com/ns/core" name="released-on"/> 
    </range> 
</constraint> 
+0

我可以在其中加入排序的多層次?就像,對於第一級,我按頻次排序,對於第二級,我想對方面名稱進行排序。 –

+0

我不這麼認爲。訂購的方面選項是「頻率順序」和「項目順序」。 –

+0

謝謝戴夫。這不會有任何影響。我只能用這兩個選項來做我想要做的。 –