在Solr中mysql的ORDER BY FIELD等价物

时间:2015-08-14 07:46:59

标签: solr

我正在使用Solr 5.2。是否有一个参数可以让您按特定字段值对返回结果的顺序进行排序?例如,在mysql中,我使用ORDER BY FIELD按特定顺序对结果进行排序:

SELECT id,txt FROM `review`
order by FIELD(a.id,2,3,5,7) ; 

我已阅读document中的sort部分,但似乎没有提及类似的参数。

2 个答案:

答案 0 :(得分:1)

我不确定Solr能做到你想要的。您可能得到的最接近的是范围查询。范围查询如下所示:

your_field:[valueA TO valueB]

答案 1 :(得分:1)

您可以使用^=

在solr中实现自定义排序

https://cwiki.apache.org/confluence/display/solr/The+Standard+Query+Parser

中找到使用^ = 的常量得分
q=id:(2^=4 3^=3 5^=2 7^=1)

你可以运行

array = [2,3,5,7]
var string = "q=id:(";
for(i=0;i<array.length;i++){
  string += array[i]+"^=" + (array.length-i) + " ";
}
string+=")";
// string => q=id:(2^=4 3^=3 5^=2 7^=1)