MediaWiki fundraising/REL1_35
SearchSqlite Class Reference

Search engine hook for SQLite. More...

Inheritance diagram for SearchSqlite:
Collaboration diagram for SearchSqlite:

Public Member Functions

 legalSearchChars ( $type=self::CHARS_ALL)
 Get chars legal for search.
 
 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.
 
- Public Member Functions inherited from SearchDatabase
 __construct (ILoadBalancer $lb)
 
 doSearchText ( $term)
 
 doSearchTitle ( $term)
 
- Public Member Functions inherited from SearchEngine
 augmentSearchResults (ISearchResultSet $resultSet)
 Augment search results with extra data.
 
 completionSearch ( $search)
 Perform a completion search.
 
 completionSearchWithVariants ( $search)
 Perform a completion search with variants.
 
 defaultPrefixSearch ( $search)
 Simple prefix search for subpages.
 
 delete ( $id, $title)
 Delete an indexed page Title should be pre-processed.
 
 extractTitles (SearchSuggestionSet $completionResults)
 Extract titles from completion results.
 
 getFeatureData ( $feature)
 Way to retrieve custom data set by setFeatureData or by the engine itself.
 
 getNearMatcher (Config $config)
 Get service class to finding near matches.
 
 getProfiles ( $profileType, User $user=null)
 Get a list of supported profiles.
 
 getSearchIndexFields ()
 Get fields for search index.
 
 getSort ()
 Get the sort direction of the search results.
 
 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.
 
 getValidSorts ()
 Get the valid sort directions.
 
 makeSearchFieldMapping ( $name, $type)
 Create a search field definition.
 
 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 and set the list of namespaces of this class accordingly.
 
 searchArchiveTitle ( $term)
 Perform a title search in the article archive.
 
 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.
 
 setHookContainer (HookContainer $hookContainer)
 
 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.
 
 setSort ( $sort)
 Set the sort direction of the search results.
 
 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.
 

Protected Member Functions

 doSearchTextInDB ( $term)
 Perform a full text search query and return a result set.
 
 doSearchTitleInDB ( $term)
 Perform a title-only search query and return a result set.
 
 searchInternal ( $term, $fulltext)
 
- Protected Member Functions inherited from SearchDatabase
 extractNamespacePrefix ( $term)
 Extract the optional namespace prefix and set self::namespaces accordingly and return the query string.
 
 filter ( $text)
 Return a 'cleaned up' search string.
 
- Protected Member Functions inherited from SearchEngine
 completionSearchBackend ( $search)
 Perform a completion search.
 
 completionSearchBackendOverfetch ( $search)
 Perform an overfetch of completion search results.
 
 doSearchArchiveTitle ( $term)
 Perform a title search in the article archive.
 
 getHookContainer ()
 Get a HookContainer, for running extension hooks or for hook metadata.
 
 getHookRunner ()
 Get a HookRunner for running core hooks.
 
 normalizeNamespaces ( $search)
 Makes search simple string if it was namespaced.
 
 processCompletionResults ( $search, SearchSuggestionSet $suggestions)
 Process completion search results.
 
 simplePrefixSearch ( $search)
 Call out to simple search backend.
 

Private Member Functions

 fulltextSearchSupported ()
 Whether fulltext search is supported by current schema.
 
 getCountQuery ( $filteredTerm, $fulltext)
 
 getIndexField ( $fulltext)
 Picks which field to index on, depending on what type of query.
 
 getQuery ( $filteredTerm, $fulltext)
 Construct the full SQL query to do the search.
 
 limitResult ( $sql)
 Returns a query with limit for number of results set.
 
 parseQuery ( $filteredText, $fulltext)
 Parse the user's query and transform it into an SQL fragment which will become part of a WHERE clause.
 
 queryMain ( $filteredTerm, $fulltext)
 Get the base part of the search query.
 
 queryNamespaces ()
 Return a partial WHERE clause to limit the search to the given namespaces.
 
 regexTerm ( $string, $wildcard)
 

Additional Inherited Members

- Static Public Member Functions inherited from SearchEngine
static parseNamespacePrefixes ( $query, $withAllKeyword=true, $withPrefixSearchExtractNamespaceHook=false)
 Parse some common prefixes: all (search everything) or namespace names.
 
static userHighlightPrefs ()
 Find snippet highlight settings for all users.
 
- Public Attributes inherited from SearchEngine
int[] null $namespaces = [ NS_MAIN ]
 
string $prefix = ''
 
const COMPLETION_PROFILE_TYPE = 'completionSearchProfile'
 Profile type for completionSearch.
 
const DEFAULT_SORT = 'relevance'
 
const FT_QUERY_INDEP_PROFILE_TYPE = 'fulltextQueryIndepProfile'
 Profile type for query independent ranking features.
 
- Static Protected Member Functions inherited from SearchEngine
static defaultNearMatcher ()
 Get near matcher for default SearchEngine.
 
- Protected Attributes inherited from SearchDatabase
IDatabase $db
 (backwards compatibility)
 
ILoadBalancer $lb
 
string[] $searchTerms = []
 search terms
 
