我正在使用sunspot_rails(在rails3上)将我的rails应用程序连接到solr服务器。我真的想使用〜运算符执行模糊搜索。无论如何,似乎不支持这一点。我现在正在退回使用EdgeNGrams,但我对结果并不完全满意。
有什么建议吗?有没有人能够通过sunspot_rails进行Levenshtein距离搜索?
解决
Sunspot提供的adjust_solr_params方法允许您覆盖默认查询解析器,以便您可以使用支持〜的解析器。基本上,我使用sunspot使用lucene查询解析器设置defType pameter:
Post.search do adjust_solr_params do |params| params[:q] = 'field_name:foo~' params[:defType] = 'lucene' end end