2 namespace wcf\system\search
;
3 use wcf\system\database\util\PreparedStatementConditionBuilder
;
6 * Default interface for search engines.
8 * @author Alexander Ebert
9 * @copyright 2001-2014 WoltLab GmbH
10 * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
11 * @package com.woltlab.wcf
12 * @subpackage system.search
13 * @category Community Framework
15 interface ISearchEngine
{
17 * Returns the condition builder class name required to provide conditions for getInnerJoin().
21 public function getConditionBuilderClassName();
24 * Returns the inner join query and the condition parameters. This method is allowed to return NULL for both the
25 * 'fulltextCondition' and 'searchIndexCondition' index instead of a PreparedStatementConditionBuilder instance:
28 * 'fulltextCondition' => $fulltextCondition || null,
29 * 'searchIndexCondition' => $searchIndexCondition || null,
33 * @param string $objectTypeName
35 * @param boolean $subjectOnly
36 * @param \wcf\system\database\util\PreparedStatementConditionBuilder $searchIndexCondition
37 * @param string $orderBy
38 * @param integer $limit
41 public function getInnerJoin($objectTypeName, $q, $subjectOnly = false, PreparedStatementConditionBuilder
$searchIndexCondition = null, $orderBy = 'time DESC', $limit = 1000);
44 * Removes engine-specific special characters from a string.
46 * @param string $string
48 public function removeSpecialCharacters($string);
51 * Searches for the given string and returns the data of the found messages.
54 * @param array $objectTypes
55 * @param boolean $subjectOnly
56 * @param \wcf\system\database\util\PreparedStatementConditionBuilder $searchIndexCondition
57 * @param array $additionalConditions
58 * @param string $orderBy
59 * @param integer $limit
62 public function search($q, array $objectTypes, $subjectOnly = false, PreparedStatementConditionBuilder
$searchIndexCondition = null, array $additionalConditions = array(), $orderBy = 'time DESC', $limit = 1000);