ElasticSearch RoutingMissingException

Я пытаюсь заполнить объекты, имеющие отношение родитель-потомок, но получаю сообщение об ошибке:

[Elastica\Exception\ResponseException] RoutingMissingException[маршрутизация требуется для [myindex]/[comment]/[12345]]

Выдержка из типа conf:

article:
    _source:
        enabled: false
    mappings:
        ...

comment:
    _source:
        enabled: false
    _parent:
        type: article
        property: article_id
        identifier: id
    _routing:
        required: true
        path: article_id
    mappings:
        article:
            type: long
            index: not_analyzed
        ...

Не могу понять, что мне здесь не хватает....

Я использую Symfony2.3, FOSElasticaBundle 3.0, ElasticSearch 1.2.2.


person JohnSmith    schedule 21.07.2014    source источник
comment
Здравствуйте @JognSmith, не могли бы вы отредактировать свой ответ и добавить строку композитора для версии FOSElasticaBundle, показать, как ваши объекты отображаются в коде? Я под одним и тем же багом уже более 2 дней и это сводит меня с ума. Спасибо!   -  person Cassiano    schedule 22.10.2014
comment
@Cassiano, моя проблема заключалась в неправильном поле в сопоставлении (как указано в моем ответе ниже). Исправил исходный вопрос. Проверьте свое отображение.   -  person JohnSmith    schedule 22.10.2014
comment
Я это уже проверил. Вот почему я просил вас о других вещах, таких как тег/ветвь композитора и сопоставление ассоциаций в сущностях.   -  person Cassiano    schedule 22.10.2014


Ответы (2)


Когда у вас есть отношения родитель-потомок, вам нужно указывать родителя в URL-адресе каждый раз, когда вы пытаетесь получить к нему доступ как дочерний элемент, поскольку маршрутизация теперь зависит от родителя.

В вашем примере вы хотели бы попробовать:

http://example.com/myindex/comment/12345?parent=[article_id]

person SymKat    schedule 25.07.2014
comment
Это все еще имеет место при использовании Query DSL? - person Erutan409; 26.08.2015

Была опечатка в сопоставлениях.

comment:
    mappings:
        article_id: <-- was "article"
            type: long
            index: not_analyzed

Может кому это поможет :)

person JohnSmith    schedule 21.07.2014