首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SearchKick search_data vs searchable

SearchKick search_data vs searchable
EN

Stack Overflow用户
提问于 2018-05-04 22:24:40
回答 1查看 1.3K关注 0票数 1

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

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

为了搜索的目的,我想有两个不同的搜索:

  • 搜索Booknameauthor.name
  • 通过他们的Author搜索name
  1. 如果只有模型字段到search_data字段的直接映射,那么是否需要ElasticSearch?例如,在我的Author模型中,只使用searchkick searchable %i[name]就足够了,还是我还需要:
代码语言:javascript
复制
def search_data
  {
    name: name
  }
end
  1. 您如何在搜索中定义嵌套数据来搜索BookAuthor.name?目前,我会这样做,然而,从自述的嵌套数据部分看来,可能有另一种方法来完成相同的任务。
代码语言:javascript
复制
def search_data
  {
    name: name,
    author_name: author.name
  }
end
  1. 如果一个Book有很多Author,那该怎么办?用作者的名字搜索一本书的建议是什么?到目前为止,这是我能想到的最好的:
代码语言:javascript
复制
def search_data
  {
    name: name,
    author_names: author.pluck(:name)
  }
end
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-09 08:31:12

  1. 如果您只需要模型字段,则不需要定义search_data。Search腿会自动完成这一任务。您可以使用Author.first.search_data来检查这一点。
  2. Searchkick对嵌套数据的支持有限。你举的例子看上去不错。
  3. 这正是对多位作者的建议。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50183815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档