Escaping of search terms is handled through use of a PDO prepared statement with named
placeholders; search terms are inserted indirectly by binding them to the placeholders.
Search terms must NEVER be inserted into a query directly (creates an SQL injection
vulnerability), otherwise do us all a favour and go shoot yourself now.

Search terms have entity encoding (htmlspecialchars) applied on the teaser and description
fields (only) to ensure consistency with the entity encoding treatment that these HTML fields
have been subjected to, otherwise searches involving entities will not return results.

Returns

array|booleanArray of content objects if results found, false if no results or on failure.

Usually this will be the number of objects you want to display in a single page view, as
it is related to pagination, for example a search may return 50 results but you only want
to display 10 per page.

Parameters

As some content fields require entities to be encoded (the HTML fields, ie. teaser,
description and icon) and others don't, both encoded and unencoded copies of the terms are
required for a comprehensive database search. Terms that do not meet the minimum length
preference requirement are discarded.

Note that search operator MUST be set before the search terms are set, otherwise the default
AND operator will be used.