轮胎似乎忽略了页面变量

时间:2014-02-09 15:09:15

标签: ruby-on-rails elasticsearch mongoid tire

我正在使用Tire和ElasticSearch。我需要以编程方式创建过滤器,所以我不想使用简单的搜索方法。简单的方法很好用:

Item.search("blender",:page => 1, :per_page => 1)

这将返回第一个匹配,当您发送page = 2时,它返回空集,这是正确的(对于此数据集)。

但是,当您使用间接方法时:

search = Tire::Search::Search.new("items", :page => 2)
search.query { string('name:blender') }
search.results.count

这总是返回1,无论你为页面发送什么值,你都可以发送100,000,它仍然会返回第一项。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

以下是答案:

search = Tire::Search::Search.new("items")
search.from 1   #use from and size for pagination with indirect queries
search.size 1
search.query { string('name:blender') }
search.results.count

希望这有助于其他人。