2014-12-06 3 views
-1

저는 start_date와 end_date 속성을 가진 모델을 가지고 있습니다. 사용자가 날짜를 입력 할 검색 양식이 있으며 start_date와 end_date 사이에 날짜가 있으면 모델에서 데이터를 가져와야합니다.비교 Sphinix의 조작자

스핑크스를 사용하여 쿼리를 어떻게 작성해야합니까?

답변

2

다음과 같은 것을 수행해야합니다

  • 이 모델의 스핑크스 지수에 attributes (안 필드)로 모두 시작일과 종료일을 추가합니다.
  • 양식 매개 변수를 날짜 또는 시간 값으로 변환
  • 범위를 사용하여 검색어를 제한하십시오. filters

나는 시간이 매우 큰 창을 선택했다 적이 있지만 기본적으로이 지정된 날짜가 종료 날짜에 동일하거나 시작 날짜 보다 크고보다 작거나 같은 보장합니다.

beginning, ending = Time.utc(1970), Time.utc(2030) 
Model.search :with => { 
    :start_date => beginning..date_from_params, 
    :end_date => date_from_params..ending 
} 
+0

감사합니다.이 도움이되었습니다. 어쨌든 ThinkingSphinx :: Search 결과에 sql 쿼리를 추가 할 수 있습니다. –

+0

문서에 명시된대로 결과 SQL 쿼리에 대한 몇 가지 옵션 (': include',': joins',': select',': order')을 보낼 수 있습니다 : http://pat.github.io/thinking -sphinx/searching.html # advanced -하지만 WHERE 절에 추가 할 수있는 옵션은 없습니다 (어쨌든 권장하지 않습니다 - 스핑크스의 페이지 매김 논리를 망칠 것입니다). – pat

+0

확인. 이해 했어. 감사 –