我正在尝试在Nest中重新创建以下聚合

"aggs": {
    "related_organisations": {
        "significant_terms": {
             "field": "organisations.keyword",
                 "percentage": {},
                 "min_doc_count": 5
                 "size": 10
             }
         }
     }
}

我不知道PercentageScore的函数表达式意味着什么
.Aggregations(a => a
    .SignificantTerms("related_organisations", sigTerms => sigTerms
        .Field("organisations.keyword")
        .Size(10)
        .PercentageScore(p => [[what goes here??]])
        .MinimumDocumentCount(5)

我可以通过执行p => p使其进行编译,但它无法正确构建查询并引发异常
System.TypeLoadException: GenericArguments[0], 'Nest.PercentageScoreHeuristic', on 'Nest.ReadAsFormatter`2[TRead,T]' violates the constraint of type parameter 'TRead'.

我也尝试过nullnew PercentageScoreHeuristicDescriptor(),但没有运气。

最佳答案

如评论中所提到的,这是一个错误,并且正在修复。

为了解决这个问题,直到我能够使用固定版本的Nest,我使用了脚本分数,并在其中复制了百分比分数:

.Aggregations(a => a
    .SignificantTerms("related_organisations", sigTerms => sigTerms
        .Field("organisations.keyword")
        .Size(10)
        .Script(s => s.Script("params._subset_freq/params._superset_freq"))
        .MinimumDocumentCount(5)

10-01 17:21
查看更多