MediaWiki  REL1_24
SearchEngine Class Reference

Contain a class for special pages. More...

Inheritance diagram for SearchEngine:
Collaboration diagram for SearchEngine:

List of all members.

Public Member Functions

 delete ($id, $title)
 Delete an indexed page Title should be pre-processed.
 getTextFromContent (Title $t, Content $c=null)
 Get the raw text for updating the index from a content object Nicer search backends could possibly do something cooler than just returning raw text.
 normalizeText ($string)
 When overridden in derived class, performs database-specific conversions on text to be used for searching or updating search index.
 replacePrefixes ($query)
 Parse some common prefixes: all (search everything) or namespace names.
 searchText ($term)
 Perform a full text search query and return a result set.
 searchTitle ($term)
 Perform a title-only search query and return a result set.
 setFeatureData ($feature, $data)
 Way to pass custom data for engines.
 setLimitOffset ($limit, $offset=0)
 Set the maximum number of results to return and how many to skip before returning the first.
 setNamespaces ($namespaces)
 Set which namespaces the search should include.
 setShowSuggestion ($showSuggestion)
 Set whether the searcher should try to build a suggestion.
 supports ($feature)
 textAlreadyUpdatedForIndex ()
 If an implementation of SearchEngine handles all of its own text processing in getTextFromContent() and doesn't require SearchUpdate::updateText()'s rather silly handling, it should return true here instead.
 transformSearchTerm ($term)
 Transform search term in cases when parts of the query came as different GET params (when supported), e.g.
 update ($id, $title, $text)
 Create or update the search index record for the given page.
 updateTitle ($id, $title)
 Update a search index record's title only.

Static Public Member Functions

static create ($type=null)
 Load up the appropriate search engine class for the currently active database backend, and return a configured instance.
static defaultNamespaces ()
 An array of namespaces indexes to be searched by default.
static getNearMatch ($searchterm)
 If an exact title match can be found, or a very slightly close match, return the title.
static getNearMatchResultSet ($searchterm)
 Do a near match (see SearchEngine::getNearMatch) and wrap it into a SearchResultSet.
static getOpenSearchTemplate ()
 Get OpenSearch suggestion template.
static getSearchTypes ()
 Return the search engines we support.
static legalSearchChars ()
static namespacesAsText ($namespaces)
 Get a list of namespace names useful for showing in tooltips and preferences.
static searchableNamespaces ()
 Make a list of searchable namespaces and their canonical names.
static userHighlightPrefs ()
 Find snippet highlight settings for all users.
static userNamespaces ($user)
 Extract default namespaces to search from the given user's settings, returning a list of index numbers.

Public Attributes

int[] $namespaces = array( NS_MAIN )
 *
string $prefix = ''
 *

Protected Attributes

array $features = array()
 Feature values *.
int $limit = 10
 *
int $offset = 0
 *
array string $searchTerms = array()
 *
bool $showSuggestion = true
 *

Static Private Member Functions

static getNearMatchInternal ($searchterm)
 Really find the title match.

Detailed Description

Contain a class for special pages.

Definition at line 32 of file SearchEngine.php.


Member Function Documentation

static SearchEngine::create ( type = null) [static]

Load up the appropriate search engine class for the currently active database backend, and return a configured instance.

Parameters:
string$typeType of search backend, if not the default
Returns:
SearchEngine

Definition at line 422 of file SearchEngine.php.

Referenced by SearchResult\initText(), and ApiQuerySearch\run().

static SearchEngine::defaultNamespaces ( ) [static]

An array of namespaces indexes to be searched by default.

Returns:
array

Definition at line 390 of file SearchEngine.php.

Referenced by SpecialSearchTest\provideSearchOptionsTests().

SearchEngine::delete ( id,
title 
)

Delete an indexed page Title should be pre-processed.

STUB

Parameters:
int$idPage id that was deleted
string$titleTitle of page that was deleted

Reimplemented in SearchMySQL.

Definition at line 489 of file SearchEngine.php.

static SearchEngine::getNearMatch ( searchterm) [static]

If an exact title match can be found, or a very slightly close match, return the title.

If no match, returns NULL.

Parameters:
string$searchterm
Returns:
Title

Definition at line 130 of file SearchEngine.php.

Referenced by legalSearchChars().

static SearchEngine::getNearMatchInternal ( searchterm) [static, private]

Really find the title match.

Parameters:
string$searchterm
Returns:
null|Title

Definition at line 153 of file SearchEngine.php.

static SearchEngine::getNearMatchResultSet ( searchterm) [static]

Do a near match (see SearchEngine::getNearMatch) and wrap it into a SearchResultSet.

Parameters:
string$searchterm
Returns:
SearchResultSet

Definition at line 144 of file SearchEngine.php.

Referenced by ApiQuerySearch\run().

Get OpenSearch suggestion template.

Returns:
string

Definition at line 498 of file SearchEngine.php.

static SearchEngine::getSearchTypes ( ) [static]

Return the search engines we support.

If only $wgSearchType is set, it'll be an array of just that one item.

Returns:
array

Definition at line 447 of file SearchEngine.php.

References array(), and global.

Referenced by ApiQuerySearch\getAllowedParams(), and ApiQuerySearch\getParamDescription().

SearchEngine::getTextFromContent ( Title t,
Content c = null 
)

Get the raw text for updating the index from a content object Nicer search backends could possibly do something cooler than just returning raw text.

