MediaWiki  master
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. More...
 
 append (SearchSuggestion $suggestion)
 Add a new suggestion at the end. More...
 
 appendAll (SearchSuggestionSet $set)
 Add suggestion set to the end of the current one. More...
 
 filter ( $callback)
 Filter the suggestions array. More...
 
 getBestScore ()
 
 getSize ()
 
 getSuggestions ()
 Get the list of suggestions. More...
 
 getWorstScore ()
 
 hasMoreResults ()
 
 map ( $callback)
 Call array_map on the suggestions array. More...
 
 prepend (SearchSuggestion $suggestion)
 Add a new suggestion at the top. More...
 
 rescore ( $key)
 Move the suggestion at index $key to the first position. More...
 
 shrink ( $limit)
 Remove any extra elements in the suggestions set. More...
 

Static Public Member Functions

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

Private Attributes

bool $hasMoreResults
 Are more results available? More...
 
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 55 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 109 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 127 of file SearchSuggestionSet.php.

References append(), and getSuggestions().

◆ emptySuggestionSet()

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

Definition at line 238 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 96 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 227 of file SearchSuggestionSet.php.

References $title, and SearchSuggestion\fromText().

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

References $title, and SearchSuggestion\fromTitle().

Referenced by SearchEngine\completionSearchBackend().

◆ getBestScore()

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

Definition at line 165 of file SearchSuggestionSet.php.

Referenced by prepend().

◆ getSize()

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

Definition at line 185 of file SearchSuggestionSet.php.

Referenced by append(), and prepend().

◆ getSuggestions()

SearchSuggestionSet::getSuggestions ( )

Get the list of suggestions.

Returns
SearchSuggestion[]

Definition at line 77 of file SearchSuggestionSet.php.

References $suggestions.

Referenced by appendAll().

◆ getWorstScore()

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

Definition at line 175 of file SearchSuggestionSet.php.

Referenced by append().

◆ hasMoreResults()

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

Definition at line 69 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 86 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 148 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 137 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 193 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 41 of file SearchSuggestionSet.php.

Referenced by __construct(), and hasMoreResults().

◆ $pageMap

array SearchSuggestionSet::$pageMap = []
private

Definition at line 36 of file SearchSuggestionSet.php.

◆ $suggestions

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

Definition at line 30 of file SearchSuggestionSet.php.

Referenced by getSuggestions().


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