2015-02-12 85 views
0

我已经收录这是给我造成像下表Solr的排序由结果

A 
B 
C 
D 
E 
F 
H 
H 
A 
B 

我想排序结果以这样的方式,我得到的^ h首先每次,然后其余的应该是排序,如ASC

H 
H 
A 
A 
B 
B 
C 
D 
so on... 

我没有找到办法。请帮忙。

+2

SQL Table?.... – 2015-02-12 07:08:12

+0

假设它是任何列的结果,即字母表 – 2015-02-12 07:09:25

+0

'sort by desc'表示'Z'是First还是'A'是第一个?在你的例子中'A'是第一个。 – Sadikhasan 2015-02-12 07:10:29

回答

1

这取决于你使用,以获得结果的搜索查询。你可以修改你的查询参数,使它与你想要在顶部的确切结果匹配,并在q.alt参数中传递原始查询,然后应用你希望使用的排序。

请注意,为了使用q.alt,您需要使用dismax或edismax查询解析器。

+0

做这个排序谢谢。你能让我知道这将如何工作我需要在将dismax和edismax设置为true后通过q.alt = H吗?我检查它是这样的,并没有得到期望的结果。 – 2015-02-12 09:29:21

+0

q.alt = [您的查询参数]:H&defType = edismax – 2015-02-12 10:56:48

1
$alpha = array("A","B","C","D","E","F","H","H","A","B"); 

$first = array("H"); 
$alpha =array_diff($alpha, $first); 
asort($alpha); 
$alpha= $first + $alpha; 

Demo

+0

感谢一下。但我想通过索尔 – 2015-02-12 07:23:08