Elasticsearch: nested object under path is not of nested type
TLDR: Put "type": "nested",
in your nested type.
Say we have a normal type, and another type nested in it:
{ "some_index": { "mappings": { "normal_type": { "properties": { "nested_type": { "type": "nested", "properties": { "address": { "type": "string" }, "country": { "type": "string" } } }, "first_name": { "type": "string" }, "last_name": { "type": "string" } } } } }}
The "type": "nested",
line is required for the nested queries to work which have "path":
assigned to nested_type
, like this:
GET /some_index/normal_type/_search{ "query": { "nested": { "query": { "bool": {} }, "path": "nested_type" } }}
The "type": "nested",
line seems to be required in newer Elasticsearch versions only (since 1.1.1 ?).
Syntax error in query DSL. Incorrect closing for must block query->bool->must
{ "query": { "bool": { "must": [ }// Should be ] } }}
Correct version query are :
curl -XGET 'localhost:9200/thread_and_messages/thread/_search' -d '{ "query": { "bool": { "must": [ { "match": { "thread_name": "Banana" } }, { "nested": { "path": "messages", "query": { "bool": { "must": [ { "match": { "messages.message_text": "Banana" } } ] } } } } ] } }}'