Получить эластичные документы, которые имеют не более определенного количества детей - PullRequest
0 голосов
/ 15 мая 2019

Этот NEST-запрос выбирает документы без дочерних элементов:

.Bool(b => b
    .MustNot(q => q
        .HasChild<SolutionElasticModel>(c => c
            .Query(cq => cq
                .MatchAll()))));

Каким будет запрос NEST, в котором выбираются документы, у которых меньше детей (включая детей вообще), чем определенное число?

1 Ответ

0 голосов
/ 15 мая 2019

Я бы пошел с индексированием количества дочерних элементов в самом документе:

public class Document
{
    public int Id {get;set;}
    public int NestedDocsCount => NestedDocs?.Count;
    public List<NestedDoc> NestedDocs {get;set;}
}

, а затем использовал бы обычный запрос диапазона контексте фильтра ):

{
    "range": {
        "nestedDocsCount": {
            "gte": 10,
            "lte": 20
        }
    }
}
...