protected function getExcludeFiltersComponent(SearchQuery $searchQuery)
    {
        $fq = array();
        foreach ($searchQuery->exclude as $field => $values) {
            // Handle namespaced class names
            $field = $this->sanitiseClassName($field);

            $excludeq = [];
            $missing = false;

            foreach ($values as $value) {
                if ($value === SearchQuery::$missing) {
                    $missing = true;
                } elseif ($value === SearchQuery::$present) {
                    $excludeq[] = "{$field}:[* TO *]";
                } elseif ($value instanceof SearchQuery_Range) {
                    $start = $value->start;
                    if ($start === null) {
                        $start = '*';
                    }
                    $end = $value->end;
                    if ($end === null) {
                        $end = '*';
                    }
                    $excludeq[] = "$field:[$start TO $end]";
                } else {
                    $excludeq[] = $field . ':"' . $value . '"';
                }
            }

            $fq[] = ($missing ? "+{$field}:[* TO *] " : '') . '-(' . implode(' ', $excludeq) . ')';
        }
        return $fq;
    }
protected function getExcludeFiltersComponent(SearchQuery $searchQuery)
    {
        $fq = array();
        foreach ($searchQuery->exclude as $field => $values) {
            // Handle namespaced class names
            $field = $this->sanitiseClassName($field);

            $excludeq = [];
            $missing = false;

            foreach ($values as $value) {
                if ($value === SearchQuery::$missing) {
                    $missing = true;
                } elseif ($value === SearchQuery::$present) {
                    $excludeq[] = "{$field}:[* TO *]";
                } elseif ($value instanceof SearchQuery_Range) {
                    $start = $value->start;
                    if ($start === null) {
                        $start = '*';
                    }
                    $end = $value->end;
                    if ($end === null) {
                        $end = '*';
                    }
                    $excludeq[] = "$field:[$start TO $end]";
                } else {
                    $excludeq[] = $field . ':"' . $value . '"';
                }
            }

            $fq[] = ($missing ? "+{$field}:[* TO *] " : '') . '-(' . implode(' ', $excludeq) . ')';
        }
        return $fq;
    }
protected function getExcludeFiltersComponent ( SearchQuery $ searchQuery ) { $ fq = array ( ) ; foreach ( $ searchQuery -> exclude as $ field => $ values ) { // Handle namespaced class names $ field = $ this -> sanitiseClassName ( $ field ) ; $ excludeq = [ ] ; $ missing = false ; foreach ( $ values as $ value ) { if ( $ value === SearchQuery :: $ missing ) { $ missing = true ; } elseif ( $ value === SearchQuery :: $ present ) { $ excludeq [ ] = "{$field}:[* TO *]" ; } elseif ( $ value instanceof SearchQuery_Range ) { $ start = $ value -> start ; if ( $ start === null ) { $ start = '*' ; } $ end = $ value -> end ; if ( $ end === null ) { $ end = '*' ; } $ excludeq [ ] = "$field:[$start TO $end]" ; } else { $ excludeq [ ] = $ field . ':"' . $ value . '"' ; } } $ fq [ ] = ( $ missing ? "+{$field}:[* TO *] " : '' ) . '-(' . implode ( ' ' , $ excludeq ) . ')' ; } return $ fq ; }
Parse all exclude constraints for inclusion in a filter query

@param SearchQuery $searchQuery
@return array List of parsed string values for each exclusion
Parse all exclude constraints for inclusion in a filter query