有人知道如何使用embedded documents索引和搜索sunpot_mongoid吗?
到目前为止,问题已在sunspot_mongoid issues中提出,但没有解决方案。
答案 0 :(得分:5)
试过了。这是一个黑客,但它适用于搜索嵌入的文档,并返回持有它的父文档。那是你要的吗?如果是这样,那么就这样做。定义方法,返回所需的嵌入字段作为数组,然后索引该数组。
假设你有班级公司,有嵌入式部门
searchable do
# Your regular index
# ...
text :company_departments
end
def company_departments
departments.map(&:name).join(" ")
end
重新索引并尝试搜索。
答案 1 :(得分:1)
您还可以包含一个块,该块可在可搜索的块中返回您想要索引的文本。例如:
searchable do
text :innerdoc do
innerdocs.map { |i| i.title + ' ' + i.description }
end
end
从嵌入式“innerdocs”数组中获取标题和描述,并将其添加到主文档的索引中。
太阳黑子文档有关于“可搜索”块语法的最佳信息: http://outoftime.github.com/sunspot/docs/