Я использую Sunspot (https://github.com/sunspot/sunspot) с Rails.
Вот моя модель:
class Item < ActiveRecord::Base
searchable do
boolean :red
boolean :blue
boolean :green
...
end
end
Рассмотрим следующий поиск:
Item.search
any_of do
with :red, true
with :blue, true
with :green, true
end
end
Как можноЯ упорядочиваю результаты следующим образом: элементы, содержащие все цвета, за которыми следуют элементы, содержащие 2 цвета, а затем элементы, содержащие 1 из цветов?
Примечание : это всего лишь один пример поискаОтвет должен учитывать все возможные комбинации поиска для цветов.
Обновление 1
Упорядочение по количеству цветов не будет работать. Например, скажем, у вас естьэлементы:
- зеленый / синий
- зеленый / красный / черный
Если вы ищете зеленый и синий, пункт 2 будет стоять перед элементом 1.