У меня есть три типа документов, проиндексированных в ElasticSearch: Car
, Bike
и Truck
.Я написал запрос, чтобы получить все документы, которые соответствуют определенным критериям, но я также хочу отсортировать порядок, в котором Car
s извлекается, используя только свойство, которое Car
имеет и не найдено среди Bike
и Truck
.
Пока что это то, что у меня есть:
{
"query": {
"bool": {
"must": [{
"match": {
"is_registered": true
}
}]
}
},
"sort": [{
"ac_type": {
"order": "desc"
}
}]
}
Но я получаю сообщение об ошибке на Bikes
, у которого нет свойства ac_type
.
"type": "query_shard_exception",
"reason": "No mapping found for [bike.ac_type] in order to sort on",
Как получить все три типа документов, но отсортировать их только по полям, отображаемым в одном документе?
Отображение индекса для автомобиля:
{
"car": {
"aliases": {},
"mappings": {
"event": {
"properties": {
"ac_type": {
"type": "long"
}
}
}
},
"settings": {
"index": {
"creation_date": "1549617583913",
"number_of_shards": "5",
"number_of_replicas": "1",
"uuid": "cuwdmQbBTLeaSpkvzW4kPw",
"version": {
"created": "6030299"
},
"provided_name": "car"
}
}
}
}