C # ElasticSearch NEST, Ошибка приведения составного сценария агрегации - PullRequest
1 голос
/ 23 сентября 2019

Я новичок в ElasticSearch, и это NEST-клиент для C #.Очевидно, min_doc_count для составных агрегаций не реализован, и я должен использовать скрипт в запросе для достижения результата, см .: https://github.com/elastic/elasticsearch/issues/32452#issuecomment-408769861.

Однако, когда я пытаюсь реализовать это в C #, я получаюследующая ошибка:

"Type: class_cast_exception Reason: "Cannot cast from [boolean] to [java.lang.Number].""

Мой код выглядит следующим образом:

ISearchResponse<FooBar> duplicateBucket = _elasticClient.Search<FooBar>(
    s => s
        .Aggregations(a => a
            .Composite("dupe_bucket", c => c
                .Sources(b => b
                    .Terms("foo", x => x
                        .Field("foo"))
                    .Terms("bar", x => x
                         .Field("bar")))
                .Size(1000)
                .Aggregations(e => e
                    .BucketScript("bucket_selector", d => d
                        .BucketsPath(f => f
                            .Add("counter", "_count"))
                        .Script("params.counter > 1"))))));

Если я удаляю второе объединение, вызов будет успешным, поэтому ясно, что я делаю что-то не так в BucketScriptчасть.

Любая помощь будет оценена!

1 Ответ

1 голос
/ 23 сентября 2019

Я думаю, что вы хотите использовать BucketSelector вместо BucketScript

            .Aggregations(e => e
    -->          .BucketSelector("bucket_selector", d => d
                    .BucketsPath(f => f
                        .Add("counter", "_count"))
                    .Script("params.counter > 1"))))));
...