API:Search/fr
Cette page fait partie de la documentation de l'API MediaWiki Action. |
Version de MediaWiki : | ≥ 1.11 |
Requête GET pour la recherche avancée de pages du wiki à partir du titre ou de texte du contenu.
Documentation de l'API
Requête GET
Les résultats par défaut de la recherche ne sont pas encodés UTF8. Remplacez
utf8
dans la requête GET ci-dessus pour voir la différence.
Réponse
{
"batchcomplete": "",
"continue": {
"sroffset": 10,
"continue": "-||"
},
"query": {
"searchinfo": {
"totalhits": 5060
},
"search": [
{
"ns": 0,
"title": "Nelson Mandela",
"pageid": 21492751,
"size": 196026,
"wordcount": 23664,
"snippet": "<span class=\"searchmatch\">Nelson</span> Rolihlahla <span class=\"searchmatch\">Mandela</span> (/mænˈdɛlə/, Xhosa: [xoliɬaˈɬa <span class=\"searchmatch\">manˈdɛla</span>]; 18 July 1918 – 5 December 2013) was a South African anti-apartheid revolutionary,",
"timestamp": "2018-07-23T07:59:43Z"
},
{
"ns": 0,
"title": "Death of Nelson Mandela",
"pageid": 41284488,
"size": 133513,
"wordcount": 13512,
"snippet": "On December 5, 2013, <span class=\"searchmatch\">Nelson</span> <span class=\"searchmatch\">Mandela</span>, the first President of South Africa to be elected in a fully representative democratic election, as well as the country's",
"timestamp": "2018-07-19T17:30:59Z"
}
...
]
}
}
Exemple de code
Python
#!/usr/bin/python3
"""
search.py
MediaWiki API Demos
Demo of `Search` module: Search for a text or title
MIT License
"""
import requests
S = requests.Session()
URL = "https://en.wikipedia.org/w/api.php"
SEARCHPAGE = "Nelson Mandela"
PARAMS = {
"action": "query",
"format": "json",
"list": "search",
"srsearch": SEARCHPAGE
}
R = S.get(url=URL, params=PARAMS)
DATA = R.json()
if DATA['query']['search'][0]['title'] == SEARCHPAGE:
print("Your search page '" + SEARCHPAGE + "' exists on English Wikipedia")
PHP
<?php
/*
search.php
MediaWiki API Demos
Demo of `Search` module: Search for a text or title
MIT License
*/
$searchPage = "Nelson Mandela";
$endPoint = "https://en.wikipedia.org/w/api.php";
$params = [
"action" => "query",
"list" => "search",
"srsearch" => $searchPage,
"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 );
if ($result['query']['search'][0]['title'] == $searchPage){
echo("Your search page '" . $searchPage . "' exists on English Wikipedia" . "\n" );
}
JavaScript
/*
search.js
MediaWiki API Demos
Demo of `Search` module: Search for a text or title
MIT License
*/
var url = "https://en.wikipedia.org/w/api.php";
var params = new URLSearchParams({
action: "query",
list: "search",
srsearch: "Nelson Mandela",
format: "json",
origin: location.origin
});
fetch(`${url}?${params}`)
.then(function(response){return response.json();})
.then(function(response) {
if (response.query.search[0].title === "Nelson Mandela"){
console.log("Your search page 'Nelson Mandela' exists on English Wikipedia" );
}
})
.catch(function(error){console.log(error);});
MediaWiki JS
/*
search.js
MediaWiki API Demos
Demo of `Search` module: Search for a text or title
MIT License
*/
var params = {
action: 'query',
list: 'search',
srsearch: 'Nelson Mandela',
format: 'json'
},
api = new mw.Api();
api.get( params ).done( function ( data ) {
if ( data.query.search[ 0 ].title === 'Nelson Mandela' ) {
console.log( "Your search page 'Nelson Mandela' exists on English Wikipedia" );
}
} );
Erreurs possibles
Code | Information |
---|---|
nosrsearch | Le paramètre srsearch doit être défini. Ceci était un paramètre de la recherche avant la v1.17
|
search-text-disabled | La recherche text est désactivée. |
search-title-disabled | La recherche title est désactivée. |
search-error | une erreur s'est produite durant la recherche |
Historique des paramètres
- v1.24:
score
,hasrelated
obsolète - v1.23:
srredirects
supprimé. Les redirections sont toujours incluses.srinterwiki
ajouté
- v1.22:
srbackend
ajouté - v1.17:
nearmatch
,score
,titlesnippet
,redirecttitle
,redirectsnippet
,sectiontitle
,sectionsnippet
,hasrelated
ajouté - v1.16:
srinfo
,srprop
ajouté
Notes supplémentaires
- L'interprétation de
srsearch
varie en fonction du code qui exécute la recherche en arrière plan. Sur les wikis Wikimedia qui utilisent CirrusSearch, voir Aide:CirrusSearch pour les informations concernant la syntaxe de la recherche.