API:Prefixsearch
Appearance
From mediawiki.org
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Languages:
This page is part of the MediaWiki Action API documentation.
| MediaWiki Action API |
|---|
| Basics |
| Authentication |
| Accounts and Users |
| Page Operations |
|
| Search |
| Developer Utilities |
| Tutorials |
| v · d · e |
API documentation
The following documentation is the output of Special: ApiHelp/ query+prefixsearch, automatically generated by the pre-release version of MediaWiki that is running on this site (MediaWiki.org).
list=prefixsearch (ps)
- This module requires read rights.
- This module can be used as a generator.
- Source: MediaWiki
- License: GPL-2.0-or-later
Perform a prefix search for page titles.
Despite the similarity in names, this module is not intended to be equivalent to Special:PrefixIndex; for that, see action=query&list=allpages with the apprefix parameter. The purpose of this module is similar to action=opensearch : to take user input and provide the best-matching titles. Depending on the search engine backend, this might include typo correction, redirect avoidance, or other heuristics.
Specific parameters:
Other general parameters are available.
- pssearch
Search string.
- This parameter is required.
- psnamespace
Namespaces to search. Ignored if pssearch begins with a valid namespace prefix.
- Values (separate with | or alternative): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 90, 91, 92, 93, 100, 101, 102, 103, 104, 105, 106, 107, 710, 711, 828, 829, 1198, 1199, 1728, 1729, 2600, 5500, 5501
- To specify all values, use *.
- Default: 0
- pslimit
Maximum number of results to return.
- Type: integer or max
- The value must be between 1 and 500.
- Default: 10
- psoffset
When more results are available, use this to continue. More detailed information on how to continue queries can be found on mediawiki.org.
- Type: integer
- The value must be no less than 0.
- Default: 0
- psprofile
Search profile to use.
- strict
- Strict profile with few punctuation characters removed but diacritics and stress marks are kept.
- normal
- Few punctuation characters, some diacritics and stopwords removed.
- normal-subphrases
- Few punctuation characters, some diacritics and stopwords removed. It will match also subphrases (can be subphrases or subpages depending on internal wiki configuration).
- fuzzy
- Similar to normal with typo correction (two typos supported).
- fast-fuzzy
- Experimental fuzzy profile (may be removed at any time)
- fuzzy-subphrases
- Similar to normal with typo correction (two typos supported). It will match also subphrases (can be subphrases or subpages depending on internal wiki configuration).
- classic
- Classic prefix, few punctuation characters and some diacritics removed.
- engine_autoselect
- Let the search engine decide on the best profile to use.
- One of the following values: classic, engine_autoselect, fast-fuzzy, fuzzy, fuzzy-subphrases, normal, normal-subphrases, strict
- Default: engine_autoselect
Example:
- Search for page titles beginning with meaning.
- api.php?action=query&list=prefixsearch&pssearch=meaning [open in sandbox]
Example
GET request
Response
{ "batchcomplete":"", "continue":{ "psoffset":10, "continue":"-||" }, "query":{ "prefixsearch":[ { "ns":0, "title":"Star Wars", "pageid":26678 }, { "ns":0, "title":"Star Wars: The Last Jedi", "pageid":43910621 }, { "ns":0, "title":"Star Wars: The Force Awakens", "pageid":14723194 }, { "ns":0, "title":"Star Wars (film)", "pageid":52549 } ... ] } }
Sample code
Python
#!/usr/bin/python3 """ prefixsearch.py MediaWiki API Demos Demo of `Prefixsearch` module: Perform a prefix search for page titles MIT License """ importrequests S = requests.Session() URL = "https://en.wikipedia.org/w/api.php" PARAMS = { "action": "query", "format": "json", "list": "prefixsearch", "pssearch": "Star Wars" } R = S.get(url=URL, params=PARAMS) DATA = R.json() PAGES = DATA['query']['prefixsearch'] for page in PAGES: print(page["title"])
PHP
<?php /* prefixsearch.php MediaWiki API Demos Demo of `Prefixsearch` module: Perform a prefix search for page titles MIT License */ $endPoint = "https://en.wikipedia.org/w/api.php"; $params = [ "action" => "query", "list" => "prefixsearch", "pssearch" => "Star Wars", "format" => "json" ]; $url = $endPoint . "?" . http_build_query( $params ); $ch = curl_init( $url ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ); $output = curl_exec( $ch ); curl_close( $ch ); $result = json_decode( $output, true ); foreach( $result["query"]["prefixsearch"] as $page ) { echo( $page["title"] . "\n" ); }
JavaScript
/* prefixsearch.js MediaWiki API Demos Demo of `Prefixsearch` module: Perform a prefix search for page titles MIT License */ varurl="https://en.wikipedia.org/w/api.php"; varparams={ action:"query", list:"prefixsearch", pssearch:"Star Wars", format:"json" }; url=url+"?origin=*"; Object.keys(params).forEach(function(key){url+="&"+key+"="+params[key];}); fetch(url) .then(function(response){returnresponse.json();}) .then(function(response){ varpages=response.query.prefixsearch; for(varpageinpages){ console.log(pages[page].title); } }) .catch(function(error){console.log(error);});
MediaWiki JS
/* prefixsearch.js MediaWiki API Demos Demo of `Prefixsearch` module: Perform a prefix search for page titles MIT License */ varparams={ action:'query', list:'prefixsearch', pssearch:'Star Wars', format:'json' }, api=newmw.Api(); api.get(params).done(function(data){ varpages=data.query.prefixsearch, page; for(pageinpages){ console.log(pages[page].title); } });
Possible errors
| Code | Info |
|---|---|
| nopssearch | The pssearch parameter must be set. |