【问题标题】:how to include integer fields in searchkick search?如何在 searchkick 搜索中包含整数字段?
【发布时间】:2018-02-27 02:13:08
【问题描述】:

我使用以下代码使用 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 是作为字符串传入的,它错误地尝试匹配整数。

我怎样才能使它可以根据页码进行搜索?

【问题讨论】:

    标签: ruby-on-rails elasticsearch searchkick


    【解决方案1】:

    您是否尝试在params[:page] 上拨打to_i

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

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

    【讨论】:

    • 对不起,我试过了,没用。我去了控制台,只是搜索了 Book.search(120, fields: [:pages]) ,即使有第 120 页的记录,它也会返回空结果。为什么 searchkick 不搜索整数字段?
    • 除非它是相反的方式并且它正在寻找两边的字符串?您能在控制台Book.search("120", fields: [:pages]) 中快速拍摄一下吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多