【问题标题】:SearchKick search_data vs searchableSearchKick search_data vs searchable
【发布时间】:2018-05-04 22:24:40
【问题描述】:

为了这个问题,假设我有两个模型:

  • Book,它有一个 namecreated_atupdated_at 和一个关联的 Author 模型。
  • Author,其中有一个namebirthdate

出于搜索的目的,我想进行两个不同的搜索:

  • 通过nameauthor.name 搜索Books
  • 通过name搜索Authors

  1. 如果我只有模型字段到 ElasticSearch 字段的直接映射,是否需要 search_data?例如,在我的Author 模型上searchkick searchable %i[name] 是否足够,或者我还需要:
def search_data
  {
    name: name
  }
end
  1. 如何在 Searchkick 中定义嵌套数据以搜索 BookAuthor.name?目前,我会做这样的事情,但是,从 README 的 Nested Data 部分看来,可能还有另一种方法可以完成同样的事情。
def search_data
  {
    name: name,
    author_name: author.name
  }
end
  1. 如果Book很多 Authors 怎么办?按作者姓名搜索一本书的建议方法是什么?到目前为止,我能想到的最好的方法是这样的:
def search_data
  {
    name: name,
    author_names: author.pluck(:name)
  }
end

【问题讨论】:

    标签: ruby-on-rails ruby searchkick


    【解决方案1】:
    1. 如果只需要模型字段,则不需要定义search_data。 Searchkick 会自动执行此操作。您可以通过Author.first.search_data 进行检查。

    2. Searchkick 对嵌套数据的支持有限。你给出的例子看起来不错。

    3. 这正是对多位作者的建议。

    【讨论】:

      猜你喜欢
      • 2014-03-11
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 2022-10-01
      • 2023-03-07
      • 2014-12-24
      • 2016-01-28
      相关资源
      最近更新 更多