I am getting "[nested] failed to find nested object under path" when searching on single index and field has "type": "nested" in mappings:
PS: I am getting response, but exception is seen on elasticsearch console.
If I execute the query using SoapUI, i dont see an issue.
I see this issue when invoking from Springboot application.
Elastic version: 6.8.0 (https enabled)
Springboot: 2.2.0
Workaround found: when i use "ignore_unmapped" : true, then the exception is not shown on console.
I am accessing elastic search with 9200 port, but in exception, i see 9300 (org.elasticsearch.transport.RemoteTransportException: [ICcYcsD][127.0.0.1:9300][indices:data/read/search[phase/dfs]])
Mapping:
`{"customer_orders": {"mappings": {"_doc": {"properties": {
"firstName": {
"type": "text",
"fields": {"keyword": {
"type": "keyword",
"ignore_above": 256
}}
},
"lastName": {
"type": "text",
"fields": {"keyword": {
"type": "keyword",
"ignore_above": 256
}}
},
"orders": {
"type": "nested",
"properties": {
"orderId": {
"type": "text",
"fields": {"keyword": {
"type": "keyword",
"ignore_above": 256
}}
},
"orderName": {
"type": "text",
"fields": {"keyword": {
"type": "keyword",
"ignore_above": 256
}}
}
}
}
}}}}}`
Exception:
` [2020-06-18T10:28:55,705][DEBUG][o.e.a.s.TransportSearchAction] [ICcYcsD] [user_and_entitlement][4], node[ICcYcsDsQoCxs0ybyFbDKw], [P], s[STARTED], a[id=6HMxn-fNSLKgy7N0nVYcPw]: Failed to execute [SearchRequest{searchType=DFS_QUERY_THEN_FETCH, indices=[.security, .security-6, customer_orders, user_and_entitlement], indicesOptions=IndicesOptions[ignore_unavailable=false, allow_no_indices=true, expand_wildcards_open=true, expand_wildcards_closed=false, allow_aliases_to_multiple_indices=true, forbid_closed_indices=true, ignore_aliases=false, ignore_throttled=true], types=[], routing='null', preference='null', requestCache=null, scroll=null, maxConcurrentShardRequests=5, batchedReduceSize=512, preFilterShardSize=128, allowPartialSearchResults=true, localClusterAlias=null, getOrCreateAbsoluteStartMillis=-1, source={"from":0,"query":{"bool":{"must":[{"match":{"firstName":{"query":"ravi","operator":"OR","prefix_length":0,"max_expansions":50,"fuzzy_transpositions":true,"lenient":false,"zero_terms_query":"NONE","auto_generate_synonyms_phrase_query":true,"boost":1.0}}}],"should":[{"match":{"firstName":{"query":"ravi","operator":"OR","prefix_length":0,"max_expansions":50,"fuzzy_transpositions":true,"lenient":false,"zero_terms_query":"NONE","auto_generate_synonyms_phrase_query":true,"boost":1.0}}},{"nested":{"query":{"query_string":{"query":"22","fields":[],"type":"best_fields","default_operator":"or","max_determinized_states":10000,"enable_position_increments":true,"fuzziness":"AUTO","fuzzy_prefix_length":0,"fuzzy_max_expansions":50,"phrase_slop":0,"escape":false,"auto_generate_synonyms_phrase_query":true,"fuzzy_transpositions":true,"boost":1.0}},"path":"orders","ignore_unmapped":false,"score_mode":"max","boost":1.0,"inner_hits":{"ignore_unmapped":false,"from":0,"size":100,"version":false,"seq_no_primary_term":false,"explain":false,"track_scores":false,"_source":false,"docvalue_fields":[{"field":"orders.orderId.keyword","format":"use_field_mapping"}]}}}],"adjust_pure_negative":true,"boost":1.0}},"version":true,"_source":{"includes":[],"excludes":["orders"]}}}] lastShard [true]
org.elasticsearch.transport.RemoteTransportException: [ICcYcsD][127.0.0.1:9300][indices:data/read/search[phase/dfs]]
Caused by: org.elasticsearch.index.query.QueryShardException: failed to create query: {
"bool" : {
"must" : [
{
"match" : {
"firstName" : {
"query" : "ravi",
"operator" : "OR",
"prefix_length" : 0,
"max_expansions" : 50,
"fuzzy_transpositions" : true,
"lenient" : false,
"zero_terms_query" : "NONE",
"auto_generate_synonyms_phrase_query" : true,
"boost" : 1.0
}
}
}
],
"should" : [
{
"match" : {
"firstName" : {
"query" : "ravi",
"operator" : "OR",
"prefix_length" : 0,
"max_expansions" : 50,
"fuzzy_transpositions" : true,
"lenient" : false,
"zero_terms_query" : "NONE",
"auto_generate_synonyms_phrase_query" : true,
"boost" : 1.0
}
}
},
{
"nested" : {
"query" : {
"query_string" : {
"query" : "22",
"fields" : [ ],
"type" : "best_fields",
"default_operator" : "or",
"max_determinized_states" : 10000,
"enable_position_increments" : true,
"fuzziness" : "AUTO",
"fuzzy_prefix_length" : 0,
"fuzzy_max_expansions" : 50,
"phrase_slop" : 0,
"escape" : false,
"auto_generate_synonyms_phrase_query" : true,
"fuzzy_transpositions" : true,
"boost" : 1.0
}
},
"path" : "orders",
"ignore_unmapped" : false,
"score_mode" : "max",
"boost" : 1.0,
"inner_hits" : {
"ignore_unmapped" : false,
"from" : 0,
"size" : 100,
"version" : false,
"seq_no_primary_term" : false,
"explain" : false,
"track_scores" : false,
"_source" : false,
"docvalue_fields" : [
{
"field" : "orders.orderId.keyword",
"format" : "use_field_mapping"
} ]
} }
} ],
"adjust_pure_negative" : true, "boost" : 1.0
} }
at org.elasticsearch.index.query.QueryShardContext.toQuery(QueryShardContext.java:324) ~[elasticsearch-6.8.0.jar:6.8.0]
at org.elasticsearch.index.query.QueryShardContext.toQuery(QueryShardContext.java:307) ~[elasticsearch-6.8.0.jar:6.8.0]
at org.elasticsearch.search.SearchService.parseSource(SearchService.java:770) ~[elasticsearch-6.8.0.jar:6.8.0]
at org.elasticsearch.search.SearchService.createContext(SearchService.java:621) ~[elasticsearch-6.8.0.jar:6.8.0]
at org.elasticsearch.search.SearchService.createAndPutContext(SearchService.java:596) ~[elasticsearch-6.8.0.jar:6.8.0] at org.elasticsearch.search.SearchService.executeDfsPhase(SearchService.java:324) ~[elasticsearch-6.8.0.jar:6.8.0] at org.elasticsearch.search.SearchService.access$000(SearchService.java:126) ~[elasticsearch-6.8.0.jar:6.8.0] at org.elasticsearch.search.SearchService$1.onResponse(SearchService.java:310) [elasticsearch-6.8.0.jar:6.8.0] at org.elasticsearch.search.SearchService$1.onResponse(SearchService.java:306) [elasticsearch-6.8.0.jar:6.8.0]
at org.elasticsearch.search.SearchService$4.doRun(SearchService.java:1086) [elasticsearch-6.8.0.jar:6.8.0]
at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37) [elasticsearch-6.8.0.jar:6.8.0]
at org.elasticsearch.common.util.concurrent.TimedRunnable.doRun(TimedRunnable.java:41) [elasticsearch-6.8.0.jar:6.8.0]
at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:751) [elasticsearch-6.8.0.jar:6.8.0]
at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37) [elasticsearch-6.8.0.jar:6.8.0]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_251] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_251]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_251] Caused by: java.lang.IllegalStateException: [nested] failed to find nested object under path [orders]
at org.elasticsearch.index.query.NestedQueryBuilder.doToQuery(NestedQueryBuilder.java:279) ~[elasticsearch-6.8.0.jar:6.8.0]
at org.elasticsearch.index.query.AbstractQueryBuilder.toQuery(AbstractQueryBuilder.java:105) ~[elasticsearch-6.8.0.jar:6.8.0]
at -- omitted rest of the stack trace