MediaWiki fundraising/REL1_35
SearchSuggestionSet Class Reference

Search suggestion sets. More...

Collaboration diagram for SearchSuggestionSet:

Public Member Functions

 __construct (array $suggestions, $hasMoreResults=false)
 Builds a new set of suggestions.
 
 append (SearchSuggestion $suggestion)
 Add a new suggestion at the end.
 
 appendAll (SearchSuggestionSet $set)
 Add suggestion set to the end of the current one.
 
 filter ( $callback)
 Filter the suggestions array.
 
 getBestScore ()
 
 getSize ()
 
 getSuggestions ()
 Get the list of suggestions.
 
 getWorstScore ()
 
 hasMoreResults ()
 
 map ( $callback)
 Call array_map on the suggestions array.
 
 prepend (SearchSuggestion $suggestion)
 Add a new suggestion at the top.
 
 rescore ( $key)
 Move the suggestion at index $key to the first position.
 
 shrink ( $limit)
 Remove any extra elements in the suggestions set.
 

Static Public Member Functions

static emptySuggestionSet ()
 
static fromStrings (array $titles, $hasMoreResults=false)
 Builds a new set of suggestion based on a string array.
 
static fromTitles (array $titles, $hasMoreResults=false)
 Builds a new set of suggestion based on a title array.
 

Private Attributes

bool $hasMoreResults
 Are more results available?
 
array $pageMap = []
 
SearchSuggestion[] $suggestions = []
 

Detailed Description

Search suggestion sets.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. http://www.gnu.org/copyleft/gpl.html A set of search suggestions. The set is always ordered by score, with the best match first.

Definition at line 26 of file SearchSuggestionSet.php.

Constructor & Destructor Documentation

◆ __construct()

SearchSuggestionSet::__construct ( array $suggestions,
$hasMoreResults = false )

Builds a new set of suggestions.

NOTE: the array should be sorted by score (higher is better), in descending order. SearchSuggestionSet will not try to re-order this input array. Providing an unsorted input array is a mistake and will lead to unexpected behaviors.

Parameters
SearchSuggestion[]$suggestions(must be sorted by score)
bool$hasMoreResultsAre more results available?

Definition at line 54 of file SearchSuggestionSet.php.

References $hasMoreResults, and hasMoreResults().

Member Function Documentation

◆ append()

SearchSuggestionSet::append ( SearchSuggestion $suggestion)

Add a new suggestion at the end.

If the score of the new suggestion is greater than the worst one, the new suggestion score will be updated (worst - 1).

Parameters
SearchSuggestion$suggestion

Definition at line 108 of file SearchSuggestionSet.php.

References SearchSuggestion\getScore(), getSize(), SearchSuggestion\getSuggestedTitleID(), getWorstScore(), and SearchSuggestion\setScore().

Referenced by appendAll().

◆ appendAll()

SearchSuggestionSet::appendAll ( SearchSuggestionSet $set)

Add suggestion set to the end of the current one.

Parameters
SearchSuggestionSet$set

Definition at line 126 of file SearchSuggestionSet.php.

References append(), and getSuggestions().

◆ emptySuggestionSet()

static SearchSuggestionSet::emptySuggestionSet ( )
static
Returns
SearchSuggestionSet an empty suggestion set

Definition at line 237 of file SearchSuggestionSet.php.

Referenced by SearchEngine\completionSearch(), and SearchEngine\completionSearchWithVariants().

◆ filter()

SearchSuggestionSet::filter ( $callback)

Filter the suggestions array.

Parameters
callable$callbackCallable accepting single SearchSuggestion instance returning bool false to remove the item.
Returns
int The number of suggestions removed

Definition at line 95 of file SearchSuggestionSet.php.

Referenced by SearchEngine\processCompletionResults().

◆ fromStrings()

static SearchSuggestionSet::fromStrings ( array $titles,
$hasMoreResults = false )
static

Builds a new set of suggestion based on a string array.

NOTE: Suggestion scores will be generated.

