예제 #1
0
 /**
  * @group unit
  * @expectedException \Elastica\Exception\InvalidException
  */
 public function testAddShouldInvalidException()
 {
     $filter = new BoolFilter();
     $filter->addShould('fail!');
 }
예제 #2
0
 /**
  * @param $appliedFilters
  * @param $elasticaQuery
  *
  * @return array
  */
 public function applyFilterToElasticaQuery($appliedFilters, $elasticaQuery)
 {
     $rangeFilters = new BoolOr();
     $boolFilter = new BoolFilter();
     $filters = [];
     $termFilters = [];
     foreach ($appliedFilters as $facet) {
         if (strpos($facet[key($facet)], '|') !== false) {
             $filters[key($facet)][] = ['range' => explode('|', $facet[key($facet)])];
         } else {
             $filters[key($facet)][] = $facet[key($facet)];
         }
     }
     foreach ($filters as $name => $value) {
         if (is_array($value[0])) {
             foreach ($value as $range) {
                 $rangeFilter = new FilterRange();
                 $rangeFilter->addField($name, ['gte' => $range['range'][0], 'lte' => $range['range'][1]]);
                 $rangeFilters->addFilter($rangeFilter);
             }
             $boolFilter->addShould($rangeFilters);
         } else {
             $termFilters = new FilterTerms();
             $termFilters->setTerms($name, $value);
             $boolFilter->addShould($termFilters);
         }
     }
     $elasticaQuery->setFilter($boolFilter);
     return [$termFilters, $rangeFilters, $boolFilter, $filters];
 }