Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
FullTextSearchCheck.php
Go to the documentation of this file.
1 <?php
8 
12 
20 {
35  {
36  return $this->processQuery($query);
37  }
38 
44  private function processQuery(QueryInterface $query)
45  {
46  switch ($query->getType()) {
48  return true;
49  break;
50 
52  return $this->processBoolQuery($query);
53  break;
54 
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()) {
101  return $this->processQuery($query->getReference());
102  break;
103 
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 }