Запрос внутренних записей в ElasticSearch Nest C # - PullRequest
0 голосов
/ 07 марта 2019

У меня есть такая структура:

public class OuterResource
{
    public int Id { get; set; }

    [Nested]
    public List<InnerResource> InnerResources { get; set; }
}

public class InnerResource
{
    public int Id { get; set; }
    public int OuterResourceId { get; set; }
    public int Value { get; set; }
}

Внутренние записи хранятся в виде списков внутри внешних записей. Я хочу запросить внутренние записи, указав указанный идентификатор и значение внешнего ресурса для фильтрации внутренних записей.

Как это сделать в C # Nest? Не могу понять это из документации.

Ответы [ 2 ]

0 голосов
/ 07 марта 2019
.Query<OuterResource>.Nested(n => n
    .Path(p => p.InnerResources)
    .Query(qq => qq
    .Terms(t => t.Fields(fi => fi.InnerResources.First().OuterResourceId ).Terms(value))
    )
)

Должно работать.Обратите внимание, что .First применяется ко всему массиву (= список)

0 голосов
/ 07 марта 2019

Пожалуйста, попробуйте это.

    objforOuterResource.InnerResources.Where(x => x.Id == 5);
...