私はタイトルと歌詞を格納するアプリを持っています。一部の曲はスペイン語であり、çccéntsを含んでいます。私はユーザーがアクセントなしで単語を入力できる検索方法を書こうとしています。たとえば、タイトルに「papá」という単語があるとします。ユーザーが「papa」と入力すると、タイトルにその単語のある曲が見つかるはずです。アクセント付き文字で検索
これはこれまで私が行ってきたことです。ワイルドカードを処理し、3つの列を検索します。
search_phrase = "number #{like} ? OR title COLLATE Latin1_general_CI_AI #{like} ? OR lyrics #{like} ?"
CIは大文字と小文字を区別しないの略で、AIがアクセントを区別しないの略:
class Song < ApplicationRecord
def self.search(query)
return all unless query.present?
# for case insensitive search
like = Rails.env.production? ? 'ILIKE' : 'LIKE'
# for wildcards
q = ["%#{query}%"] * 3
# columns that I will search through song.number, song.title, song.lyrics
search_phrase = "number #{like} ? OR title #{like} ? OR lyrics #{like} ?"
where([search_phrase] + q)
end
end
postgresqlを使用していますか? – kurenn
@kurenn私は生産になります –