如何在searchkick搜索中包含整数字段?

时间:2018-02-26 15:13:00

标签: ruby-on-rails elasticsearch searchkick

我使用以下代码使用SearchKick进行搜索:

Book.search(q, 
            misspellings: { below: 5 }, 
            fields: [:name, :author, :pages], 
            order: { name: 'asc' }, 
            page: params[:page], 
            per_page: 20)

当我搜索nameauthor时,它运行正常。

但是,当我在130搜索page时,它不会搜索该字段。

nameauthor是Book模型的字符串字段,page是整数字段。

我的猜测是130作为字符串出现,并且错误地尝试匹配整数。

如何制作以便我可以根据页码进行搜索?

1 个答案:

答案 0 :(得分:0)

您是否尝试在to_i上致电params[:page]

Book.search(q, 
            misspellings: { below: 5 }, 
            fields: [:name, :author, :pages], 
            order: { name: 'asc' }, 
            page: params[:page]&.to_i, 
            per_page: 20)

如果你是对的并且它正在将整数与字符串进行比较,那么这将解决它。