/** * {@inheritdoc} */ public function modifySearch(Search $search, FilterState $state = null, SearchRequest $request = null) { if ($state && $state->isActive()) { $filter = new RangeFilter($this->getField(), $state->getValue()); $search->addPostFilter($filter); } }
/** * {@inheritdoc} */ public function modifySearch(Search $search, FilterState $state = null, SearchRequest $request = null) { if ($state && $state->isActive()) { $search->setFrom($this->countPerPage * ($state->getValue() - 1)); } $search->setSize($this->countPerPage); }
/** * {@inheritdoc} */ public function modifySearch(Search $search, FilterState $state = null, SearchRequest $request = null) { if ($state && $state->isActive()) { if (strpos($this->getField(), ',') !== false) { $subQuery = new BoolQuery(); foreach (explode(',', $this->getField()) as $field) { $subQuery->add(new FuzzyQuery($field, $state->getValue(), $this->getParameters()), 'should'); } $search->addQuery($subQuery, 'must'); } else { $search->addQuery(new FuzzyQuery($this->getField(), $state->getValue(), $this->getParameters()), 'must'); } } }
/** * {@inheritdoc} */ public function modifySearch(Search $search, FilterState $state = null, SearchRequest $request = null) { if ($state && $state->isActive()) { $stateValue = $state->getValue(); if (!empty($this->choices[$stateValue]['fields'])) { foreach ($this->choices[$stateValue]['fields'] as $sortField) { $search->addSort(new EsSort($sortField['field'], $sortField['order'], null, $sortField['mode'])); } } else { $sortField = $this->choices[$stateValue]; $search->addSort(new EsSort($sortField['field'], $sortField['order'], null, $sortField['mode'])); } } else { foreach ($this->choices as $choice) { if ($choice['default']) { $search->addSort(new EsSort($choice['field'], $choice['order'])); break; } } } }
/** * {@inheritdoc} */ public function modifySearch(Search $search, FilterState $state = null, SearchRequest $request = null) { if ($state && $state->isActive()) { $search->addPostFilter(new TermsFilter($this->getField(), $state->getValue(), ['execution' => 'and']), 'must_not'); } }