RavenDB 4+ постраничный запрос с различными полями - PullRequest
1 голос
/ 10 июня 2019

У меня есть и клиент, и сервер в версии 4.2.0.

Мой документ "Продукт" выглядит примерно так:

{
    "Id": 2
    "AggregatedId": 1,
    // Other fields for filters
}

Где агрегированный идентификатор - это поле, в котором яЯ выполняю отчетливо: я хочу получить выгруженный distinc AggregatedId, соответствующий определенным условиям.

Я использую индекс NOT индекс разветвления, это индекс карты нормалей с единственнымиметь характеристику:

Store("AggregatedId", FieldStorage.Yes);

и, как объяснено в документации Raven , до тех пор, пока не будет сохранено поле, к которому я применяю отчет, я должен иметь возможность выполнять нумерацию страниц без использованияинформация SkippedResults.

Я могу запросить первую страницу без проблем, но когда я запрашиваю вторую и верхнюю страницы, я начинаю замечать, что полученные результаты включают в себя определенные результаты, которые уже были на первойстр.Кроме того, количество результатов не является правильным, я получаю больше строк, чем ожидалось (например, 32 элемента, соответствующих фильтру, разбито на страницы 25, тем не менее, я получаю 25 элементов на первой И второй странице ...).

Запросы, которые я строю, примерно такие:

var res = session.Advanced.DocumentQuery<Products_ByIndex.ReduceResult, Products_ByIndex>()
                    .WhereEquals("CategoryId", 1)
                    .WhereEquals("BrandId", 478)
                    .OrderBy("AggregatedId")
                    .Statistics(out QueryStatistics stats)
                    .Skip(25)
                    .Take(25)
                    .SelectFields<Products_ByIndex.ReduceResult>("AggregatedId").Distinct()
                    .ToList();

Я что-то упустил?

...