9

J'utilise Thinking Sphinx pour la recherche en texte intégral, en suivant this video.Comment ajouter la condition "IS NOT NULL" à une recherche de Sphinx de pensée

Je voudrais faire ce qui suit:

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

Le problème est que cela ne fonctionne pas. Il semble que la méthode de recherche n'accepte que des conditions qui sont un hachage. J'ai essayé deux façons, mais je suis désemparés quant à la façon dont je peux représenter « published_at IS NOT NULL » comme un hachage ...

Répondre

24

a été donné la solution à plus Railscasts

Si vous want * all * résultats pour ce modèle pour filtrer les enregistrements où published_at IS NULL, ajoutez 'where "published_at IS NOT NULL"' à votre bloc define_index.

Si c'est seulement parfois, ajouter published_at comme un attribut, puis sphynx devrait enregistrer les dates nulles que des 0, vous pouvez filtrer à l'aide: sans => {: published_at => 0}

La deuxième solution était ce dont j'avais besoin.

+0

Tant de bonnes choses dans une réponse :) –

+0

Cette réponse est-elle toujours valable pour ThinkingSphinx 3.2 @pat? 'without => {: published_at => 0}' ne semble plus fonctionner – 0x4a6f4672

Questions connexes