From 4b0b7c1b31a5a05a5947deb70441acd604bae055 Mon Sep 17 00:00:00 2001 From: Pierre Gauthier Date: Fri, 26 Nov 2021 11:55:14 +0100 Subject: [PATCH] [Term Recommender] #ESP-306 Add min_doc_count in term aggregation --- .../Request/Aggregation/Builder/Term.php | 3 +++ .../Request/Aggregation/Bucket/Term.php | 20 ++++++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/module-elasticsuite-core/Search/Adapter/Elasticsuite/Request/Aggregation/Builder/Term.php b/src/module-elasticsuite-core/Search/Adapter/Elasticsuite/Request/Aggregation/Builder/Term.php index 5ab0bee73..50f419190 100644 --- a/src/module-elasticsuite-core/Search/Adapter/Elasticsuite/Request/Aggregation/Builder/Term.php +++ b/src/module-elasticsuite-core/Search/Adapter/Elasticsuite/Request/Aggregation/Builder/Term.php @@ -59,6 +59,9 @@ public function buildBucket(BucketInterface $bucket) if (!empty($bucket->getExclude())) { $aggregation['terms']['exclude'] = $bucket->getExclude(); } + if ($bucket->getMinDocCount() !== null) { + $aggregation['terms']['min_doc_count'] = $bucket->getMinDocCount(); + } return $aggregation; } diff --git a/src/module-elasticsuite-core/Search/Request/Aggregation/Bucket/Term.php b/src/module-elasticsuite-core/Search/Request/Aggregation/Bucket/Term.php index 228ac5101..26a8a2fad 100644 --- a/src/module-elasticsuite-core/Search/Request/Aggregation/Bucket/Term.php +++ b/src/module-elasticsuite-core/Search/Request/Aggregation/Bucket/Term.php @@ -48,6 +48,11 @@ class Term extends AbstractBucket */ private $exclude; + /** + * @var int + */ + private $minDocCount; + /** * Constructor. * @@ -65,6 +70,7 @@ class Term extends AbstractBucket * @param string $sortOrder Bucket sort order. * @param array $include Include bucket filter. * @param array $exclude Exclude bucket filter. + * @param int $minDocCount Min doc count bucket filter. */ public function __construct( $name, @@ -78,7 +84,8 @@ public function __construct( $size = 0, $sortOrder = BucketInterface::SORT_ORDER_COUNT, $include = [], - $exclude = [] + $exclude = [], + $minDocCount = null ) { parent::__construct($name, $field, $metrics, $childBuckets, $pipelines, $nestedPath, $filter, $nestedFilter); @@ -86,6 +93,7 @@ public function __construct( $this->sortOrder = $sortOrder; $this->include = $include; $this->exclude = $exclude; + $this->minDocCount = $minDocCount; } /** @@ -135,4 +143,14 @@ public function getExclude() { return $this->exclude; } + + /** + * Bucket min doc count filter. + * + * @return int + */ + public function getMinDocCount() + { + return $this->minDocCount; + } }