【问题标题】:How to search integer fields using searchkick?如何使用 searchkick 搜索整数字段?
【发布时间】:2018-02-27 08:47:23
【问题描述】:

如何让searchkick搜索整数字段?

假设我有一个 Book 模型,它具有三个属性,即 name:string、author:string 和 pages:integer。

我想根据 pages 字段进行搜索。现在,如果我使用如下查询,它适用于字符串字段,即名称和作者,但不适用于整数类型的 pages 字段。

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

我去控制台搜索了 Book.search(120, fields: [:pages]) ,即使有第 120 页的记录,它也会返回空结果。为什么 searchkick 不搜索整数字段?我感谢对我面临的这个困境的任何帮助。谢谢!

【问题讨论】:

  • 您是否尝试使用字符串值进行搜索? Book.search("120", fields: [:pages])
  • 是的还是没有效果。
  • 我的猜测是查询将始终是字符串,但我需要告诉 searchkick pages 属性是整数,应该像搜索那样对待。但不知道如何告诉 searchkick。
  • 在控制台调用方法得到什么响应?

标签: ruby-on-rails ruby elasticsearch searchkick


【解决方案1】:

我用这个修复了它

书本模型

  def search_data
    {

      name: name,
      author: author,
      pages: pages.to_s 


    }
  end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多