我正在使用acts_as_ferret在我的数据库上进行非常简单的搜索。我把它放在我的“Venue”模型中:
acts_as_ferret :fields => [:name, :city]
这是我的控制器搜索操作:
@t = Venue.find_by_contents(params[:search]+'~')
然后我只渲染结果。
render :text => @t.to_json, :success => true, :status => :ok
如果我进行快速测试:
http://localhost:3000/venue/list?search=The
我在日志中看到正在对索引执行正确的查询“The~”。但是,我没有得到任何结果。我肯定在名称字段中有一些“Venues”字样。“
由于这是一个非常简单的搜索,并且使用了acts_as_ferret,我尝试重建索引以查看它是否已损坏....没有骰子
有什么想法吗?
谢谢!
答案 0 :(得分:2)
是的,Ferret因腐败指数而闻名。
我建议切换到另一个搜索插件,例如Thinking Sphinx。您可以watch the Railscast about it了解详情。
答案 1 :(得分:1)
我认为问题可能是“the”被定义为一个禁用词 - 一个非常常被引用的词,因为它只返回每个文档。您可以配置停用词列表。
如果你遇到雪貂问题,我会考虑使用Solr。