diff --git a/src/Aggregation/SamplerAggregation.php b/src/Aggregation/SamplerAggregation.php
new file mode 100644
index 0000000000000000000000000000000000000000..64fd1826fee17d8c6752d0e5aefab81c103c907a
--- /dev/null
+++ b/src/Aggregation/SamplerAggregation.php
@@ -0,0 +1,87 @@
+<?php
+
+/*
+ * This file is part of the ONGR package.
+ *
+ * (c) NFQ Technologies UAB <info@nfq.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace ONGR\ElasticsearchDSL\Aggregation;
+
+use ONGR\ElasticsearchDSL\Aggregation\Type\BucketingTrait;
+
+/**
+ * Class representing geo bounds aggregation.
+ *
+ * @link https://www.elastic.co/guide/en/elasticsearch/reference/2.3/search-aggregations-bucket-sampler-aggregation.html
+ */
+class SamplerAggregation extends AbstractAggregation
+{
+    use BucketingTrait;
+
+    /**
+     * Defines how many results will be received from each shard
+     * @param string $shardSize
+     */
+    private $shardSize;
+
+    /**
+     * Inner aggregations container init.
+     *
+     * @param string $name
+     * @param string $field
+     * @param int    $shardSize
+     */
+    public function __construct(
+        $name,
+        $field = null,
+        $shardSize = null
+    ) {
+        parent::__construct($name);
+
+        $this->setField($field);
+        $this->setShardSize($shardSize);
+    }
+
+    /**
+     * @return int
+     */
+    public function getShardSize()
+    {
+        return $this->shardSize;
+    }
+
+    /**
+     * @param int $shardSize
+     */
+    public function setShardSize($shardSize)
+    {
+        $this->shardSize = $shardSize;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getType()
+    {
+        return 'sampler';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getArray()
+    {
+        $out = array_filter(
+            [
+                'field' => $this->getField(),
+                'shard_size' => $this->getShardSize(),
+            ]
+        );
+
+        return $out;
+    }
+}