bende raylar modelleri ile 3 app: Ben kategorilere göre olayları filtrelemek ve sayıları ile kategori ağacı işlemek gerekirDüşünce Sfenksinde Çok Değerli Özellikler (MVA) ve yüzler nasıl kullanılır?
class Event < ActiveRecord::Base
has_many :event_categories
has_many :categories, through: :event_categories
end
class EventCategory < ActiveRecord::Base
belongs_to :category
belongs_to :event
end
class Category < ActiveRecord::Base
belongs_to :parent, class_name: 'Category'
has_many :subcategories, class_name: 'Category', foreign_key: :parent_id
end
:
Music Festivals (10) # id: 1
-- Classic (2) # id: 3
-- Pop (8) # id: 8
IT Conferences (2) # id: 10
-- Ruby (1) # id: 11
-- PHP (1) # id: 12
...
böyle yapmaya çalıştım:
define_index do
has category_values, type: :multi, facet: true
end
before_save :collect_category_values
def collect_category_values
# traversing events categories
# putting string like '10/1/3' to self.category_values
# which contains all event's categories and subcategories
end
Bu kod harika arama sonuçları üretir, ancak facet sayımları hüzünlendirir:
01 Yerine:
{ :category_values => { 1 => 10, 3 => 2, 10 => 2, 11 => 1 }
Ve en komik kısmı ben endeksi değiştirmeye karar verdiğinde başladı ama onu yeniden unuttum: Bu kirli kesmek
# old attribute --> has category_values, type: :multi, facet: true
has categories(:id), as: :category_id, type: :multi facet: true
: sfenks eski kullanmaya başlar Yeni model mantığı ile indeks sorgulaması. Sayılar ve arama sonuçları mükemmeldir. Ancak, elbette, eğer indeksleri yeniden kurmaya, dağıtmaya veya ikna etmeye çalışırsak, sayımlar tekrar bozulur.
Soru şu: MVA birlikte nasıl birlikte kullanılır? Aynı sorunla '09 den
Bulunan sorular,: http://www.mailinglistarchive.com/[email protected]/msg00473.html http://groups.google.com/group/thinking-sphinx/browse_thread/thread/e06cfab6aad327d2
teşekkür ederiz.
[Sadece bağlantıya verilen yanıtlar] (http://meta.stackoverflow.com/tags/link-only-answers/info) önerilmediğini unutmayın, SO yanıtları bir çözüm arayışının son noktası olmalıdır (Yine de zamanla bayat eğilimi olan referanslardan başka bir duraklama). Lütfen bağlantıyı referans olarak tutarak, burada tek başına bir özet eklemeyi düşünün. – kleopatra