Elastica с FOS: ElasticsearchIllegalArgumentException

В моем приложении symfony2/doctor 2 я получаю сообщение об ошибке при запуске fos:elastica:populate :

[Elastica\Exception\Bulk\ResponseException]
Ошибка в одном или нескольких действиях массового запроса:
index: /foodmeup/offer/4 вызвало MapperParsingException[не удалось проанализировать [ответы]]; вложенный: ElasticsearchIllegalArgumentException[неизвестное свойство [0]];

Моя конфигурация следующая: я установил тип: строка для обязанностей, которая на самом деле является массивом доктрины json:

offer:
    mappings:
        name: { type: string, boost: 10}
        content: { type: string }
        responsibilities: { type: string }
        skills:
            type: "nested"
            properties:
                name: { type: string }
        contractType:
            type: "nested"
            properties:
                name: { type: string }
        position:
            type: "nested"
            properties:
                name: { type: string, boost: 10 }

И мое сопоставление сущностей:

/**
 * @ORM\Column(type="json_array", nullable=false)
 */
protected $responsibilities = array();

Что я могу сделать, чтобы решить эту проблему? Я пробовал использовать «~» вместо «string», но возникает та же проблема, и когда я просто удаляю строку конфигурации для обязанностей, все работает хорошо.

Спасибо !


person Sébastien    schedule 26.05.2015    source источник
comment
возможно, потому что ваши обязанности представляют собой массив и не могут быть настроены как строка в сопоставлении, проверьте, есть ли тип массива в пакете   -  person Nawfal Serrar    schedule 27.05.2015


Ответы (1)


Я думаю, вам следует использовать некоторые преобразователи, поскольку ваши данные не одного типа. Я настоятельно рекомендую вам прочитать эту статью: http://obtao.com/blog/2014/05/advanced-indexing-with-elasticsearch-foselasticabundle/

person hanego    schedule 27.05.2015
comment
хорошо, я попробую это! - person Sébastien; 28.05.2015