2008-11-03 31 views
9

için "IS NOT NULL" koşulunu nasıl ekleyebilirim this video'u izleyerek tam metin araması için Thinking Sfenks kullanıyorum.Düşünme Sfenks arama

ben aşağıdakileri yapmak istiyorum:

@articles = Article.search(params[:search], :conditions => "published_at IS NOT NULL", :order => :created_at) 

sorun bu işe olmamasıdır. Arama yönteminin sadece bir karma olan koşulları kabul ettiği görülüyor.

cevap

24

Railscasts

de çözüm üzerinde verildi ... Ben birkaç yol denedim ama bir karma olarak "published_at IS NOT NULL" Ben temsil edebilir olarak nasıl clueless Eğer broadcast_at IS NULL, 'where' public_at IS NOT NULL "ifadesini define_index bloğuna eklemek için bu modelin sonuçlarını * tüm * sonuçlarına ekleyin. sadece bazen ise

, nitelik olarak published_at ekleyin ve sonra sfenks 0 en olarak boş tarihleri ​​saklamalısınız, bu durumda kullandığınız filtreleyebilirsiniz: {: published_at => 0}

ikinci çözümü => olmadan ihtiyacım olan buydu.

+0

Tek cevapta çok güzel şeyler :) –

+0

Bu cevap ThinkingSphinx 3.2 @ pat? 'without => {: broadcast_at => 0}' artık çalışmıyor – 0x4a6f4672