У меня проблема в запросе Elasticsearch с использованием клиента php. У меня есть документы в моем эластичном поиске, в которых есть поле «Избранное», я хочу получить результаты в том порядке, где «Feautred = 1». Но результаты идут, поскольку это не в отсортированном порядке. Мой запрос выглядит следующим образом:
$params = [
'index'=>'us_data_master',
'body' => [
'from'=>$from,
'size'=>20,
'query' => [
'bool'=>[
'must'=>[
[
'terms' => [
'city_code.keyword' => $citi_arr
]
],
[
'term'=>['state_code.keyword'=>strtoupper($state)]
],
[
'multi_match'=>[
'query'=>'*'.$cate.'*',
'fields'=>['name','contact_no','zip_code','city_code']
]
]
],
'must_not'=>[
'term'=>['contact_no.keyword'=>'0']
]
]
]
]
];
$params['body']['sort']['featured'] = ['order'=>'desc'];
отображение выглядит следующим образом
{
"mapping": {
"_doc": {
"properties": {
"@timestamp": {
"type": "date"
},
"@version": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"address": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"city_code": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"contact_no": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"date_added": {
"type": "date"
},
"date_updated": {
"type": "date"
},
"featured": {
"type": "long"
},
"id": {
"type": "long"
},
"location_id": {
"type": "long"
},
"main_cate": {
"type": "long"
},
"name": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"slug": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"source": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"state_code": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"status": {
"type": "long"
},
"zip_code": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
}
}
что не так?