wikimedia/mediawiki-extensions-CirrusSearch

View on GitHub
includes/Query/QueryBuilderTraits.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

namespace CirrusSearch\Query;

use CirrusSearch\CirrusSearch;
use CirrusSearch\Search\SearchContext;

/**
 * Various utility functions that can be shared across cirrus query builders
 */
trait QueryBuilderTraits {
    /**
     * Short circuits query execution with zero results when
     * the search is longer than possible. Query builders may
     * short circuit themselves based on the return value.
     *
     * @param string $term Term being searched for
     * @param SearchContext $searchContext Context to short circuit
     * @return bool True when $term is an acceptable length.
     */
    public function checkTitleSearchRequestLength( $term, SearchContext $searchContext ) {
        $requestLength = mb_strlen( $term );
        if ( $requestLength > CirrusSearch::MAX_TITLE_SEARCH ) {
            $searchContext->setResultsPossible( false );
            $searchContext->addWarning(
                'cirrussearch-query-too-long',
                $requestLength,
                CirrusSearch::MAX_TITLE_SEARCH
            );
            return false;
        } else {
            return true;
        }
    }
}