in sphinx
, want search rows containing keywords , sort them in specific order.
for example, search words 'dog', 'cat', 'lion' , sort in order such rows 'dog' listed first, followed rows 'cat', , 'lion'.
in sphinx
, searching easy below query:
select * test_index match('test_string "dog" | "cat" | "lion"')
how can sort rows in predefined order in sphinx
?
you can order predefined list in sql
.
complete sql:
select * test_index match('test_string "dog" | "cat" | "lion"') order case when field = 'dog' 0 when field = 'cat' 1 when field = 'lion' 2 end
yes sphinx doesn't support order case
. if want short in predefined order can use sph_sort_extended
. example in php
following:
$sph->setsortmode(sph_sort_extended, "dog, cat, lion");
example:
article.search "term", :sort_mode => :extended, :order => "project asc, company asc"
Comments
Post a Comment