如何使用sunspot SOLR搜索嵌入式mongoid文档?

如何使用sunspot SOLR搜索嵌入式mongoid文档?,mongoid,sunspot,Mongoid,Sunspot,有人知道如何使用索引和搜索吗 这个问题已经被问到了,但到目前为止还没有解决办法 刚刚试过。这是一种黑客攻击,但它可以搜索嵌入的文档,并返回包含它的父文档。这就是你想要的吗?如果是这样,那么就这样做。定义一个方法,该方法返回所需的嵌入字段作为数组,然后为该数组编制索引 假设你有一个班级公司,有嵌入式部门 searchable do # Your regular index # ... text :company_departments end def company_departme

有人知道如何使用索引和搜索吗


这个问题已经被问到了,但到目前为止还没有解决办法

刚刚试过。这是一种黑客攻击,但它可以搜索嵌入的文档,并返回包含它的父文档。这就是你想要的吗?如果是这样,那么就这样做。定义一个方法,该方法返回所需的嵌入字段作为数组,然后为该数组编制索引

假设你有一个班级公司,有嵌入式部门

searchable do
  # Your regular index
  # ...
  text :company_departments
end

def company_departments
  departments.map(&:name).join(" ")
end

重新编制索引并尝试搜索。

您还可以在可搜索块中包含一个块,该块返回要索引的文本。例如:

searchable do
    text :innerdoc do
      innerdocs.map { |i| i.title + ' ' + i.description }
    end
end
它从嵌入的“innerdocs”数组中获取标题和描述,并将其添加到主文档的索引中

sunspot文档提供了有关“可搜索”块语法的最佳信息: