问题
I'm using Thinking Sphinx for full-text search, following this video.
I'd like to do the following:
@articles = Article.search(params[:search], :conditions => "published_at IS NOT NULL", :order => :created_at)
The problem is that this doesn't work. It seems that the search method only accepts conditions that are a hash. I've tried a couple of ways, but I am clueless as to how I can represent "published_at IS NOT NULL" as a hash...
回答1:
Was given the solution over at Railscasts
If you want *all* results for that model to filter out records where published_at IS NULL, add 'where "published_at IS NOT NULL"' to your define_index block.
If it's only sometimes, add published_at as an attribute, and then sphinx should store null dates as 0's, so you can filter using :without => {:published_at => 0}
The second solution was what I needed.
来源:https://stackoverflow.com/questions/258378/how-do-i-add-the-condition-is-not-null-to-a-thinking-sphinx-search