API:Opensearch/zh
![]() |
GET請求是按標題搜索維基頁面,這使用了OpenSearch格式。
![]() | 以下文档是Special: |
action=opensearch
(main | opensearch)
- This module requires read rights.
- Source: MediaWiki
- License: GPL-2.0-or-later
Search the wiki using the OpenSearch protocol.
Specific parameters:
Other general parameters are available.
- search
Search string.
- This parameter is required.
- namespace
Namespaces to search. Ignored if search 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, 2600, 5500, 5501
- To specify all values, use *.
- Default: 0
- limit
Maximum number of results to return.
- Type: integer or max
- The value must be between 1 and 500.
- Default: 10
- profile
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
- suggest
- Deprecated.
No longer used.
- Type: boolean (details)
- redirects
How to handle redirects:
- return
- Return the redirect itself.
- resolve
- Return the target page. May return fewer than limit results.
For historical reasons, the default is "return" for format=json and "resolve" for other formats.
- One of the following values: resolve, return
- format
The format of the output.
- One of the following values: json, jsonfm, xml, xmlfm
- Default: json
- warningsaserror
If warnings are raised with format=json, return an API error instead of ignoring them.
- Type: boolean (details)
Example:
- Find pages beginning with Te.
- api.php?action=opensearch&search=Te [open in sandbox]
GET请求
回应
[
"Hampi",
[
"Hampi",
"Hampi (town)",
"Hampi Express",
...
],
[
"Hampi, also referred to as the Group of Monuments at Hampi, is a UNESCO World Heritage Site located in east-central Karnataka, India.",
"Hampi is a town in Hospet taluk of the Ballari district in the Indian state of Karnataka. Located along the Tungabhadra River in the east and center part of the state, near the border of Andhra Pradesh, Hampi is near the city of Hosapete.",
"The Hampi Express is a daily express train running between the Mysooru and Hubballi Junction, the headquarters of the South Western Railway in India.",
...
],
[
"https://en.wikipedia.org/wiki/Hampi",
"https://en.wikipedia.org/wiki/Hampi_(town)",
"https://en.wikipedia.org/wiki/Hampi_Express",
...
]
]
在维基媒体的wiki上,由于性能原因,wiki的描述被禁用,因此第二个数组仅包含空字符串。 請参見T241437。
Python
#!/usr/bin/python3
"""
opensearch.py
MediaWiki API Demos
Demo of `Opensearch` module: Search the wiki and obtain
results in an OpenSearch (http://www.opensearch.org) format
MIT License
"""
import requests
S = requests.Session()
URL = "https://en.wikipedia.org/w/api.php"
PARAMS = {
"action": "opensearch",
"namespace": "0",
"search": "Hampi",
"limit": "5",
"format": "json"
}
R = S.get(url=URL, params=PARAMS)
DATA = R.json()
print(DATA)
PHP
<?php
/*
opensearch.php
MediaWiki API Demos
Demo of `Opensearch` module: Search the wiki and obtain
results in an OpenSearch (http://www.opensearch.org) format
MIT License
*/
$endPoint = "https://en.wikipedia.org/w/api.php";
$params = [
"action" => "opensearch",
"search" => "Hampi",
"limit" => "5",
"namespace" => "0",
"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 );
var_dump( $result );
JavaScript
/*
opensearch.js
MediaWiki API Demos
Demo of `Opensearch` module: Search the wiki and obtain
results in an OpenSearch (http://www.opensearch.org) format
MIT License
*/
export async function getWikiSearch() {
const params = {
action: "opensearch",
search: "Hampi",
limit: "5",
namespace: "0",
format: "json",
};
const url =
"https://en.wikipedia.org/w/api.php?origin=*&" +
new URLSearchParams(params).toString();
try {
const data = await (await fetch(url)).json();
console.log(data);
} catch (error) {
console.error("Fetch error:", error);
}
}
MediaWiki JS
/*
opensearch.js
MediaWiki API Demos
Demo of `Opensearch` module: Search the wiki and obtain
results in an OpenSearch (http://www.opensearch.org) format
MIT License
*/
var params = {
action: 'opensearch',
search: 'Hampi',
limit: '5',
namespace: '0',
format: 'json'
},
api = new mw.Api();
api.get( params ).done( function ( data ) {
console.log( data );
} );
可能的错误
nosearch | search参数必须被设置。 |
unknown_format | 无法识别的参数format的值:aaa。 |
附加说明
是與此API相關的、一些給MediaWiki的網站管理員和擴充功能開發人員的額外提示:
- 扩展:TitleKey - 可讓此API的搜尋建議,不區分大小寫。
- 在
LocalSettings.php
中將 : 和$wgExtractsExtendOpenSearchXml
設定為true將允許XML格式中的每個項目包含一個從條目中摘錄文字的<Description>
標籤。 - 在
LocalSettings.php
中,: 和$wgPageImagesExpandOpenSearchXml
配置true
將允許XML格式中的每個項目包含一個<Image>
標籤,其中包含有來自條目的縮圖。