private function buildMatchPart($field, FilterState $state)
    {
        if (strpos($field, '>') !== false) {
            list ($path, $field) = explode('>', $field);
        }

        if (strpos($field, '^') !== false) {
            list ($field, $boost) = explode('^', $field);
        }

        $query =  new MatchQuery($field, $state->getValue(), $this->getOptions());
        !isset($boost) ? : $query->addParameter('boost', $boost);

        if (isset($path)) {
            $query = new NestedQuery($path, $query);
        }

        return $query;
    }