索引字段有问题,该索引字段以以下方式存储字符串列表
[“ abc_def_fgh”,“ abc_def_fgh”,“ 123_345_456”]
我正在尝试使用TermsAggregation获取
“ abc_def_fgh”(2) “ 123_345_456”(1)
但是无法使其正常工作,因为它会得出每个术语(abc(2),def(2)等)的计数
有什么主意吗?
非常感谢
答案 0 :(得分:1)
尝试类似
setCurrentCell
对于我索引中的这三个文档
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; } = { };
}
它将输出
new Document {Id = "1", Tags = new[]{"a","b"}
new Document {Id = "2", Tags = new[]{"a"}
new Document {Id = "3", Tags = new[]{"c"}
希望有帮助。
答案 1 :(得分:0)
这听起来像是映射问题。您需要确保使用的是keyword
而不是text
。您不希望在使用聚合时对字段进行分析。