API:Prefixsearch

From MediaWiki.org
Jump to navigation Jump to search

Other languages:
Deutsch • ‎English • ‎dansk • ‎español • ‎français • ‎português • ‎português do Brasil • ‎română • ‎sicilianu • ‎čeština • ‎русский • ‎ไทย • ‎中文 • ‎日本語 • ‎한국어

API documentation[edit]




list=prefixsearch (ps)

(main | query | prefixsearch)
  • 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.

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, 486, 487, 828, 829, 1198, 1199, 2300, 2301, 2302, 2303, 2600, 5500, 5501
To specify all values, use *.
Default: 0
pslimit

Maximum number of results to return.

No more than 500 (5,000 for bots) allowed.
Type: integer or max
Default: 10
psoffset

When more results are available, use this to continue.

Type: integer
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: strict, normal, normal-subphrases, fuzzy, fast-fuzzy, fuzzy-subphrases, classic, engine_autoselect
Default: engine_autoselect
Example:
Search for page titles beginning with meaning.
api.php?action=query&list=prefixsearch&pssearch=meaning [open in sandbox]

Example[edit]

GET Request[edit]

Response[edit]

{
    "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[edit]

prefixsearch.py

#!/usr/bin/python3

"""
    prefixsearch.py

    MediaWiki Action API Code Samples
    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"

SEARCHTERM = "Star Wars"

PARAMS = {
    'action':"query",
    'list':"prefixsearch",
    'pssearch':SEARCHTERM,
    'format':"json"
}

R = S.get(url=URL, params=PARAMS)
DATA = R.json()

print(DATA)

Possible errors[edit]

Code Info
nopssearch The pssearch parameter must be set.

See also[edit]