Подтвердить что ты не робот

Как фильтровать запрос в solr по дате?

В моем SOLR есть поле даты (publish_date), и значения находятся в этом формате "2012-09-26T10: 08: 09.123Z"

Как я могу искать с помощью простого ввода типа "2012-09-10" вместо полного формата даты ISO.

Возможно ли это в SOLR?

fq=[2012-09-24%20TO%20NOW]

Он должен возвращаться, фильтруя результаты, превышающие опубликованную дату 2012-09-24 и меньше, чем СЕЙЧАС.

Но он возвращает данные с опубликованной датой в 2012-09-23, как показано ниже

<float name="score">2.8183863</float>
<str name="name">Local Team Inspires Obama</str>
<date name="published_date">2012-09-23T07:44:53.123Z</date>

Я что-то упускаю?

заранее спасибо.

4b9b3361

Ответ 1

Если вы хотите получить публикации на прошлой неделе, вы можете сделать что-то вроде:

&fq=published_date:[NOW-7DAY/DAY TO NOW]

Но если вам нужна конкретная дата, вы должны сделать это в формате даты SOLR:

&fq=published_date:[2013-07-17T00:00:00Z TO NOW]

Надеюсь, это поможет

Ответ 2

Простейшей формой даты Solr является ключевое слово "СЕЙЧАС", которое относится к текущей дате и времени. Он чувствителен к регистру в Solr, но анализатор запросов Lucid позволит ему быть в любом случае. "СЕЙЧАС" можно использовать либо, если не задана явная дата или дата, или она может использоваться, если дата математики указана без явной даты.

Явная дата написана в Solr с использованием формата на основе ISO 8601, который состоит из строки формы yyyy-mm-ddThh: mm: ss.mmmZ, где "yyyy" - четырехзначный год, первый "мм" '- двузначный месяц, dd - двузначный день, "T" - обязательная буквальная буква "T", указывающая, что время следует "hh" - это двухзначные часы (от "00" до " 23 '), вторая "мм" - это двузначные минуты (от "00" до "59"), "ss" - это двухзначные секунды (от "00" до "59"), опционально ".mmm" трехзначные миллисекунды, которым предшествует период, а "Z" - обязательная буквальная буква "Z", указывающая, что время UTC ("Zulu"). Миллисекундная часть, включая ее ведущий период, является необязательной. Конечные нули не требуются для миллисекунд.

For example:

    2008-01-01T00:00:00Z

    2008-01-01T00:00:00

    2008-01-01T00:00 same as [2008-01-01T00:00:00Z TO 2008-01-01T00:00:59Z]

    2008-01-01T00: same as [2008-01-01T00:00:00Z TO 2008-01-01T00:59:59Z]

    2008-01-01T same as [2008-01-01T00:00:00Z TO 2008-01-01T23:59:59Z]

    2008-01-01 same as [2008-01-01T00:00:00Z TO 2008-01-01T23:59:59Z]

    2008-01 same as [2008-01-01T00:00:00Z TO 2008-01-31T23:59:59Z]

    2008 same as [2008-01-01T00:00:00Z TO 2008-12-31T23:59:59Z]

Приобрести документацию Solr