2010-09-13 15 views
10

W Solr/Lucene można zamówić najpierw według istotności, a następnie według drugiego atrybutu?Solr/Lucene czy można najpierw zamówić według istotności, a następnie według drugiego atrybutu?

O ile wiem, czy ustawiłem parametr zamawiania, całkowicie zastępuje on istotność i sortuje według parametru (ów) zamawiania.

W jaki sposób mogę najpierw posortować wyniki według trafności, a następnie w przypadku dwóch wpisów o dokładnie takiej samej trafności, dając skinienie pozycji, która, powiedzmy, jest pierwsza alfabetycznie.

Jeśli to robi jakąkolwiek różnicę, używam Solr przez Sunspot w Ruby on Rails.

+0

Zastanawiam się, czy to będzie działać dobrze, ponieważ trafności wynik byłby znacznie się różnią. Zastanawiam się, czy solr może podzielić wyniki relewancji na wiele poziomów, a następnie sortować je według drugiej kolumny. – lulalala

Odpowiedz

8

Rozwiązałem mój problem!

Słowo kluczowe score może zostać przekazane w celu zamówienia wyniku według trafności.

Więc w kategoriach Szyny SUNSPOT:

Article.search do 
    keywords params[:query] 
    order_by :score, :desc 
    order_by :name, :asc 
end 
+1

To może być spóźnione nadrabianie zaległości, ale spróbowałem tego samego rozwiązania i nie działa ono dla mnie. Kiedy używam partytury do sortowania, używa ona tylko drugiej opcji sortowania. Jeśli używam tylko wyniku, działa dobrze. Jeśli połączę dwa inne kryteria sortowania, to również działa. Czy jest coś jeszcze? Czy zdajesz sobie sprawę z problemów z wersjami gem? Doceniam pomoc –

Powiązane problemy