Parameters
string[]$titles
bool$hasMoreResultsAre more results available?
Returns
SearchSuggestionSet

Definition at line 226 of file SearchSuggestionSet.php.

References $hasMoreResults, $suggestions, and $title.

Referenced by SearchEngine\completionSearchBackend().

◆ fromTitles()

static SearchSuggestionSet::fromTitles ( array $titles,
$hasMoreResults = false )
static

Builds a new set of suggestion based on a title array.

Useful when using a backend that supports only Titles.

NOTE: Suggestion scores will be generated.

Parameters
Title[]$titles
bool$hasMoreResultsAre more results available?
Returns
SearchSuggestionSet

Definition at line 209 of file SearchSuggestionSet.php.

References $hasMoreResults, $suggestions, and $title.

Referenced by SearchEngine\completionSearchBackend().

◆ getBestScore()

SearchSuggestionSet::getBestScore ( )
Returns
float the best score in this suggestion set

Definition at line 164 of file SearchSuggestionSet.php.

Referenced by prepend().

◆ getSize()

SearchSuggestionSet::getSize ( )
Returns
int the number of suggestion in this set

Definition at line 184 of file SearchSuggestionSet.php.

Referenced by append(), and prepend().

◆ getSuggestions()

SearchSuggestionSet::getSuggestions ( )

Get the list of suggestions.

Returns
SearchSuggestion[]

Definition at line 76 of file SearchSuggestionSet.php.

References $suggestions.

Referenced by appendAll().

◆ getWorstScore()

SearchSuggestionSet::getWorstScore ( )
Returns
float the worst score in this set

Definition at line 174 of file SearchSuggestionSet.php.

Referenced by append().

◆ hasMoreResults()

SearchSuggestionSet::hasMoreResults ( )
Returns
bool Are more results available?

Definition at line 68 of file SearchSuggestionSet.php.

References $hasMoreResults.

Referenced by __construct(), and shrink().

◆ map()

SearchSuggestionSet::map ( $callback)

Call array_map on the suggestions array.

Parameters
callable$callback
Returns
array

Definition at line 85 of file SearchSuggestionSet.php.

Referenced by SearchEngine\extractTitles(), and SearchEngine\processCompletionResults().

◆ prepend()

SearchSuggestionSet::prepend ( SearchSuggestion $suggestion)

Add a new suggestion at the top.

If the new suggestion score is lower than the best one its score will be updated (best + 1)

Parameters
SearchSuggestion$suggestion

Definition at line 147 of file SearchSuggestionSet.php.

References getBestScore(), SearchSuggestion\getScore(), getSize(), SearchSuggestion\getSuggestedTitleID(), and SearchSuggestion\setScore().

Referenced by SearchEngine\processCompletionResults(), and rescore().

◆ rescore()

SearchSuggestionSet::rescore ( $key)

Move the suggestion at index $key to the first position.

Parameters
string$key

Definition at line 136 of file SearchSuggestionSet.php.

References prepend().

Referenced by SearchEngine\processCompletionResults().

◆ shrink()

SearchSuggestionSet::shrink ( $limit)

Remove any extra elements in the suggestions set.

Parameters
int$limitthe max size of this set.

Definition at line 192 of file SearchSuggestionSet.php.

References hasMoreResults().

Referenced by SearchEngine\processCompletionResults().

Member Data Documentation

◆ $hasMoreResults

bool SearchSuggestionSet::$hasMoreResults
private

Are more results available?

Definition at line 40 of file SearchSuggestionSet.php.

Referenced by __construct(), fromStrings(), fromTitles(), and hasMoreResults().

◆ $pageMap

array SearchSuggestionSet::$pageMap = []
private

Definition at line 35 of file SearchSuggestionSet.php.

◆ $suggestions

SearchSuggestion [] SearchSuggestionSet::$suggestions = []
private

Definition at line 30 of file SearchSuggestionSet.php.

Referenced by fromStrings(), fromTitles(), and getSuggestions().


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