Magento Extensions Rating 2024
EXTENSIONS BY CATEGORY
B2B (Business-To-Business)
Blog
Customer
ERP (Enterprise Resource Planning)
Mega Menu
One Step Checkout
Order
POS (Point Of Sale)
Search
Shopping Cart
Sitemap
SEO
Social
Stock & Inventory Management
EXTENSIONS BY DEVELOPER
aheadWorks
Amasty
Boost My Shop
BSS Commerce
Magestore
MageWorx
Mirasvit
Templates Master
Wyomind
XTENTO
Magento 2 Documentation
Magento 2 Documentation
2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
vendor
magento
module-elasticsearch
SearchAdapter
Query
Builder
Aggregation.php
Go to the documentation of this file.
1
<?php
6
namespace
Magento\Elasticsearch\SearchAdapter\Query\Builder
;
7
8
use
Magento\Framework\Search\Request\BucketInterface
;
9
use
Magento\Framework\Search\RequestInterface
;
10
use
Magento\Elasticsearch\Model\Adapter\FieldMapperInterface
;
11
16
class
Aggregation
17
{
24
private
static
$maxTermBacketSize = 500;
25
30
protected
$fieldMapper
;
31
35
public
function
__construct
(
36
FieldMapperInterface
$fieldMapper
37
) {
38
$this->fieldMapper =
$fieldMapper
;
39
}
40
49
public
function
build
(
50
RequestInterface
$request
,
51
array $searchQuery
52
) {
53
$buckets =
$request
->getAggregation();
54
foreach
($buckets as $bucket) {
55
$searchQuery = $this->
buildBucket
($searchQuery, $bucket);
56
}
57
return
$searchQuery;
58
}
59
68
protected
function
buildBucket
(
69
array $searchQuery,
70
BucketInterface
$bucket
71
) {
72
$field = $this->fieldMapper->getFieldName($bucket->
getField
());
73
switch
($bucket->
getType
()) {
74
case
BucketInterface::TYPE_TERM:
75
$searchQuery[
'body'
][
'aggregations'
][$bucket->
getName
()]= [
76
'terms'
=> [
77
'field'
=> $field,
78
'size'
=> self::$maxTermBacketSize,
79
],
80
];
81
break
;
82
case
BucketInterface::TYPE_DYNAMIC:
83
$searchQuery[
'body'
][
'aggregations'
][$bucket->
getName
()]= [
84
'extended_stats'
=> [
85
'field'
=> $field,
86
],
87
];
88
break
;
89
}
90
return
$searchQuery;
91
}
92
}
Magento\Elasticsearch\SearchAdapter\Query\Builder\Aggregation
Definition:
Aggregation.php:16
Magento\Elasticsearch\SearchAdapter\Query\Builder
Definition:
Aggregation.php:6
Magento\Elasticsearch\SearchAdapter\Query\Builder\Aggregation\build
build(RequestInterface $request, array $searchQuery)
Definition:
Aggregation.php:49
Magento\Elasticsearch\SearchAdapter\Query\Builder\Aggregation\$fieldMapper
$fieldMapper
Definition:
Aggregation.php:30
Magento\Elasticsearch\SearchAdapter\Query\Builder\Aggregation\buildBucket
buildBucket(array $searchQuery, BucketInterface $bucket)
Definition:
Aggregation.php:68
Magento\Framework\Search\Request\BucketInterface
Definition:
BucketInterface.php:14
Magento\Elasticsearch\Model\Adapter\FieldMapperInterface
Definition:
FieldMapperInterface.php:12
Magento\Elasticsearch\SearchAdapter\Query\Builder\Aggregation\__construct
__construct(FieldMapperInterface $fieldMapper)
Definition:
Aggregation.php:35
$request
$request
Definition:
quote_with_configurable_product_last_variation.php:22
Magento\Framework\Search\Request\BucketInterface\getName
getName()
Magento\Framework\Search\Request\BucketInterface\getField
getField()
Magento\Framework\Search\Request\BucketInterface\getType
getType()
Magento\Framework\Search\RequestInterface
Definition:
RequestInterface.php:18