0
class Cat < ActiveRecord::Base
  searchable do
    string :color
  end
end
class Dog < ActiveRecord::Base
  searchable do
    string :color
  end
end

鉴于模型CatDog以上,我如何对所有狗 + 仅棕色猫进行太阳黑子搜索。

|dogs|color|    |cats|color|
------------    ------------
| 1  |black|    | 1  |black|
| 2  |brown|    | 2  |brown|
| 3  | red |    | 3  | red |

对于上述狗/猫,我想要Dogs [1, 2 3]Cat [2]

我想要类似下面的东西,但条件是with仅适用于Cats.

Sunspot.search(Dog, Cat) do
  with :color, "brown"
end

是否有with模型类型的参数?如果是这样,我可以做这样的事情:

Sunspot.search(Dog, Cat) do
  any_of do
    with :color, "brown"
    with :model, Dog
  end
end

您如何围绕正在搜索的模型确定 Sunspot DSL 部分的范围?

4

1 回答 1

0

我最终table_name在模型索引中添加了一个字段并使用了它。

class Dog < ActiveRecord::Base
  searchable do
    string :color
    string :table_name do Dog.table_name end
  end
end

Sunspot.search(Dog, Cat) do
  any_of do
    with :color, "brown"
    with :table_name, Dog.table_name
  end
end
于 2013-10-16T16:33:40.580 回答