- Protected Attributes inherited from SearchEngine
array $features = []
 Feature values.
 
int $limit = 10
 
int $offset = 0
 
string[] $searchTerms = []
 
bool $showSuggestion = true
 
const CHARS_ALL = 1
 Integer flag for legalSearchChars: includes all chars allowed in a search query.
 
const CHARS_NO_SYNTAX = 2
 Integer flag for legalSearchChars: includes all chars allowed in a search term.
 

Detailed Description

Search engine hook for SQLite.

Definition at line 30 of file SearchSqlite.php.

Member Function Documentation

◆ doSearchTextInDB()

SearchSqlite::doSearchTextInDB ( $term)
protected

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

Parameters
string$termRaw search term
Returns
SqlSearchResultSet|null

Reimplemented from SearchDatabase.

Definition at line 172 of file SearchSqlite.php.

References searchInternal().

◆ doSearchTitleInDB()

SearchSqlite::doSearchTitleInDB ( $term)
protected

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

Parameters
string$termRaw search term
Returns
SqlSearchResultSet|null

Reimplemented from SearchDatabase.

Definition at line 182 of file SearchSqlite.php.

References searchInternal().

◆ fulltextSearchSupported()

SearchSqlite::fulltextSearchSupported ( )
private

Whether fulltext search is supported by current schema.

Returns
bool

Definition at line 35 of file SearchSqlite.php.

References $dbr, and DB_REPLICA.

Referenced by searchInternal(), update(), and updateTitle().

◆ getCountQuery()

SearchSqlite::getCountQuery ( $filteredTerm,
$fulltext )
private

Definition at line 275 of file SearchSqlite.php.

References $dbr, DB_REPLICA, parseQuery(), and queryNamespaces().

Referenced by searchInternal().

◆ getIndexField()

SearchSqlite::getIndexField ( $fulltext)
private

Picks which field to index on, depending on what type of query.

Parameters
bool$fulltext
Returns
string

Definition at line 254 of file SearchSqlite.php.

Referenced by parseQuery().

◆ getQuery()

SearchSqlite::getQuery ( $filteredTerm,
$fulltext )
private

Construct the full SQL query to do the search.

The guts shoulds be constructed in queryMain()

Parameters
string$filteredTerm
bool$fulltext
Returns
string

Definition at line 242 of file SearchSqlite.php.

References limitResult(), queryMain(), and queryNamespaces().

Referenced by searchInternal().

◆ legalSearchChars()

SearchSqlite::legalSearchChars ( $type = self::CHARS_ALL)

Get chars legal for search.

Parameters
int$typetype of search chars (see self::CHARS_ALL and self::CHARS_NO_SYNTAX). Defaults to CHARS_ALL
Returns
string

Reimplemented from SearchEngine.

Definition at line 157 of file SearchSqlite.php.

References $type.

Referenced by parseQuery().

◆ limitResult()

SearchSqlite::limitResult ( $sql)
private

Returns a query with limit for number of results set.

Parameters
string$sql
Returns
string

Definition at line 229 of file SearchSqlite.php.

References $dbr, and DB_REPLICA.

Referenced by getQuery().

◆ parseQuery()

SearchSqlite::parseQuery ( $filteredText,
$fulltext )
private

Parse the user's query and transform it into an SQL fragment which will become part of a WHERE clause.

Parameters
string$filteredText
bool$fulltext
Returns
string

Definition at line 55 of file SearchSqlite.php.

References $dbr, DB_REPLICA, getIndexField(), legalSearchChars(), regexTerm(), and wfDebug().

Referenced by getCountQuery(), and queryMain().

◆ queryMain()

SearchSqlite::queryMain ( $filteredTerm,
$fulltext )
private

Get the base part of the search query.

Parameters
string$filteredTerm
bool$fulltext
Returns
string

Definition at line 265 of file SearchSqlite.php.

References $dbr, DB_REPLICA, and parseQuery().

Referenced by getQuery().

◆ queryNamespaces()

SearchSqlite::queryNamespaces ( )
private

Return a partial WHERE clause to limit the search to the given namespaces.

Returns
string

Definition at line 211 of file SearchSqlite.php.

References $dbr, SearchEngine\$namespaces, and DB_REPLICA.

Referenced by getCountQuery(), and getQuery().

◆ regexTerm()

SearchSqlite::regexTerm ( $string,
$wildcard )
private

Definition at line 140 of file SearchSqlite.php.

Referenced by parseQuery().

◆ searchInternal()

SearchSqlite::searchInternal ( $term,
$fulltext )
protected

◆ update()

SearchSqlite::update ( $id,
$title,
$text )

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

Title and text should be pre-processed.

Parameters
int$id
string$title
string$text

Reimplemented from SearchEngine.

Definition at line 294 of file SearchSqlite.php.

References $title, DB_MASTER, and fulltextSearchSupported().

◆ updateTitle()

SearchSqlite::updateTitle ( $id,
$title )

Update a search index record's title only.

Title should be pre-processed.

Parameters
int$id
string$title

Reimplemented from SearchEngine.

Definition at line 317 of file SearchSqlite.php.

References $title, DB_MASTER, and fulltextSearchSupported().


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