12

I'm trying to populate objects having parent-child relation, but get an error:

[Elastica\Exception\ResponseException] RoutingMissingException[routing is required for [myindex]/[comment]/[12345]]

Excerpt from type 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
        ...

Cant understand what I am missing here....

I'm using Symfony2.3, FOSElasticaBundle 3.0, ElasticSearch 1.2.2

JohnSmith
  • 436
  • 5
  • 17
  • Hello @JognSmith, could you please edit your answer and add the line of composer for the version of FOSElasticaBundle, show how your entities are mapped in the code? I'm under the same bug for more than 2 days and it is driving me crazy. Thanks! – Cassiano Oct 21 '14 at 23:10
  • @Cassiano, my problem was incorrect field in mapping (as noted in my answer below). Corrected original question. Check your mapping. – JohnSmith Oct 22 '14 at 06:30
  • I've already checked that. That's why I was asking to you other stuff as composer tag/branch and association mapping in entities – Cassiano Oct 22 '14 at 10:04

2 Answers2

21

When you have a parent child relationship, you need to specify the parent in the URL each time you try to access it a child, since routing now depends on the parent.

In your example, you'd want to try:

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

SymKat
  • 841
  • 5
  • 5
0

Had typo in mappings.

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

Maybe this helps someone :)

JohnSmith
  • 436
  • 5
  • 17