я хочу, чтобы сортировать мой результат компаний, основанных на подсчете вложенных (занятость) объекты,Elasticsearch - foselastica Сортировки по целому числу, имеющей странные результаты
я добавил дополнительное поле к лицу компании, которая держит счет, как:
private employeeCount;
getEmployeeCount(){
return count($this->employments);
}
и добавить его в индекс, как:
company:
mappings:
fullname: ~
employeeCount: ~
поле правильно индексироваться и я получаю хиты, как:
"_hit": {
"_index": "search",
"_type": "company",
"_id": "2628",
"_source": {
"fullname": "acme",
"employeeCount": 9,
... },
"sort": [
"9"
]
я добавил вроде как:
$query->addSort(array('employeeCount' => array('order'=>'desc')));
и результат, кажется, отсортирован правильно вниз от "9, 8, 7, 6 ...",
, но по какой-то причине есть некоторые результаты где-то в середине с более высоким employeeCount
, например так:
"_hit": {
"_index": "search",
"_type": "company",
"_id": "2668",
"_source": {
"fullname": "acme2",
"employeeCount": 18,
... },
"sort": [
"18"
]
я ожидал этот результат, чтобы быть на вершине моего первого примера, но это где-то между 2 и 1
так два догадок, он сортирует 0-10 и все больше 10 игнорируется
или там это какая-то ошибка в elasticsearch или foselastica пачке,
Heres результирующий запрос:
search/company/_search (GET) 5.59 ms {"sort":[{"employeeCount":{"order":"desc"}}],"query":{"wildcard":{"fullname":{"value":"**","boost":1}}},"size":"2000","from":0}
кто-нибудь какие-либо идеи?
У меня такая же проблема, вы нашли ответ? – parisssss
unfortunatly i не нашлось решений. Не стесняйтесь просить разработчиков, я не –
Я нашел ответ здесь :) http://stackoverflow.com/questions/25199481/elasticsearch-sorting-integer-desc#answer-25200046 – parisssss