Расчет даты в состоянии мышления сфинкса - PullRequest
1 голос
/ 23 января 2012

В настоящее время я использую рельсы 3.1, sphinx и интеллектуальный сфинкс для своего поискового приложения.

В моей модели есть два поля, которые я определяю как атрибуты sphinx:

define_index do

  has availability_period # number of days
  has availability_date
end

Я хочувыполнить поиск по этой дате доступности, поэтому я использую область сфинкса, определенную следующим образом:

# search by date e.g av_date = '01. Feb 2012'
# find items that are availabile for that date
sphinx_scope(:by_date){ |av_date|
  search_date = (Time.now-2.years)..av_date
  {
    :with => { :availability_date => search_date} 
  }  
}

Тем не менее, элемент имеет доступный_период в днях, поэтому я хочу добавить количество запросов в днях.

Итак, давайте предположим что-то вроде этого:

item 1: {availability_date: '10. Jan 2012', availability_period: 14}
item 2: {availability_date: '10. Feb 2012', availability_period: 30}

Теперь я ищу предметы между '01.Январь 2011 г. - «30 февраля 2012 г.»}, я хочу найти только элемент № 1, а не элемент № 2, потому что 10. 10 февраля + 30 дней дают 10 марта, что выходит за рамки моего диапазона.

...