Mam do wykonania dość kłopotliwy select. Szukam dziś cały czas rozwiązania w necie, ale nie mogę znaleźć nic działającego.
Używam ThinkingSphinx 2.0.5 oraz Ror 3.0.7
Na starcie chciałem wywołać SQL OR.
Znalazłem i skorzystałem z poniższego rozwiązania:
Jednak wszystko się rozsypuje gdy dodam do tego :with_all i przedział daty.
Place.search "@city Kraków | @city Warszawa", :match_mode => :extended, :with_all => {:reservation_time_start => 1.week.ago.to_i..Time.now.to_i}
Powyższe polecenie powoduje lekką zwiechę sphinxa i całą litanie błędów z wyjątkiem:
Riddle::ResponseError: searchd error (status: 1): unknown command (code=0)
Motyw z SQLowym <= także nie działa. Po prostu nie filtruje(zwraca tyle samo rekordów co bez tego parametru)
(Place.search "@city Kraków | @city Warszawa @reservation_time_start <= #{Time.now.to_i}", :match_mode => :extended).size
#[@reservation_time_start to odwołanie do innej tabeli]
Próba z prostym created_at
(Place.search "@city Kraków | @city Warszawa @created_at <= #{Time.now.to_i}", :match_mode => :extended).size
Także nie działa.
Da się to w ogóle dokonać za pomocą ThinkingSphinx?