Hey guys,
I'm trying to run a range query on a nested keyword field, but I'm not having any luck:
{
"query": {
"bool": {
"filter": [
{
"term": {
"kind": "episode"
}
},
{
"nested": {
"path": "metas",
"query": {
"bool": {
"must": [
{
"term": {
"metas.key": "duration"
}
},
{
"range": {
"metas.value": {
"gte": "100",
"lte": "200",
"boost": 2.0
}
}
}
]
}
}
}
}
]
}
}
}
So I'm looking for all documents where metas.key
is duration
and metas.value
is between 100-200 (formatted as string).
My query is successful, but includes any metas.value regardless of it's value, I'm e.g. getting documents where the value is 20
etc.
My mapping (in Ruby) looks like this:
indexes :metas, type: :nested do
indexes :key, type: :keyword
indexes :value, type: :keyword
indexes :created_at, type: :date
indexes :updated_at, type: :date
end