# Spring-data-elasticsearch “nested query throws \[nested\] failed to find nested object under path” Exception

**URL:** <https://discuss.elastic.co/t/spring-data-elasticsearch-nested-query-throws-nested-failed-to-find-nested-object-under-path-exception/173586>\
**Category:** Elasticsearch\
**Created:** [March 23, 2019, 9:17am UTC](https://discuss.elastic.co/t/spring-data-elasticsearch-nested-query-throws-nested-failed-to-find-nested-object-under-path-exception/173586 "2019-03-23T09:17:37Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![SManorathna](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/smanorathna/32/42626_2.png) [@SManorathna](https://discuss.elastic.co/u/SManorathna)\
**Post date:** [March 23, 2019, 9:17am UTC](https://discuss.elastic.co/t/spring-data-elasticsearch-nested-query-throws-nested-failed-to-find-nested-object-under-path-exception/173586/1 "2019-03-23T09:17:37Z")

</div>

I am trying to query nested object in elasticsearch using spring-boot  
I have 2 POJOs (Person and Car) where one is referred by the other

```auto
@Document(indexName = "person", type = "user")
public class Person {

    @Id
    private String id;
    private String name;

    @Field(type = FieldType.Nested)
    private Car car;

//getter and setter
}

```

```auto
public class Car {
    private String name;
    private String model;

//getter and setter
}

```

This is my REST end point. Here I am trying to return the person who has the given car model. I am sending the car model as a path variable and I am creating a `QueryBuilder` object

```auto
@RequestMapping(value = "/api/{carModel}")
    public List<Map<String,Object>> search(@PathVariable final String carModel) {
        QueryBuilder queryBuilder = QueryBuilders.nestedQuery(
                "car",
                QueryBuilders.boolQuery().must(QueryBuilders.matchQuery("car.model", carModel)),
                ScoreMode.None);

    final SearchRequestBuilder searchRequestBuilder = client.prepareSearch("person")
            .setTypes("user")
            .setSearchType(SearchType.QUERY_THEN_FETCH)
            .setQuery(queryBuilder);

    final SearchResponse response = searchRequestBuilder.get();

        List<Map<String,Object>> resultList = new ArrayList<>();
        List<SearchHit> searchHits = Arrays.asList(response.getHits().getHits());
        for (SearchHit hit : searchHits) {
            resultList.add(hit.getSourceAsMap());
        }

        return resultList;
    }

```

There is an exception occurred at `final SearchResponse response = searchRequestBuilder.get();` saying

`java.lang.IllegalStateException: [nested] failed to find nested object under path [cars]`

What is wrong this that I am doing here.

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [March 23, 2019, 9:30am UTC](https://discuss.elastic.co/t/spring-data-elasticsearch-nested-query-throws-nested-failed-to-find-nested-object-under-path-exception/173586/2 "2019-03-23T09:30:48Z")

</div>

What is the mapping?

---

<div class="post-metadata">

**Author:** ![SManorathna](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/smanorathna/32/42626_2.png) [@SManorathna](https://discuss.elastic.co/u/SManorathna)\
**Post date:** [March 23, 2019, 10:13am UTC](https://discuss.elastic.co/t/spring-data-elasticsearch-nested-query-throws-nested-failed-to-find-nested-object-under-path-exception/173586/3 "2019-03-23T10:13:12Z")

</div>

I have not defined any specific mappings between the DTOs other than defining Car object within the Person object. Is that what I am doing wrong here ?  
What type of mapping is required ?

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [March 23, 2019, 12:16pm UTC](https://discuss.elastic.co/t/spring-data-elasticsearch-nested-query-throws-nested-failed-to-find-nested-object-under-path-exception/173586/4 "2019-03-23T12:16:23Z")

</div>

Can you run this: [https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-mapping.html](https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-mapping.html)

---

<div class="post-metadata">

**Author:** ![SManorathna](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/smanorathna/32/42626_2.png) [@SManorathna](https://discuss.elastic.co/u/SManorathna)\
**Post date:** [March 23, 2019, 1:04pm UTC](https://discuss.elastic.co/t/spring-data-elasticsearch-nested-query-throws-nested-failed-to-find-nested-object-under-path-exception/173586/5 "2019-03-23T13:04:13Z")

</div>

This is the result that I am getting. No nested type mapping information here. Does this mean that I am doing wrong when persisting data ?

```auto
    "person":{  
          "mappings":{  
             "user":{  
                "properties":{  
                   "car":{  
                      "properties":{  
                         "model":{  
                            "type":"text",
                            "fields":{  
                               "keyword":{  
                                  "type":"keyword",
                                  "ignore_above":256
                               }
                            }
                         },
                         "name":{  
                            "type":"text",
                            "fields":{  
                               "keyword":{  
                                  "type":"keyword",
                                  "ignore_above":256
                               }
                            }
                         }
                      }
                   },
                   "name":{  
                      "type":"text",
                      "fields":{  
                         "keyword":{  
                            "type":"keyword",
                            "ignore_above":256
                         }
                      }
                   }
                }
             }
          }
       }

```

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [March 23, 2019, 1:25pm UTC](https://discuss.elastic.co/t/spring-data-elasticsearch-nested-query-throws-nested-failed-to-find-nested-object-under-path-exception/173586/6 "2019-03-23T13:25:45Z")

</div>

Don't use `nested` query then.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [April 20, 2019, 1:25pm UTC](https://discuss.elastic.co/t/spring-data-elasticsearch-nested-query-throws-nested-failed-to-find-nested-object-under-path-exception/173586/7 "2019-04-20T13:25:51Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
