9

this video에 이어 전체 텍스트 검색에 대해 생각하고있는 스핑크스를 사용하고 있습니다.Thinking Sphinx 검색에 "IS NOT NULL"조건을 추가하는 방법

나는 다음을 수행 싶습니다

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

문제는이 작동하지 않는다는 것입니다. 검색 방법은 해시 조건 만 허용하는 것으로 보입니다.

답변

24

Railscasts

에서 솔루션을 넘겨되었다 ... 나는 몇 가지 방법을 시도했지만, 해시로 "published_at가 NULL이"나는 나타낼 수있는 방법으로 나는 우둔 나는 당신이 만약 해당 모델의 모든 * 결과에서 published_at이 NULL 인 레코드를 필터링하고 define_index 블록에 'published_at IS NOT NULL'을 추가하십시오. 그것은 단지 가끔의 경우

는 속성으로 published_at을 추가하고 스핑크스는 0으로 널 날짜를 저장해야합니다, 그래서 당신은 사용하여 필터링 할 수 있습니다 : {: published_at => 0}

두 번째 솔루션 =>없이 내가 필요로하는 것이 었습니다.

+0

한 가지 대답으로 좋은 점이 많습니다. –

+0

이 답변은 ThinkingSphinx 3.2 @pat에도 유효합니까? 'without => {: published_at => 0}'은 더 이상 작동하지 않습니다. – 0x4a6f4672