我正在使用 sunspot 在自定义的狂欢网店项目中进行全文搜索。
有些产品已经被广泛索引:
class Product
searchable do
text :description
... lots of other declarations
end
end
我现在需要索引 Orders,其中(通过其他一些模型,但我认为这并不重要), have_many Products:
class Order
has_many :products
end
问题是:我希望 Orders 可以通过他们的产品搜索,使用相同的索引属性。我想保持干燥,而不是将 Product 声明的变体添加到 Order 上的新可搜索块中,而是说类似“订单可通过产品搜索”之类的内容。这有可能吗?太阳黑子的文档没有提到这样的事情。
编辑:
“apneadiving”建议将声明放在某种共享模块中并以这种方式重新使用它。我可能弄错了,但我认为这行不通,因为 sunspot DSL 引用当前模型,因此 Product 的声明不适用于 Order。
例如,如果我可以在 Order 中应用上面示例中的可搜索块,它会指示 sunspot 在描述中为 Order 编制索引,而它没有,并且无论如何都不能帮助我按产品编制索引。