I want to create a runtime field based on some conditions. And i have a query which is working fine on kibana console. I implemented the same query on java code but is not working. There is a method in SearchRequest runtimeMappings()
which is overloaded and can accepts String key, List<RuntimeField> value
or can accepts Map<String, List<RuntimeField>> map
. But when I am using any of these methods and running my query, it is throwing an exception: Caused by: org.elasticsearch.index.mapper.MapperParsingException: Expected map for runtime field [w_ticket_category] definition but got a java.util.ArrayList
. This is happening because the ES expects Map
instead of List
in the value of these mathods. The query on kibana console taking value as a Map
only and is working, and if I am trying to pass a List
instead of Map
then I am getting the same error.
UPDATE: I got a diff in which we can see the changes for that method. The runtimeMappings(String key, RuntimeField value)
changed to runtimeMappings(String key, List<RuntimeField> value)
and similarly runtimeMappings(Map<String, RuntimeField> map)
changed to runtimeMappings(Map<String, List<RuntimeField>> map)
.
Is there any specific reason for it.
Github Diff Link
Is it known issue or i'm doing something wrong...
Any help would be appreciated.
Thanks