MediaWiki master
SearchSuggestionSet Class Reference

A set of search suggestions. More...

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.
 
 remove (SearchSuggestion $suggestion)
 Remove a suggestion from the set.
 
 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.
 

Detailed Description

A set of search suggestions.

The set is always ordered by score, with the best match first.

Definition at line 28 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 56 of file SearchSuggestionSet.php.

References 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 110 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 128 of file SearchSuggestionSet.php.

References append(), and getSuggestions().

◆ emptySuggestionSet()

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

Definition at line 277 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 97 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 266 of file SearchSuggestionSet.php.

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 249 of file SearchSuggestionSet.php.

Referenced by SearchEngine\completionSearchBackend().

◆ getBestScore()

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

Definition at line 186 of file SearchSuggestionSet.php.

Referenced by prepend().

◆ getSize()

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

Definition at line 206 of file SearchSuggestionSet.php.

Referenced by append(), and prepend().

◆ getSuggestions()

SearchSuggestionSet::getSuggestions ( )

Get the list of suggestions.

Returns
SearchSuggestion[]

Definition at line 78 of file SearchSuggestionSet.php.

Referenced by appendAll().

◆ getWorstScore()

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

Definition at line 196 of file SearchSuggestionSet.php.

Referenced by append().

◆ hasMoreResults()

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

Definition at line 70 of file SearchSuggestionSet.php.

Referenced by __construct().

◆ map()

SearchSuggestionSet::map ( $callback)

Call array_map on the suggestions array.

Parameters
callable$callback
Returns
array

Definition at line 87 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 149 of file SearchSuggestionSet.php.

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

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

◆ remove()

SearchSuggestionSet::remove ( SearchSuggestion $suggestion)

Remove a suggestion from the set.

Removes the first suggestion that has the same article id or the same suggestion text.

Parameters
SearchSuggestion$suggestion
Returns
bool true if something was removed

Definition at line 169 of file SearchSuggestionSet.php.

Referenced by SearchEngine\processCompletionResults().

◆ rescore()

SearchSuggestionSet::rescore ( $key)

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

Parameters
int$key

Definition at line 138 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 214 of file SearchSuggestionSet.php.

Referenced by SearchEngine\processCompletionResults().


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