Я новичок в Elastic Ecosystem, поэтому я не знаю, как на самом деле искать мою проблему. Так как я более осведомлен о SQL, я попытаюсь объяснить, используя это.
У меня есть следующееМодель моего индекса
public class ElasticLogModel
{
//public Guid Id { get; set; }
public DateTime Datetime { get; set; }
public int Id1 { get; set; }
public int Id2 { get; set; }
public int Id3 { get; set; }
public int CategoryId { get; set; }
public string CategoryName { get; set; }
public int Counter1 { get; set; }
public int Counter2 { get; set; }
}
И полученный список, который я хочу получить в итоге
public class POCO
{
public DateTime Datetime { get; set; }
public int Id1 { get; set; }
public int Id2 { get; set; }
public int Id3 { get; set; }
public string TopCategoryOfTheDay { get; set; }
public int TotalCounter1OfTheDay { get; set; }
public int TotalCounter2OfTheDay { get; set; }
public List<ElasticLogModel> LogModelsOfTheDay
}
Самое простое решение, которое я думаю, - использовать Linq после получения всехстроки, которые меня интересуют, но мне интересно, можно ли этого добиться, отложив обработку до Elastic
Id1, Id2, Id3 - мой сложный ключ.Я просматриваю Группу By для объекта DateTime, удаляющего часть времени, и мне нужно найти TopCategory дня и сумму Counter1 и Counter 2 для дня.Высшая категория - та, у которой самый высокий Counter1 + Counter2.Каждый день может иметь до 10000 записей для каждой (Id1, Id2, Id3), и производительность является хорошим дополнительным бонусом, если я могу достичь этого без необходимости повторять каждую запись.
Надеюсь, мне удалось передать то, чего я пытаюсь достичь.