elasticsearch / tire如何正确返回默认记录集?

时间:2012-10-31 10:51:56

标签: ruby-on-rails-3 elasticsearch tire

什么是接近默认记录集返回的最佳方法?如果没有返回搜索结果。目前使用下面的代码,但感觉不是正确的方法。

def self.search(params)

      puts "SEARCH PARAM ="
      puts params

      if params
        tire.search(load: true, page: params[:page], per_page: 20, :default_operator => 'AND', :use_dis_max => true) do
          query do
            boolean do
              must { string 'gamers:2' } if params[:gamers] == "2"
              must { string 'gamers:4' } if params[:gamers] == "4"
            end
          end
          to_curl
        end
      else
        puts "search params not found"
        @gamers = Gamers.where(:level => "rookie")
      end
    end

1 个答案:

答案 0 :(得分:1)

看起来你只是在没有传递参数的情况下输入默认值而没有返回搜索结果。

我会得到搜索结果并检查!results.total.zero?,然后相应地拉出默认设置