Hi,
I have three level schema for index which is like:
conversation
|----message
|-------message_tag
Now if run following query on message, it returns results
correctly.
{
"query": {
"has_child": {
"type": "message",
"query": {
"match_all": {}
}
}
}
}
Now if I put query above in query part of top_children on
conversation, it does not return anything and returns some errors with
200. I am trying to get top conversations with messages having
children.
{
"query": {
"top_children": {
"type": "message",
"score": "sum",
"query": {
"has_child": {
"type": "message_tag",
"query": {
"match_all": {}
}
}
}
}
}
}
Results:
{"took":3,"timed_out":false,"_shards":{"total":5,"successful":
3,"failed":2,"failures":[{"index":"testcompany","shard":
0,"reason":"QueryPhaseExecutionException[[testcompany][0]:
query[score_child[message/conversation]
(filtered(ConstantScore(child_filter[message_tag/message]
(filtered(ConstantScore(:))-
FilterCacheFilterWrapper(_type:message_tag))))-
FilterCacheFilterWrapper(_type:message))],from[0],size[10]: Query
Failed [Failed to execute child query [score_child[message/
conversation](filtered(ConstantScore(child_filter[message_tag/message]
(filtered(ConstantScore(:))-
FilterCacheFilterWrapper(_type:message_tag))))-
FilterCacheFilterWrapper(_type:message))]]]; nested: "},
{"index":"testcompany","shard":
1,"reason":"QueryPhaseExecutionException[[testcompany][1]:
query[score_child[message/conversation]
(filtered(ConstantScore(child_filter[message_tag/message]
(filtered(ConstantScore(:))-
FilterCacheFilterWrapper(_type:message_tag))))-
FilterCacheFilterWrapper(_type:message))],from[0],size[10]: Query
Failed [Failed to execute child query [score_child[message/
conversation](filtered(ConstantScore(child_filter[message_tag/message]
(filtered(ConstantScore(:))-
FilterCacheFilterWrapper(_type:message_tag))))-
FilterCacheFilterWrapper(_type:message))]]]; nested: "}]},"hits":
{"total":0,"max_score":null,"hits":}}
I am new to Elasticsearch, so is this supposed to work or I am doing
something wrong.
Thanks,
Deepak