sunspot_rails Левенштейн оператор расстояния - PullRequest
2 голосов
/ 15 июля 2011

Я использую 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
...