如何根据rturk gem for mturk的状态进行分页和搜索?

时间:2015-10-31 16:53:17

标签: ruby ruby-on-rails-4 amazon-web-services rubygems mechanicalturk

我们正在与rturk gem合作,以获取红宝石中的mturk

rturk gem : https://github.com/ryantate/rturk

我可以使用下面的代码

从mturk中获胜
hits = RTurk::Hit.all
puts "#{hits.size} hits. \n"

但它只给我100次点击如何使用rturk gem找到分页对象和命中总数

我们如何管理rturk的分页? 使用上面的代码,它给出了所有结果,但我想根据具体的状态搜索命中。 我们如何搜索其州的命中?

1 个答案:

答案 0 :(得分:2)

Amazon Mechanical Turk的最大页面大小为100(details here),这就是为什么rturk gem忠实地返回100个HIT的原因。

RTurk::SearchHITs操作似乎不支持按状态搜索。相反,您可以使用RTurk::GetReviewableHITs操作执行以下操作:

    get_reviewable_hits = RTurk::GetReviewableHITs.new status: 'Reviewable', page_size: 10, page_number: 2
    => #<RTurk::GetReviewableHITs:0x007faacb523668 @status="Reviewable", @page_number=2, @page_size=10>

    request = get_reviewable_hits.request

    request.total_num_results
    => 91

    request.num_results
    => 10

    hits = request.hit_ids.map { |id| RTurk::Hit.new(id) }
    hits_with_details_and_assignments = request.hit_ids.map { |id| RTurk::Hit.find(id) }

我们在这里:

  • 按状态Reviewable
  • 过滤
  • 将页面大小设置为10以显示分页,因为我只有91个可审核的HIT方便
  • 请求第2页,共9页进行说明

希望这会有所帮助。欢呼声。