1

我已经用thinking_sphinx gem 更新了我的搜索字段记录并且我已经配置了它。它工作正常,但问题是,它只显示默认的 20 条记录。如何更改这些东西以使更多记录在视图中可见..

4

4 回答 4

4

中微子几乎是正确的……

首先,值得注意的是,Sphinx(以及 Thinking Sphinx)总是对请求进行分页,默认页面大小为 20。如果您想更改它,您可以传入:per_page => 30或类似参数以获取每页的记录数你想要。

Model.search 'foo', :per_page => 42

其次,Sphinx(默认)将可用搜索结果的总数默认限制为 1000。这就是 Neutrino 所指出的——如果你设置了 max_matches,你可以增加这个值。但是,您需要:max_matches在搜索调用中指定一个值。

Model.search 'foo', :max_matches => 10_000

当您更改文件中的值时,您将需要停止/重新索引/重新启动config/sphinx.yml- 有一个 rake 任务可以执行此操作:

rake ts:rebuild

这将确保生成的配置文件是最新的,并且 Sphinx 守护进程知道这些更改。

于 2010-06-22T13:48:31.010 回答
1

在控制器中

@sphinx = Ad.search(params[:search], :per_page => 1000)

这对我有用。

于 2013-03-04T08:00:29.243 回答
0

在您的config/sphinx.yml(如果您还没有,请创建一个)添加以下内容:

development:
  max_matches: 10000
# ... repeat for other environments

有关更多信息,请参阅文档

于 2010-06-22T11:55:39.633 回答
0

我尝试了所有方法来获取 20 多个结果。

在配置文件中,我将 max_matches 设置为 1000,

然后它也只给了我 20 个结果。

然后我尝试了:per_page => 200,然后我得到了更多的结果。

感谢帮助。

于 2011-07-01T09:06:55.553 回答