2009-04-14 72 views
0

我正在使用acts_as_ferret在我的数据库上进行一个非常简单的搜索。我把这个在我的“地点”的模式:Ruby on Rails插件,acts_as_ferret,很buggy?

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”字样。

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

任何想法?

谢谢!

回答

2

是的,Ferret一直以腐蚀指数而闻名。

我建议切换到另一个搜索插件,如Thinking Sphinx。您可以通过watch the Railscast about it了解更多信息。

+0

同意 - 避免AAF。这里有更好的选择:ThinkingSphinx甚至Solr,如果你需要Lucene提供的所有东西 – 2009-12-02 17:46:07

1

我认为问题可能是“the”被定义为一个停用词 - 一个非常常用的词,它没有被索引,因为它只会返回每个文档。您可以配置您的停用词列表。

如果您遇到Ferret问题,我会考虑使用Solr。

+0

以TS结束,但感谢洞察! – Tony 2009-12-02 22:00:02