Я использую sunspot_rails (на rails3) для взаимодействия моего приложения rails с сервером solr. Мне бы очень хотелось выполнять нечеткие поиски с помощью оператора ~. Во всяком случае, кажется, что это не поддерживается. Сейчас я возвращаюсь к использованию EdgeNGrams, но не полностью удовлетворен результатами.
Есть предложения? Кто-нибудь был в состоянии сделать поиск Левенштейна расстояния через sunspot_rails?
решаемые
Метод Adjust_Solr_params , предоставляемый Sunspot, позволяет вам переопределить парсер запросов по умолчанию, чтобы вы могли использовать тот, который поддерживает ~. По сути, я заставил Sunspot использовать анализатор запросов lucene, установив pameter defType:
Post.search do
adjust_solr_params do |params|
params[:q] = 'field_name:foo~'
params[:defType] = 'lucene'
end
end