Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 是否有可能重复使用来自其他模型的太阳黑子可搜索声明?_Ruby On Rails_Solr_Dry_Sunspot - Fatal编程技术网

Ruby on rails 是否有可能重复使用来自其他模型的太阳黑子可搜索声明?

Ruby on rails 是否有可能重复使用来自其他模型的太阳黑子可搜索声明?,ruby-on-rails,solr,dry,sunspot,Ruby On Rails,Solr,Dry,Sunspot,我正在使用sunspot在一个定制的SpreeWebshop项目中进行全文搜索 有些产品已被广泛索引: class Product searchable do text :description ... lots of other declarations end end 我现在需要索引订单,通过其他一些型号,但我认为这并不重要,有很多产品: class Order has_many :products end 问题是:我希望订单可以通过其产品进行搜索,使用相同的

我正在使用sunspot在一个定制的SpreeWebshop项目中进行全文搜索

有些产品已被广泛索引:

class Product
  searchable do
    text :description
    ... lots of other declarations
  end
end
我现在需要索引订单,通过其他一些型号,但我认为这并不重要,有很多产品:

class Order
  has_many :products
end
问题是:我希望订单可以通过其产品进行搜索,使用相同的索引属性。我想保持冷静,不要把产品声明的变体添加到新的订单可搜索块中,而是说类似订单的东西可以通过产品进行搜索。这有可能吗?太阳黑子的文档没有提到类似的事情

编辑:

Apreading建议将声明放在某种共享模块中,并以这种方式重新使用。我可能弄错了,但我认为这是行不通的,因为太阳黑子DSL引用了当前的模型,所以来自产品的声明在订单上是行不通的


例如,如果我可以按顺序应用上面示例中的可搜索块,它将指示太阳黑子在描述上索引顺序,但它没有,而且也不能帮助我按产品编制索引。

类似:我使用elasticsearch,这是我的工作,因为我可以通过程序。请看:A开头:我不明白另一个问题对我有什么帮助。你能详细说明一下吗?antinome answers使用进程,所以你可以把共享进程放在一个mixin中,并包含你想要的进程