-->

ElasticSearch RoutingMissingException

2020-07-03 07:21发布

问题:

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

回答1:

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]



回答2:

Had typo in mappings.

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

Maybe this helps someone :)