Я пытаюсь свернуть документы с указанным ключом, упорядоченные по дате. Ключ не всегда заполняется. В случаях, когда ключ равен нулю, elasti c, кажется, сворачивает все документы, в которых этот ключ не заполнен, и возвращает самый новый. Я хотел бы свернуть только документы, в которых поле было заполнено, и вернуть документ, если ключ отсутствует. Возможно ли это?
Вот запрос сворачивания, который я сейчас использую:
"collapse": {
"field": "COLLAPSE_KEY",
"inner_hits": {
"name": "collapse_inner_hit",
"ignore_unmapped": false,
"from": 0,
"size": 1,
"version": false,
"seq_no_primary_term": false,
"explain": false,
"track_scores": false,
"sort": [
{
"DATE_FIELD": {
"order": "desc"
}
}
]
}
и в java:
CollapseBuilder collapseBuilder = new CollapseBuilder(COLLAPSE_KEY);
InnerHitBuilder collapseHitBuilder = new InnerHitBuilder("collapse_inner_hit");
collapseHitBuilder.setSize(1);
collapseHitBuilder.addSort(new FieldSortBuilder(DATE_FIELD).order(SortOrder.DESC));
collapseBuilder.setInnerHits(collapseHitBuilder);
searchSourceBuilder.collapse(collapseBuilder);