0

我有两个模型,分别命名为 Products 和 Variants,其中 Variant 模型与 Products 关联,因为 Product 有许多 Variants。变体模型具有名为“available_on”的字段......我想使用两个日期作为签入n结帐日期来实现搜索。

.

如果每个日期都有产品的变体,入住日期到结帐日期,结果将映射所有这些产品,它就是结果....

. . 指导我如何使用 Sunspot:solr 给出条件

大致我的模型是这样的

product
{
product_id integer
has_many variants
}

variant
{
variant_id integer
available_on date
belongs_to product
}

check-in n checkout 是搜索的输入。

4

2 回答 2

0

如果您对模型提出质疑,那么回答会更容易,但一般来说,如果您有 has_many 关系,那么您应该索引嵌套模型

#variant model

searchable do

  integer :product_id
  time :check_in     
  time :check_out     

end

如果您需要从父has_many模型中索引某些内容,您可以通过:multiple=>true这种方式使用选项

#product model

def variant_ids     
  variants.collect(&:id)
end

searchable do

  integer :variant_ids, :multiple=>true
  ...

end
于 2013-01-28T05:25:04.407 回答
0

索引每个模型,并从 SOLR 返回您需要的变体/产品。顺便说一句,如果您正在使用 Spree,则有一个用于集成太阳黑子和 spree 的宝石。我只是把它分叉了:https ://github.com/banane/spree_sunspot_search

于 2013-02-03T04:23:03.407 回答