2012-04-10 8 views
4

Ich habe eine Reihe von Problemen mit Sonnenflecken und Encoding Probleme beim Sortieren. Das Hauptproblem ist die Verwendung von brasilianischen Wörtern mit Akzenten. Zum Beispiel für eine Reihe von Namen wie:Sonnenfleck, Solr, order_by, Codierung

  • Alberto
  • Ana
  • Maria
  • Álvaro

Der Name Álvaro, erscheint immer am Ende der Liste nach Aufruf order_by Methode.

Dies ist meine Klasse Einstellung für den Spaltennamen:

class Student < ActiveRecord::Base 
searchable do 
    text(:name) 
    text(:code) 
    string :name_sort do 
    name 
    end 
end 

def search(options) 
    students = Student.search do 
     fulltext(options[:data]) 
     order_by :name_sort 
    end 
    students.results 
end 
end 

Kann mir jemand helfen? Dank Luiz

Antwort

6

Sie könnten versuchen transliterate verwenden, wenn

Indizierung
class Student < ActiveRecord::Base 
    searchable do 
    text(:name) 
    text(:code) 
    string :name_sort do 
     I18n.transliterate name 
    end 
    end 

    def search(options) 
    students = Student.search do 
     fulltext(options[:data]) 
     order_by :name_sort 
    end 
    students.results 
    end 
end 
+0

Dank Andrei. Es funktioniert gut. –