我在我的数据库使用acts_as_ferret做一个非常简单的搜索。我把这个在我的“地点”的模式:

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

我在日志中看到正确的查询“的〜”正在对索引执行。但是,我没有得到任何结果。我肯定有一些“场地”字“的”名称字段。

由于这是一个非常简单的搜索和acts_as_ferret使用相当多的,我试图重建索引,看它是否已损坏....没有骰子

任何想法?

谢谢!

有帮助吗?

解决方案

是,鼬已经非常众所周知的腐败索引。

我建议切换到另一个搜索插件如思考斯芬克斯。您可以看Railscast一下,以了解更多信息

其他提示

我想问题可能是“的”被定义为stopword-一种极为常见的词,不被索引,因为它只是返回的每个文档。您可以配置停止字。

我会考虑,如果您有问题鼬使用Solr的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top