Hoje, há muito pouca cobertura de teste de unidade para agregações de bucket e métricas. Este meta problema tem como objetivo melhorar isso significativamente. Para cada agregação, devemos adicionar mais testes de unidade para o agregador (como ele interage com o índice Lucene por meio de org.apache.lucene.search.Collector
que cada agregação implementa), a lógica de redução e a serialização dos resultados da agregação.
Devemos adicionar testes de unidade para as seguintes implementações de Aggregator
:
ParentToChildrenAggregator
@cbuescher # 23305FilterAggregator
@ colings86 # 23826FiltersAggregator
@jimczi # 22678GeoHashGridAggregator
@martijnvg # 23417GlobalAggregator
@ nik9000 # DateHistogramAggregator
@tlrx # 22714HistogramAggregator
@jpountz # 22961MissingAggregator
@jimczi # 23895NestedAggregator
@polyfractalReverseNestedAggregator
@cbuescherRangeAggregator
(também teste com DateRangeAggregationBuilder
e GeoDistanceAggregationBuilder
) @tlrx # 24569BinaryRangeAggregator
(também teste com IpRangeAggregationBuilder
) @jimczi # 23255DiversifiedBytesHashSamplerAggregator
, DiversifiedMapSamplerAggregator
, DiversifiedNumericSamplerAggregator
e DiversifiedOrdinalsSamplerAggregator
. @martijnvg # 23511SamplerAggregator
@ nik9000 # 23243GlobalOrdinalsSignificantTermsAggregator
, GlobalOrdinalsSignificantTermsAggregator.WithHash
, SignificantLongTermsAggregator
e SignificantStringTermsAggregator
. @markharwood # 24904DoubleTermsAggregator
, GlobalOrdinalsStringTermsAggregator. LowCardinality
, GlobalOrdinalsStringTermsAggregator. WithHash
, LongTermsAggregator
e StringTermsAggregator
. @martijnvg # 24949BestBucketsDeferringCollector
@MaineC # 23511BestDocsDeferringCollector
@polyfractal # 23511AvgAggregator
@cbuescher # 23000CardinalityAggregator
@ colings86 # 23826GeoBoundsAggregator
@jimczi # 23259GeoCentroidAggregator
@martijnvg # 24111MaxAggregator
@ nik9000 # MinAggregator
[ MvG ] # 22279TDigestPercentilesAggregator
e HDRPercentilesAggregator
@tlrx # 24245TDigestPercentileRanksAggregator
e HDRPercentileRanksAggregator
. @jpountz # 23240ScriptedMetricAggregator
@cbuescher # 23404StatsAggregator
@jimcziExtendedStatsAggregator
@jimcziSumAggregator
@martijnvg # TopHitsAggregator
@ nik9000 # 22754ValueCountAggregator
@tlrx # 22741MatrixStatsAggregator
@martijnvg # 24837Devemos também adicionar testes para as seguintes implementações InternalAggregation
:
(para testar a redução e a lógica de serialização de resultados)
InternalChildren
@cbuescher # 23261InternalFilter
@ colings86 # 23388InternalFilters
@jimczi # 22678InternalGeoHashGrid
@martijnvg # 23417InternalGlobal
@ nik9000 # 23388InternalHistogram
@jpountz # 22961InternalDateHistogram
@tlrx # InternalMissing
@MaineC # 23388InternalNested
@polyfractal # 23388InternalReverseNested
@cbuescher # 23388InternalRange
, InternalDateRange
, InternalGeoDistance
. @tlrx # 24569InternalBinaryRange
@jimczi # 23259InternalSampler
@martijnvg edada2581e75400da9fac82bdfbc7ec1f02ef0d8SignificantLongTerms
e SignificantStringTerms
. @tlrx # 23428DoubleTerms
, LongTerms
, StringTerms
e UnmappedTerms
. @jpountz # 23149InternalAvg
@cbuescher # 23000InternalCardinality
@ colings86 # 23826InternalGeoBounds
@jimczi # 23259InternalGeoCentroid
@martijnvg # 24176InternalMax
@ nik9000 # InternalMin
@ colings86 + @ nik9000 # InternalTDigestPercentiles
(# 24090) e InternalHDRPercentiles
(# 24157) @tlrxInternalTDigestPercentileRanks
e InternalHDRPercentileRanks
. @jpountz # 23240InternalScriptedMetric
@cbuescher # 23330InternalStats
@jimcziInternalExtendedStats
@jimcziInternalSum
@martijnvg # InternalTopHits
@ nik9000InternalValueCount
@tlrx # 22741InternalMatrixStats
@martijnvg # 24559Posso ter esquecido algumas aulas, então atualize este problema se for o caso :)
Listei as implementações InternalAggregation
separadamente das implementações Aggregator
pois os testes de unidade para cada uma podem ser escritos em paralelo por desenvolvedores diferentes. No entanto, acho que para as agregações menos complexas, os testes de unidade para as implementações InternalAggregation
e Aggregator
podem ser adicionados no mesmo PR.
Acho que pelo menos os testes de unidade devem ser adicionados ao branch master. O backporting para o ramo 5.x é o melhor esforço e só deve ser considerado se for mais fácil.
Sugiro que trabalhemos da seguinte maneira para evitar fazer duas vezes o trabalho acidentalmente:
Observe que as agregações são testadas, no entanto, devido a como antes do código ser estruturado, o teste de unidade era realmente difícil.
Alguém se importaria se eu trabalhasse em algo para todas as subclasses ou InternalSingleBucketAggregation
? Eu seria capaz de clicar em várias caixas de seleção ...
Alguém se importaria se eu trabalhasse em algo para todas as subclasses ou InternalSingleBucketAggregation? Eu seria capaz de clicar em várias caixas de seleção ...
Eu fundi # 23388.
Todas as tarefas para este tíquete foram concluídas 🎉
Comentários muito úteis
Todas as tarefas para este tíquete foram concluídas 🎉