How do I add the condition “IS NOT NULL” to a Thinking Sphinx search

谁都会走 提交于 2019-12-21 04:22:14

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!