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-catalog-search
Model
Search
QueryChecker
FullTextSearchCheck.php
Go to the documentation of this file.
1
<?php
7
namespace
Magento\CatalogSearch\Model\Search\QueryChecker
;
8
9
use
Magento\Framework\Search\Request\QueryInterface
;
10
use
Magento\Framework\Search\Request\Query\BoolExpression
;
11
use
Magento\Framework\Search\Request\Query\Filter
;
12
19
class
FullTextSearchCheck
20
{
34
public
function
isRequiredForQuery
(
QueryInterface
$query
)
35
{
36
return
$this->processQuery(
$query
);
37
}
38
44
private
function
processQuery(
QueryInterface
$query
)
45
{
46
switch
(
$query
->getType()) {
47
case
QueryInterface::TYPE_MATCH
:
48
return
true
;
49
break
;
50
51
case
QueryInterface::TYPE_BOOL
:
52
return
$this->processBoolQuery(
$query
);
53
break
;
54
55
case
QueryInterface::TYPE_FILTER
:
56
return
$this->processFilterQuery(
$query
);
57
break
;
58
59
default
:
60
throw
new \InvalidArgumentException(sprintf(
'Unknown query type \'%s\''
,
$query
->getType()));
61
}
62
}
63
69
private
function
processBoolQuery(BoolExpression
$query
)
70
{
71
foreach
(
$query
->getShould() as $shouldQuery) {
72
if
($this->processQuery($shouldQuery)) {
73
return
true
;
74
}
75
}
76
77
foreach
(
$query
->getMust() as $mustQuery) {
78
if
($this->processQuery($mustQuery)) {
79
return
true
;
80
}
81
}
82
83
foreach
(
$query
->getMustNot() as $mustNotQuery) {
84
if
($this->processQuery($mustNotQuery)) {
85
return
true
;
86
}
87
}
88
89
return
false
;
90
}
91
97
private
function
processFilterQuery(Filter
$query
)
98
{
99
switch
(
$query
->getReferenceType()) {
100
case
Filter::REFERENCE_QUERY
:
101
return
$this->processQuery(
$query
->getReference());
102
break
;
103
104
case
Filter::REFERENCE_FILTER
:
105
return
false
;
106
break
;
107
108
default
:
109
throw
new \InvalidArgumentException(
110
sprintf(
111
'Unknown reference type \'%s\''
,
112
$query
->getReferenceType()
113
)
114
);
115
}
116
}
117
}
Magento\Framework\Search\Request\QueryInterface\TYPE_BOOL
const TYPE_BOOL
Definition:
QueryInterface.php:21
Magento\Framework\Search\Request\QueryInterface
Definition:
QueryInterface.php:14
Magento\Framework\Search\Request\Query\Filter\REFERENCE_FILTER
const REFERENCE_FILTER
Definition:
Filter.php:22
Magento\Framework\Search\Request\Query\Filter
Definition:
Filter.php:15
Magento\Framework\Search\Request\QueryInterface\TYPE_FILTER
const TYPE_FILTER
Definition:
QueryInterface.php:23
$query
$query
Definition:
popular_query.php:9
Magento\CatalogSearch\Model\Search\QueryChecker
Definition:
FullTextSearchCheck.php:7
Magento\CatalogSearch\Model\Search\QueryChecker\FullTextSearchCheck
Definition:
FullTextSearchCheck.php:19
Magento\Framework\Search\Request\Query\Filter\REFERENCE_QUERY
const REFERENCE_QUERY
Definition:
Filter.php:20
Magento\Framework\Search\Request\Query\BoolExpression
Definition:
BoolExpression.php:15
Magento\CatalogSearch\Model\Search\QueryChecker\FullTextSearchCheck\isRequiredForQuery
isRequiredForQuery(QueryInterface $query)
Definition:
FullTextSearchCheck.php:34
Magento\Framework\Search\Request\QueryInterface\TYPE_MATCH
const TYPE_MATCH
Definition:
QueryInterface.php:19