聚合

时间:2017-08-25 08:35:50

标签: elasticsearch .net-core nest aggregation

我是弹性新手,我们正在使用NEST(elasticsearch官方dotnet驱动程序)5.5版本,它在查询和过滤器方面运行良好,但是在聚合方面我遇到了一个问题。

我的github中的示例应用here

要求是在包含Persons对象列表的可用索引(People)中获取不同的名字列表(作为示例)。

对象类是这样的:

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

    public string FirstName { get; set; }

    public string LastName { get; set; }

    public List<string> Skills { get; set; }

    public Dictionary<string, string> Others { get; set; }

    public Dictionary<string, object> OthersObject { get; set; }
}

我正在尝试实施“条款聚合”,即使在简单的情况下它也无法运行:(docs available here)

        var result = _client.Search<Person>(s => s
            .Size(0)
            .Aggregations(a => a
                .Terms("firstnames", t => t.Field(f => f.FirstName))
            )
            .Query(q => q
                .MatchAll()
            )
        );

执行查询后,结果状态无效,调试信息中出现以下错误:

错误:

根据POST上的失败低级别调用构建无效的NEST响应:/ people / person / _search 此API调用的审计跟踪:   - BadResponse:Node:http://127.0.0.1:9200/ Took:00:00:00.6674180 ServerError:ServerError:400Type:search_phase_execution_exception原因:“所有分片都失败”

不幸的是,这就是我所犯的错误。任何关于如何进行的想法都是受欢迎的。

0 个答案:

没有答案