Вопрос

У меня есть стандартное поле DateTime в моем классе акций на основе доктрины:

/**
 * @ORM\Column(type="datetime")
 */
private $occurring;
.

Это генерирует объект dateTime и работает как ожидалось. Но проблема возникает, когда этот объект интегрирован с Foselasticabundle. Из-за объектов DateTime не поддерживает метод __toString (), мне пришлось реструктурировать My Elastica Config с использованием свойств, так что команда заполнения заполнится:

mappings:
    id: ~
    occurring:
        properties:
            date: { type: date, format: "yyyy-MM-dd" }
.

Это заполняет дату правильно, но она загружает в формате Elasticsearch по умолчанию и игнорирует любые пользовательские форматирования.

Проблема заключается в том, что мои запросы диапазона на основе этой даты поля не возвращают ожидаемые результаты. Следующий фильтр ничего не возвращает, даже если в этом диапазоне есть элементы.

$filteredQuery = new Filtered(
    $mainQuery,
    new Range('occurring', array(
        'gte' => '2013-11-18',
        'lte' => '2014-11-18'
    ))
);
.

Полученный запрос при запуске непосредственно в elasticsearch через Curl возвращает одинаковые неверные результаты.

Я заметил, что изменение GTE PARAM к 2012 году вернул ожидаемые результаты в диапазоне дат 2013 года, поэтому мне интересно, если неверное форматирование даты вызывает обрезку или что-то подобное?

Есть идеи? Спасибо.

Это было полезно?

Решение

Я полагал это с помощью этого ответа:

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top