执行复杂的查询以将索引模型转换为具有聚集的另一个

时间:2019-05-14 06:55:42

标签: c# linq elasticsearch nest

我是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是我的复杂密钥。我正在研究删除时间部分的DateTime对象上的Group By,我必须找到当天的TopCategory以及当天的Counter1和Counter 2的总和。最高类别是Counter1 + Counter2最高的类别。每天每个(Id1,Id2,Id3)最多可以有10000条记录,如果我无需重复每条记录就可以实现这一目标,那么表现出色是一个不错的附加奖励。

我希望我能传达我想要达到的目标。

0 个答案:

没有答案