Как использовать процентный показатель для существенных терминов агрегации в Nest - PullRequest
0 голосов
/ 08 апреля 2020

Я пытаюсь воссоздать следующую агрегацию в Nest

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

Я не могу понять, что означает go в выражении функции для 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'. 

Я также попытался null и new PercentageScoreHeuristicDescriptor(), но безуспешно .

1 Ответ

0 голосов
/ 09 апреля 2020

Как уже упоминалось в комментариях, это ошибка, и над ней исправляется.

Для решения этой проблемы, пока я не смогу использовать фиксированную версию 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)
...