API:Prefixsearch - MediaWiki (original) (raw)

Languages:

This page is part of the MediaWiki Action 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).

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:

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

{ "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 } ... ] } }

#!/usr/bin/python3

""" prefixsearch.py

MediaWiki API Demos
Demo of `Prefixsearch` module: Perform a prefix search for page titles

MIT License

"""

import requests

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"])

"query", "list" => "prefixsearch", "pssearch" => "Star Wars", "format" => "json" ]; url=url = url=endPoint . "?" . http_build_query( $params ); ch=curlinit(ch = curl_init( ch=curlinit(url ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ); output=curlexec(output = curl_exec( output=curlexec(ch ); curl_close( $ch ); result=jsondecode(result = json_decode( result=jsondecode(output, true ); foreach( result["query"]["prefixsearch"]asresult["query"]["prefixsearch"] as result["query"]["prefixsearch"]aspage ) { echo( $page["title"] . "\n" ); } /* prefixsearch.js MediaWiki API Demos Demo of `Prefixsearch` module: Perform a prefix search for page titles MIT License */ var url = "https://en.wikipedia.org/w/api.php"; var params = { 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){return response.json();}) .then(function(response) { var pages = response.query.prefixsearch; for (var page in pages) { console.log( pages[page].title ); } }) .catch(function(error){console.log(error);}); /* prefixsearch.js MediaWiki API Demos Demo of `Prefixsearch` module: Perform a prefix search for page titles MIT License */ var params = { action: 'query', list: 'prefixsearch', pssearch: 'Star Wars', format: 'json' }, api = new mw.Api(); api.get( params ).done( function ( data ) { var pages = data.query.prefixsearch, page; for ( page in pages ) { console.log( pages[ page ].title ); } } ); | Code | Info | | ---------- | ----------------------------------- | | nopssearch | The pssearch parameter must be set. | * [API:All search modules](/wiki/Special:MyLanguage/API:All%5Fsearch%5Fmodules "Special:MyLanguage/API:All search modules")[ ](/wiki/API:All%5Fsearch%5Fmodules "API:All search modules")