Todo:
This isn't ideal, we'd really like to have content-specific handling here
Parameters:
Title$tTitle we're indexing
Content$cContent of the page to index
Returns:
string

Definition at line 524 of file SearchEngine.php.

static SearchEngine::legalSearchChars ( ) [static]

Reimplemented in SearchOracle, SearchMySQL, and SearchSqlite.

Definition at line 268 of file SearchEngine.php.

References $matches, and getNearMatch().

Referenced by SearchMssql\parseQuery().

static SearchEngine::namespacesAsText ( namespaces) [static]

Get a list of namespace names useful for showing in tooltips and preferences.

Parameters:
array$namespaces
Returns:
array

Definition at line 403 of file SearchEngine.php.

When overridden in derived class, performs database-specific conversions on text to be used for searching or updating search index.

Default implementation does nothing (simply returns $string).

Parameters:
string$stringString to process
Returns:
string

Reimplemented in SearchMySQL.

Definition at line 105 of file SearchEngine.php.

Parse some common prefixes: all (search everything) or namespace names.

Parameters:
string$query
Returns:
string

Definition at line 312 of file SearchEngine.php.

Make a list of searchable namespaces and their canonical names.

Returns:
array

Definition at line 343 of file SearchEngine.php.

Referenced by SpecialSearch\powerSearch(), and SpecialSearch\powerSearchBox().

Perform a full text search query and return a result set.

If title searches are not supported or disabled, return null. STUB

Parameters:
string$termRaw search term
Returns:
SearchResultSet|Status|null

Reimplemented in SearchMySQL, SearchSqlite, SearchOracle, SearchPostgres, and SearchMssql.

Definition at line 55 of file SearchEngine.php.

Perform a title-only search query and return a result set.

If title searches are not supported or disabled, return null. STUB

Parameters:
string$termRaw search term
Returns:
SearchResultSet|null

Reimplemented in SearchMySQL, SearchSqlite, SearchOracle, SearchMssql, and SearchPostgres.

Definition at line 67 of file SearchEngine.php.

SearchEngine::setFeatureData ( feature,
data 
)

Way to pass custom data for engines.

Since:
1.18
Parameters:
string$feature
mixed$data
Returns:
bool

Definition at line 93 of file SearchEngine.php.

SearchEngine::setLimitOffset ( limit,
offset = 0 
)

Set the maximum number of results to return and how many to skip before returning the first.

Parameters:
int$limit
int$offset

Definition at line 279 of file SearchEngine.php.

SearchEngine::setNamespaces ( namespaces)

Set which namespaces the search should include.

Give an array of namespace index numbers.

Parameters:
array$namespaces

Definition at line 290 of file SearchEngine.php.

References $namespaces, and namespaces.

SearchEngine::setShowSuggestion ( showSuggestion)

Set whether the searcher should try to build a suggestion.

Note: some searchers don't support building a suggestion in the first place and others don't respect this flag.

Parameters:
bool$showSuggestionShould the searcher try to build suggestions

Definition at line 301 of file SearchEngine.php.

SearchEngine::supports ( feature)
Since:
1.18
Parameters:
string$feature
Returns:
bool

Reimplemented in SearchMySQL.

Definition at line 76 of file SearchEngine.php.

If an implementation of SearchEngine handles all of its own text processing in getTextFromContent() and doesn't require SearchUpdate::updateText()'s rather silly handling, it should return true here instead.

Returns:
bool

Definition at line 535 of file SearchEngine.php.

Transform search term in cases when parts of the query came as different GET params (when supported), e.g.

for prefix queries: search=test&prefix=Main_Page/Archive -> test prefix:Main Page/Archive

Parameters:
string$term
Returns:
string

Definition at line 119 of file SearchEngine.php.

SearchEngine::update ( id,
title,
text 
)

Create or update the search index record for the given page.

Title and text should be pre-processed. STUB

Parameters:
int$id
string$title
string$text

Reimplemented in SearchMySQL, SearchSqlite, SearchOracle, SearchPostgres, SearchMssql, and MockSearch.

Definition at line 465 of file SearchEngine.php.

SearchEngine::updateTitle ( id,
title 
)

Update a search index record's title only.

Title should be pre-processed. STUB

Parameters:
int$id
string$title

Reimplemented in SearchMySQL, SearchSqlite, SearchOracle, SearchMssql, and SearchPostgres.

Definition at line 477 of file SearchEngine.php.

static SearchEngine::userHighlightPrefs ( ) [static]

Find snippet highlight settings for all users.

Returns:
array Contextlines, contextchars

Definition at line 379 of file SearchEngine.php.

static SearchEngine::userNamespaces ( user) [static]

Extract default namespaces to search from the given user's settings, returning a list of index numbers.

Parameters:
user$user
Returns:
array

Definition at line 363 of file SearchEngine.php.


Member Data Documentation

array SearchEngine::$features = array() [protected]

Feature values *.

Definition at line 45 of file SearchEngine.php.

int SearchEngine::$limit = 10 [protected]

*

Definition at line 37 of file SearchEngine.php.

int SearchEngine::$offset = 0 [protected]

*

Definition at line 39 of file SearchEngine.php.

string SearchEngine::$prefix = ''

*

Definition at line 33 of file SearchEngine.php.

array string SearchEngine::$searchTerms = array() [protected]

*

Definition at line 41 of file SearchEngine.php.

bool SearchEngine::$showSuggestion = true [protected]

*

Definition at line 43 of file SearchEngine.php.


The documentation for this class was generated from the following file: