2014-07-15 55 views
0

倒塌排序是有可能做Solr中的化合物種類沒有現場合羣?遇到問題不進行分組/場Solr中

如果我有兩個車型,福特和雪佛蘭,可我在福特排序第一是那些價格低於2000,那麼福特> 2000,那麼雪佛蘭車型?我想這樣做而不分組,並且不對雪佛蘭模型進行價格分類。

例如,像&sort=Model:"Ford" AND price:[0 TO 2000]

讓我得到:

Ford 1, $1000 
Ford 2, $500 
Ford 2, $1500 
_________ 
Ford 3, $3000 
Ford 3, $5000 
_______ 
Chevy 1 
Chevy 2 
Chevy 3 

回答

0

我修修補補了一下這個問題,我已經拿出了基於查詢的解決方案()函數,因爲您可以將它與排序一起使用。我不確定性能,並且根據索引中的文檔數量,這可能並不重要,所以唯一的方法就是嘗試一下,看看它是否有效。我用nameprice,如架構中我的兩個領域,我認爲會映射到Modelprice領域。

的方式排序工作原理是,每個子句是爲了評估,以便首先執行第一個排序的說明,然後下一個,如果有一個平局,等等。

我已經刪除URL逃逸,格式化的一切有點:

sort=query($sq1,0) asc,query($sq2,0) asc 
    &sq1=name:Ford* AND price:[0 TO 1500] 
    &sq2=name:Ford* 

這意味着第一個排序上的sq1= URL參數命名的查詢執行的,但如果有平局(其中還會有是,如果沒有匹配),sq2=下名爲查詢將被執行($sq1$sq2是指這些對查詢和簡單的替換將被Solr的評估query()功能之前進行)。

我還沒有提供默認的排序順序,但你可以添加name asc作爲默認的排序。 0作爲query()的第二個參數是如果沒有來自查詢的匹配(否則它將使用來自查詢的分數)的排序將使用的值。您可以將此值填入product()並與價格相乘,以便根據需要對price以及每個「存儲桶」進行排序。