ArraysAggregation

问题描述 投票:0回答:2

使用存储字符串列表的索引字段有问题

[“” abc_def_fgh“,” abc_def_fgh“,” 123_345_456“]

我正在尝试使用TermsAggregation获取

“ abc_def_fgh”(2)“ 123_345_456”(1)

但是无法使其正常工作,因为它会得出每个术语(abc(2),def(2)等)的计数

任何想法?

非常感谢

elasticsearch nest elasticsearch-aggregation
2个回答
0
投票

尝试类似的东西>>

var result = await client.SearchAsync<Document>(s => s
    .Size(0)
    .Aggregations(a => a
        .Terms("tags", t => t.Field(f => f.Tags.Suffix("keyword")))));

foreach (var bucket in result.Aggregations.Terms("tags").Buckets)
{
    System.Console.WriteLine($"Tag {bucket.Key}, doc count: {bucket.DocCount}");
}

public class Document
{
    public string Id { get; set; }
    public string[] Tags { get; set; } = { };
}

0
投票

这听起来像是映射问题。您需要确保使用的是keyword,而不是text。您不希望在使用聚合时对字段进行分析。

© www.soinside.com 2019 - 2024. All rights reserved.