Я новичок в Elastic Search (1.7). У меня есть индекс ES версий клиента.Упругий поиск Трудный запрос с группировкой
Каждый клиент имеет уникальный идентификатор (client_id).
В индексе может быть множество версий клиента.
Каждая версия клиента имеет уникальный идентификатор (version_id) для клиента.
Индекс данных Пример:
{
“client_id”: "1",
"version_id": "1",
“versionCreationDate”: "2015-11-06T10:02:22.597Z",
“clientName”: “FirstName LastName”
}
…,
{
“client_id”: "1",
"version_id": "n",
“versionCreationDate”: …
“clientName”: “FirstName LastName”
},
{
“client_id”: "2",
"version_id": "1",
“versionCreationDate”: …
“clientName”: “FirstName LastName”
},
…
{
“client_id”: "2",
"version_id": "n",
“versionCreationDate”: …
“clientName”: “FirstName LastName”
},
…
{
“client_id”: "N",
"version_id": "1",
“versionCreationDate”: …
“clientName”: “FirstName LastName”
},
…
{
“client_id”: "N",
"version_id": "n",
“versionCreationDate”: …
“clientName”: “FirstName LastName”
}
Мне нужно найти версии клиента от входных параметров для запроса:
< CLIENTNAME>, < VersionCreationDateMax>.
Версия клиента должна соответствовать < clientName> (с fuzziness = auto). И любая версия должна иметь максимальное значение versionCreationDate для этого клиента, но < = < VersionCreationDateMax>. Таким образом, только одна версия каждого клиента должны быть в результатах поиска (новые, но не более чем < VersionCreationDateMax>)
Пожалуйста, помогите мне найти фильтр/запрос, чтобы сделать это
Похоже, это работает. Brilliant! –
Ницца, рад, что я мог бы помочь! – Val
Val, это работает, но _score только в разделе результатов «хитов». И это == null в разделе «агрегации». Зачем? Как сделать ES для return_score в разделе агрегации? –