Open main menu

Aide:CirrusSearch

This page is a translated version of the page Help:CirrusSearch and the translation is 100% complete.
Other languages:
Bahasa Indonesia • ‎Deutsch • ‎English • ‎Nederlands • ‎Sunda • ‎Tiếng Việt • ‎Türkçe • ‎Zazaki • ‎català • ‎español • ‎français • ‎italiano • ‎magyar • ‎occitan • ‎polski • ‎português • ‎português do Brasil • ‎shqip • ‎suomi • ‎svenska • ‎čeština • ‎Ελληνικά • ‎български • ‎македонски • ‎русский • ‎українська • ‎ייִדיש • ‎עברית • ‎العربية • ‎فارسی • ‎لۊری شومالی • ‎پښتو • ‎বাংলা • ‎தமிழ் • ‎తెలుగు • ‎ትግርኛ • ‎中文 • ‎日本語 • ‎한국어

La méthode la plus rapide pour trouver une information dans les projets MediaWiki est de la rechercher directement. Sur chacune des pages figure une boîte rechercher.

CirrusSearch est une extension pour MediaWiki et utilise Elasticsearch pour ajouter des fonctionnalités de recherche avancée à l’outil de recherche de MediaWiki par défaut. La Fondation Wikimédia utilise CirrusSearch pour tous les projets Wikimédia. Cette page décrit les fonctionnalités de CirrusSearch. Si votre question ne trouve pas de réponse ici, n’hésitez pas à la poser sur la page de discussion et on vous répondra.

Pour obtenir des informations sur l’extension MediaWiki, consultez Extension:CirrusSearch.

Comment ça marche ?

Entrer des mots clé et des phrases, puis appuyer sur la touche Entrée ou Retour de votre clavier. Ou cliquez sur l'icône de la loupe, sur Rechercher ou sur le bouton Go. Si une page a le même titre que celui que vous avez entré, vous serez dirigé vers cette page. Sinon, toutes les pages du wiki sont cherchées et il apparait une liste de pages qui correspondent à vos termes de recherche, ou bien un message précisant qu'aucune page ne contient tous les mots clé et les phrases.

Si vous cliquez sur le bouton « Rechercher » sans rien mettre dans la boite de dialogue, vous serez redirigé vers la page spéciale « Special:Search » qui vous apportera des options supplémentaires pour mieux filtrer votre recherche (options disponibles également depuis toute liste de résultats de recherche)

Il est possible que vous trouviez utile de restreindre la recherche aux pages d'un certain espace de noms par exemple, seulement les pages User. Vérifiez les espaces de noms que vous voulez spécifier pour cette recherche.

Quelles sont les améliorations ?

CirrusSearch apporte trois améliorations principales à l’outil de recherche par défaut de MediaWiki, à savoir :

  • Un meilleur support pour la recherche dans les différentes langues.
  • Des mises à jour plus rapides pour l’indexation, ce qui veut dire que les changements sont visibles plus rapidement dans les résultats de recherche.
  • Le développement des modèles, ce qui signifie que le rendu des modèles est pris en compte par la recherche.

À quelle fréquence l’index de recherche est-il mis à jour ?

La mise à jour de l'indexation est réalisée presque en temps réel. Les modifications effectuées aux pages doivent être immédiatement répercutées dans les résultats de recherche. Les modifications apportées aux modèles doivent prendre effet dans les articles qui les incluent au bout de quelques minutes. Les modifications des modèles passent par la file de travail ; les performances sont donc variables. Une modification nulle de l’article forcera la modification, mais cette opération ne devrait pas avoir lieu si tout fonctionne correctement.

Suggestions de recherche

Les suggestions de recherche qui se déroulent vers le bas lorsque vous entrez du texte dans la zone de recherche sont triées grossièrement en fonction de la qualité des articles. Cela prend en compte le nombre de liens wiki entrants, la taille de la page, le nombre de liens externes, le nombre de sections et le nombre de redirections. Les suggestions de recherche peuvent être sautées et les requêtes mèneront alors directement à la page des résultats de recherche. Ajouter un tilde ~ avant la requête, par ex. « ~Frida Kahlo ». Les suggestions de recherche apparaîtront toujours, mais appuyer sur la touche Entrée à tout instant vous conduira vers la page des résultats.

Les caractères ASCII/accentués/avec diacritiques sont acceptés pour les requêtes en anglais, mais il y a quelques problèmes de formatage des résultats. Voir la tâche T54656.

Recherche de texte complet

Une « recherche de texte complet » est une « recherche indexée ». Toutes les pages sont stockées dans la base de données du wiki, et tous les mots des pages non redirigées qu’elles contiennent sont stockés dans la base de données de recherche, qui est un index vers pratiquement le texte complet du wiki. Tout mot visible est indexé à la liste des pages où il est trouvé, de sorte que la recherche d’un mot soit aussi rapide que la consultation d’un seul enregistrement.[1] De plus, pour tout changement dans la formulation, l’index de recherche est mis à jour en quelques secondes.

Il existe de nombreux index du « texte complet » du wiki afin d’optimiser les nombreux types de recherches pris en charge. Le wikitexte complet est indexé de nombreuses fois dans de nombreux index à objectif spécifique, chacun d’entre eux parcourant le wikitexte de la manière qui lui est la plus profitable. Exemples d’index :

  • Texte « auxiliaire », incluant les notes de chapeau, les légendes des objets, le sommaire, et tout wikitexte classé avec un attribut HTML class=searchaux.
  • Texte « d'introduction », wikitexte se situant entre le haut de la page et le premier titre de section.
  • Le texte « catégorie » indexe les listes présentées en pied de page.
  • Les modèles sont indexés. Si les mots transclus d’un modèle changent, toutes les pages qui le transcluent sont alors mises à jour (cela peut prendre du temps selon la file de traitement). Si les sous-modèles utilisés par un modèle changent, l’index est également mis à jour.
  • Le contenu des documents stockés dans l’espace de noms File/Media sont dorénavant indexés. Des milliers de formats sont reconnus.

Des dizaines de langues sont supportées mais il est projeté de prendre en charge toutes les langues à terme. Il y a une liste des langues actuellement supportées sur elasticsearch.org ; voir leur documentation pour savoir comment contribuer en soumettant des requêtes et des patchs.

CirrusSearch optimisera votre requête et l’exécutera. Les titres résultants sont pondérés selon leur pertinence, et fortement post-traités, par 20 à la fois, pour la page des résultats de recherche. Ainsi des extraits sont fournis, et les termes de recherche sont mis en gras.

Les résultats de recherche seront souvent accompagnés par diverses indications préliminaires, telles que « Vouliez-vous dire » (correction orthographique), et, lorsqu’il n’y a aucun résultat pour les termes recherchés, « Résultats affichés pour » (corriger la requête) et « A la place, afficher les résultats pour » (votre requête).

Les fonctionnalités de recherche incluent également :

  • Trier les suggestions de navigation en fonction du nombre de liens entrants.
  • Commencer par le caractère ~ pour désactiver la navigation et les suggestions de manière à préserver également le classement (ranking) des pages.
  • Correspondance intelligente des caractères en normalisant (ou « pliant ») les caractères qui ne sont pas sur le clavier, en caractères basiques du clavier.
  • Les mots et expressions qui correspondent sont mis en valeur en gras sur la page des résultats de recherche. La mise en valeur est issue de l'analyseur cosmétique, en supplément de l’analyseur d’indexation dont le rôle est de trouver les pages et la mise en valeur de la recherche peut ne pas être toujours 100 % synchronisée (dans l’extrait) avec ce que la recherche va retourner. Et ceci est particulièrement vrai quand on utilise des expressions régulières. La mise en valeur peut correspondre plus ou moins aux résultats de l'indexeur.

Mots, expressions et modificateurs

Le terme de recherche élémentaire est un mot ou une "expression entre guillemets". Un « mot » peut être :

  • une suite de chiffres,
  • une suite de lettres,
  • des morceaux de mots séparés par des lettres ou chiffres, comme dans txt2regex,
  • des morceaux de mots à l’intérieur d’un nomComposé utilisant camelCase.

Un « mot d’arrêt » est un mot ignoré (parce qu’il est trop commun ou pour d’autres raisons).[2] Un terme de recherche donné est recherché dans le contenu (rendu affiché de la page). Si vous voulez rechercher plutôt dans le wikicode, il faut utiliser le paramètre de recherche insource (voir la section plus bas). Chaque paramètre de le recherche possède son propre index et interprète le terme recherché de sa propre manière.[3]

Les séparations entre les mots, expressions, paramètres et valeurs de paramètres peuvent inclure de nombreux types d’espaces et de « caractères gris ». Les « caractères gris » sont les caractères non-alphanumériques ~!@#$%^&()_+-={}|[]\:";'<>?,./. Un mélange entre caractères gris et espaces donne des « espaces gris », qui sont traités comme des grosses séparation entre les mots. L’espace gris correspond à la manière dont les index sont réalisés et les recherches sont interprétées.[4]

On note deux exceptions :

  1. embedded:colon est un mot (il est traité comme une lettre) ;
  2. une virgule intégrée , comme dans 1,2,3, est traitée comme un nombre.

Pour le reste, les caractères gris sont ignorés, à moins qu’en raison de la syntaxe de la requête, ils soient interprétés comme des modificateurs.

Les modificateurs sont ~ * \? - " ! . Selon leur position dans la syntaxe, ils peuvent s’appliquer à un terme, à un paramètre ou à une requête entière. Les modificateurs de mots et d’expressions sont le métacaractère, la proximité et la recherche floue. Chaque paramètre peut avoir son propre modificateur, mais en général :

  • Une recherche de mot flou ou d’expression floue intègre un tilde ~ en suffixe (et un nombre indiquant le degré).
  • Un tilde ~ préfixe le premier terme d’une requête pour forcer la recherche en empêchant toute redirection potentielle.
  • Un métacaractère à l’intérieur d’un mot est représenté par un point d’interrogation (échappé) \? pour un seul caractère, ou bien une astérisque * pour plusieurs caractères.
  • La logique de vérité peut interpréter les opérateurs AND et OR mais les paramètres ne le peuvent pas. Remarquez que les opérateurs AND et OR actuellement ne fonctionnent pas à la manière de la logique de vérité habituelle ! Pour les détails, voyez les opérateurs logiques.
  • La logique de vérité reconnait - ou ! lorsqu'ils préfixent un terme pour passer de l'habituel « contient le terme » à « exclure le terme ».
Les mots qui commencent par - ou !, comme -in-law ou !Kung peuvent correspondre exactement aux titres et aux redirections, mais aussi à tout document qui ne contient pas le mot nié, ce qui est généralement le cas de presque tous les documents. Pour rechercher des termes autres que des correspondances exactes pour les titres ou les redirections, utilisez le paramètre de recherche insource (voir la section ci-dessous).
  • Les guillemets autour de plusieurs mots expriment la recherche d’une expression exacte. Dans les paramètres, ils sont aussi utilisés pour délimiter les groupes de plusieurs mots.
  • La recherche par radical est automatique mais peut être outrepassée en utilisant une expression exacte.
Les deux métacaractères sont l’étoile et le point d’interrogation (échappé). L’un comme l’autre peuvent être au milieu ou à la fin d’un mot. Le point d’interrogation échappé \? remplace un caractère, et l’étoile * remplace un nombre non défini de caractères. Parce que de nombreux utilisateurs, au lieu d’écrire une requête, posent une question, tous les points d’interrogation sont ignorés sauf s’ils sont correctement échappés \? pour servir de métacaractère.

Une phrase à rechercher peut être entrée de diverses manières pour le moteur de recherche. Chaque méthode d’écriture a des effets de bord sur le niveau de tolérance de la correspondance entre la séquences de mots et les résultats. Pour les recherches de greyspace, camelCase ou txt2number :

  • si « words-joined_by_greyspace(characters) » ou « wordsJoinedByCamelCaseCharacters » sont entrés, words joined by, [...], characters seront recherchés séparément ou assemblés sous forme grisée.
  • « txt2number » retournera des résultats pour txt 2 number et pour txt-2.number.
  • Les mots d’arrêt sont activés pour les mots aux extrémités (périphériques) d’une expression en greyspace ou en camelCase. Par exemple, en utilisant « the », « of » et « a » dans « the_invisible_hand_of_a », on obtient les résultats pour meetings invisible hand shake.

Un message « Rechercher ... à la place » est affiché lorsqu'un mot totalement inconnu est ignoré dans la phrase.

Chacun de ces types de recherche de correspondance comprend et élargit les tolérances de recherche de celle qui précède :

  • Une "expression exacte" "entre guillemets" accepte les espaces gris. Les deux expressions "exact_phrase" ou "exact phrase" font bien apparaître "exact]phrase" parmi les résultats.
  • Une expression_avec_espace_gris déclenche la recherche par radical et les vérifications de la présence de mot d'arrêt.
  • Si l'on tape CamelCase, cela affichera bien camelcase, en minuscules, parce que CirrusSearch n'est pas sensible à la casse.

Le classement des pages vous épargne de mettre des guillemets pour des recherches de deux mots. Sans guillements, un index de paire de mot est utilisé pour le classement des pages, de plus, il permet de trouver ces mots n'importe où sur la page.

Certains paramètres acceptent les expressions avec espaces gris, mais d'autres paramètres, comme insource n'acceptent que les "expressions entre guillemets".

Dans la terminologie de la recherche, la prise en charge de la « recherche par radical » (stemming) signifie qu'une requête pour le mot « nage » inclura aussi « nageant » et « nager », mais pas « natation ».
Requête de recherche parserfunction parserFunction parser function parser-function parser:function parSer:funcTion
parserfunction  N  N  N  N
"parser function"  N  N  N  N
parser_function  N  N  N
parserFunction  N  N
"parser:function"  N  N  N  N
"parser_function"  N  N  N  N
"parSer_funcTion"  N  N  N  N
parSer_FuncTion  N  N

Notez que toute recherche par radical ne tient pas compte de la casse.

Remarquez comment la recherche par expression exacte interprète le deux:points comme une lettre, mais pas le tiret_underscore. Un effet similaire est observable avec la virgule , dans un nombre.

Si vous passez in:this:word, alors CirrusSearch quand il se trouve dans un contexte de phrase exacte, (qui inclut le contexte du paramètre insource), ne détectera pas in, ni this, ni word, mais ne détectera que in:this:word.

Sinon, rappelez vous que pour CirrusSearch les mots sont des lettres, des nombres ou une combinaison des deux, et que la casse n'a pas d'importance.

La recherche de mot communs emploie le caractère espace et est agressive avec la recherche par radical, et quand les mêmes mots sont joints par des caractères d'espace gris ou camelCase ils sont agressifs avec des phrases et des sous-mots.

Lorsque des mots communs comme "de" (of) ou "le" (the) sont inclus dans une phrase d'espace gris, ils sont ignorés, de manière à filtrer de manière plus agressive.

Un terme de recherche greyspace_phrase, ou un terme camelCase, ou un terme txt2number, correspond aux mots signifiés de manière interchangeable. Vous pouvez utiliser n'importe laquelle de ces trois formes.[5] Maintenant camelcase correspond à camelCase parce que la recherche n'est pas sensible à la casse, mais camelCase correspond à camelcase parce que camelCase est plus agressif. Comme le reste de la recherche, les sous-mots qui sont des "mots" ne sont pas sensibles à la casse. Par comparaison, la "phrase exacte" est orientée espace gris et ignore les transitions numériques ou les transitions de casse, ainsi que la recherche par radical. Les phrases citées ne sont pas sensibles à la casse.

A partir de la table, nous pouvons supposer que la recherche de base parser_function -"parser function" est la somme des recherches de base parserFunction et de parserFunction.

En faisant des recherches avec des nombres, nous pourrons donc trouver ceci :

  • Plan9 ou Plan_9 correspond à : plan9, plan9, planned 9th, (planned) 9.2, "plans" (9:24)
  • "plan9" ne correspond qu'à plan9 (insensible à la casse)
  • Plan*9 correspond à plan9 ou à planet4589.

Le caractère étoile de remplacement * correspond à une chaîne de lettres et de chiffres dans un mot rendu, mais jamais le caractère de début. Un ou plusieurs caractères, ou un pourcentage du mot, doivent précéder le caractère *.

  • Si la partie de tête n'est formée que de lettres, alors il limitera la correspondance à (zéro ou plusieurs) lettres.
  • Si ce n'est que des nombres, alors il limitera la correspondance à une séquence de (zéro ou plusieurs) nombres, y compris les lettres ordinales (st de "first", nd de "second", rd de "third"), les lettres majuscules ou les abbréviations de temps (am ou pm); et il detectera dans leur totalité (les deux côtés) des nombres décimaux.
  • Par ailleurs, la virgule est envisagée comme faisant partie d'un nombre, mais le point décimal est considéré un caractère gris, et delimitera deux nombres.
  • Dans une "phrase exacte" il detecte la recherche par radical et la composition.

Le caractère de remplacement \? représente une seule lettre ou un seul chiffre ; le *\? est également accepté, mais \?* n'est pas reconnu.

Les caractères génériques sont pour les mots de base, les phrases et les recherches dans les sources, et peuvent aussi être une alternative aux (certaines) recherches avancées d'expressions régulières (discuté ultérieurement).

Mettre un caractère tilde ~ après un mot ou une phrase active une recherche floue.

  • Pour une phrase, il s'agit d'une recherche d'approximation, car les mots approximatifs sont tolérés dans une phrase approximative plutôt que la phrase exacte.
  • Par exemple, "exact one two phrase"~2 correspond à exact phrase.
  • Pour un mot, cela signifie des caractères supplémentaires ou des caractères "modifiés".
  • Pour une phrase, une recherche floue nécessite un nombre entier lui indiquant le nombre de mots supplémentaires à insérer, mais pour un mot, une recherche floue peut avoir une fraction décimale, par défaut à word~0.5 (word~.5), où au plus deux lettres peuvent être échangées, modifiées ou ajoutées, mais jamais les deux premières lettres.
  • Pour une phrase proche : un grand nombre peut être utilisé, mais c'est une recherche coûteuse (lente).
  • Pour un mot : word~2 est le plus flou avec une distance d'édition de 2 (par défaut), word~1 est le moins flou, et word~0 n'est pas flou du tout.
flowers algernon Flowers for Algernon flowers are for Algernon Flowers a1 2b 3c 4f 5j 6l 7j 8p q9 z10 for Algernon
"flowers algernon"    N  N  N
"flowers algernon"~0    N  N  N
"flowers algernon"~1      N  N
"flowers algernon"~2        N
"flowers algernon"~11        
"algernon flowers"~1  N  N  N  N
"algernon flowers"~2    N  N  N
"algernon flowers"~3      N  N
"algernon flowers"~4        N
"algernon flowers"~13        

Pour trouver la valeur de proximité nécessaire pour faire correspondre dans l'ordre inverse (de droite à gauche); compter et éliminer tous les mots supplémentaires; puis additionner deux fois le nombre total de mots restants moins un. (En d'autres termes, ajoutez deux fois le nombre de segments). Pour l'algorithme de proximité complète, voir Elasticsearch slop.

Les guillemets désactivent la recherche par radical, "but appending"~ le tilde réactive la recherche par radical.

flowers flower Flowers for Algernon flower for Algernon
flowers         La recherche par radical est active.
"flowers"    N    N La recherche de proximité désactive la recherche par radical.
"flowers"~         Proximité plus recherche par radical en suffixant avec un tilde.
"flowers for algernon"  N  N    N La recherche de proximité désactive la recherche par radical.
"flowers for algernon"~  N  N     Proximité plus recherche par radical en suffixant avec un tilde (~).
"flowers algernon"~1  N  N    N La recherche de proximité désactive la recherche par radical.
"flowers algernon"~1~  N  N     Proximité plus recherche par radical en suffixant avec un tilde (~).

Insource

1.24
Gerrit change 137733

Les recherches dans les sources peuvent être utilisées pour trouver n'importe quel mot généré sur une page, mais cela est fait pour trouver n'importe quelle phrase que vous pourriez trouver - y compris les marques MediaWiki, sur toute page sauf celles de redirection. Cette phrase ignore complètement les espaces gris : insource: "state state autocollapse" détectera |state={{{state|autocollapse}}}.

insource: word
insource: "word1 word2"
Les caractères d'espaces gris sont ignorés, tout comme c'est le cas pour les recherches par mots et par phrases exactes.
insource:/regexp/
insource:/regexp/i
Ce sont des expressions régulières. Elles ne sont pas efficaces, donc nous ne pouvons en autoriser que quelques-unes à la fois sur le cluster de recherche, mais elles sont très puissantes. La version avec le i supplémentaire exécute l'expression insensible à la casse, et est même encore moins efficace.

La source d'information se complète. D'une part, il a une recherche en texte intégral pour n'importe quel mot dans le wikitext, instantanément. D'autre part, il peut traiter une recherche d'expression régulière pour n'importe quelle chaîne de caractères.[6] L'expression régulière scanne tous les caractères textuels d'une liste de pages ; ils n'ont pas d'index de mots pour accélérer les choses, et le processus est interrompu s'il doit durer plus de vingt secondes. Le moteur d'expressions régulières s'exécute en dernier, donc pour limiter le balayage inutile de niveau de caractères, vous lui avancez une liste de pages (un domaine de recherche) sélectionnées par une recherche indexée ajoutée à la requête en tant que clause, et vous le faites à chaque requête d'expression régulière.[7] Insource peut jouer les deux rôles, et le meilleur candidat pour insource:/arg/ est souvent insource: arg, où arg a la même valeur.

La syntaxe de l'expression régulière est insource: pas d'espace, puis /regexp/ (aucun autre paramètre n'interdit un espace. Tous les paramètres sauf insource:/regexp/ acceptent généreusement l'espace après le deux-points).

Le rôle de la recherche indexée Insource et celui de la recherche des expressions régulières sont similaires à bien des égards :

  • Les deux recherchent dans le wikitext seulement.
  • Aucun ne trouve de résultat dans les sources transclus.
  • Aucun ne fait de recherche par radical, ni des recherches floues, ni les recherches de proximité.
  • Les deux veulent le moins de résultats, et les deux travaillent plus rapidement lorsqu'ils sont accompagnés d'une autre clause.

Mais les recherches indexées ignorent toutes les espaces gris ; les recherches de caractères génériques ne correspondent pas aux espaces gris, donc les expressions régulières sont le seul moyen de trouver une chaîne exacte de caractères du type « n'importe lequel et tous » les caractères, par exemple une séquence de deux espaces. Les expressions régulières sont une classe entièrement différente d'outils de recherche qui rendent la recherche d'une chaîne littérale facile (utilisation de base, niveau débutant), et rendent possible la recherche des expressions de métacaractères (utilisation avancée) sur le wiki. Voir ici.

Le paramètre insource traite les mots avec des deux-points intégrés comme un seul mot. Cela affecte les requêtes de recherche pour les modèles, les fonctions d'analyseur, les URL, les liens wiki, les balises HTML et les commentaires.
Dans la mesure du possible, évitez d'effectuer une recherche nue d'expression régulière. Voyez comment cela est toujours possible ici.
Pour rechercher des mots commençant par - ou !, comme -in-law ou !Kung, utilisez une requête insource insensible à la casse ainsi qu'une recherche simple sur la version "brute" du terme (pour éviter une simple recherche regexp). Par exemple, "in-law" insource:/-in-law/i ou "kung" insource:/!kung/i.

Prefixes et espaces de noms

Pour Search, un espace de noms représente le terme qui indique aux fonctions le domaine de recherche initial. Au lieu de chercher dans tous le wiki. Par défaut, il s'agit de l'espace de noms principal (mainspace).

Il est seulement possible de définir un espace de noms dans la requête de la boîte de recherche. Il s'agit soit du premier ou du dernier terme du paramètre « prefix ».

Deux ou davantage d'espaces de noms peuvent être explorés dans le panneau Avancé de la barre de recherche qui se trouve en haut de chaque page de résultats de recherche Special:Search. Votre domaine de recherche en tant que profil d'espaces de noms, peut être déclaré ici. La liste des espaces de noms s'affichera toute seule ensuite sur la première page des prochains résultats de recherche pour indiquer de quel domaine de recherche ces résultats sont issus. Pour annuler ceci, sélectionnez l'espace de noms par défaut (affiché entre prenthèses), sélectionnez « Conserver la sélection pour les recherches futures », et cliquez sur « Rechercher ».

La barre de recherche affiche graphiquement et initialise un domaine de recherche. Les "pages de contenu" (principal), "Multimédia" (File), "Tout" (tous plus File), "Translations", etc... sont des hyperliens qui peuvent activer la requête dans le domaine concerné, ou indiquer qu'ils sont inactifs en devenant grisés. Mais la requête prévaut sur le contenu de la barre de recherche. Lorsqu'un espace de noms ou un prefixe est utilisé pour la requête dans la barre de recherche, les activations et les indications peuvent prêter à confusion, donc la barre de recherche et la boîte de recherche sont des façons mutuellement exclusives (et non pas complémentaires) pour positionner les domaines de recherche.

Un nom d'espace de noms prévaut sur la barre de recherche, et un nom de préfixe prévaut sur un espace de noms.

Entrez un espace de noms, all:, ou bien un deux-points : pour l’espace de noms principal. All ne comprend pas l'espace de noms 'File'. File comprend les contenus de type 'media' se trouvant sur Commons tels que les PDF, qui sont tous indexés et recherchables.

Quand vous utilisez File, un modificateur d'espace de noms local: a une influence, sinon il est ignoré.

Les alias d'espaces de noms sont acceptés.

talk: "Wind clock" Trouver les pages de l'espace de noms Talk (discussions) dont le titre ou le texte contient la phrase « wind clock ».
file: "Wind clock" Trouver les de l'espace de noms File , dont le titre, le texte, ou le contenu du média comprend la phrase "wind clock".
file: local: "Wind clock" Filter les résultats du wiki Commons.
local: "Wind clock" Ignoré. Espace de noms de la recherche. Local est ignoré à moins d'avoir inclus File.

Comme pour les paramètres de recherche, local et all doivent être en minuscules. La casse des espaces de noms n'a pas d'importance.

Le paramètre prefix: détecte un nombre quelconque de caractères d'entête, de tous les noms de pages d'un espace de noms donné.[8] Lorsque les premières lettres correspondent à un espace de noms avec deux points, le domaine de recherche change.

En ne donnant seulement qu'un seul espace de noms, le préfixe va couvrir tous les noms des pages qu'il contient. En ne donnant qu'un seul catactère, celui-ci ne peut être un tiret (-) ni une apostrophe(') ni des guillemets ("). Le dernier caractère ne peut pas être un deux points (:).

Pour les noms de pages qui coïncident, les sous-pages correspondantes coïncident également par définition.

Le paramère préfixe ne permet pas d'avoir un espace avant le nom de l'espace de noms, mais autorise un espace avant un nom de page.

prefix:cow Trouver les pages dans l'espace principal dont le titre commence par les trois lettres c o w.
domestic   prefix:cow Trouver les pages dans l'espace principal dont le titre commence par les trois lettres c o w, et qui contiennent le mot « domestic ».
domestic   prefix:cow/ Lister toutes les sous-pages existantes de Cow, mais seulement si elles contiennent le mot « domestic ». C'est une requête très courante qui est fréquemment construite en utilisant un paramètre d'URL spécial appelé prefix=.
domestic   prefix:Talk:cow/ Liste toutes les sous-pages de Talk:cow, mais seulement si elles contiennent le mot « domestic ».
1967   prefix:Pink Floyd/ Liste toutes les sous-pages de Pink Floyd, mais seulement si elles contiennent le mot « 1967 ».

Le paramètre préfixe se trouve à la fin de sorte que les caractères du nom de page peuvent contenir des guillemets (").

L'extension Translate crée une espèce d' espace de noms des traductions dans lequel chaque page a ses versions traduites. Mais à la différence des espaces de noms ou des préfixes qui déterminent le domaine de recherche initial, le paramètre inlanguage est un de ses filtres. (Voir la section suivante.)

Exclure du contenu à partir de l'index de recherche

Vous pouvez exclure du contenu de l'index de recherche en ajoutant class="navigation-not-searchable". Cela indique à CirrusSearch d'ignorer ce contenu dans l'index de recherche (voir tâche T162905 pour connaître le contexte).

Vous pouvez en plus marquer le contenu comme étant de l'information auxilliaire en ajoutant class="searchaux". Cela indique à CirrusSearch de déplacer le contenu à partir du texte principal vers un champ auxilliaire qui a une importance moindre pour la recherche, et mettre l'extrait en surbrillance. Cette différence est utilisée pour les éléments tels que les descriptions des vignettes d'images, les sections 'voir aussi', etc.

Filtres

Un filtre peut avoir plusieurs instances, des instances inversées, et il peut également s'exécuter en tant que filtre autonome d'un domaine de recherche. Une requête est formée de termes qui filtrent un domaine de recherche. Un terme d'espace de noms ou de préfixe n'est pas un filtre parce qu'un espace de noms ne fonctionne pas tout seul, et un préfixe ne peut être inversé.[dubious ]

En ajoutant un autre mot, une phrase , ou un paramètre, vous augmentez le filtrage. Le résultat d'une recherche très précise peut avoir de nombreux filtres oui/non lorsque chaque page apparaissant dans les résultats est prise en compte. (Dans ce cas, le classement n'est pas du tout significatif.) Le filtrage s'applique de manière critique lorsque vous utilisez un terme d'expression régulière; vous devez avoir le moins de pages possible avant d'ajouter une expression régulière (parce qu'il n'y a jamais d'index préparé pour sa recherche).

Les paramètres de recherche ci-dessous sont des filtres.

Insource (décrit ci-dessus) est aussi un filtre, mais insource:/regexp/ n'en n'est pas un. Les filtres et tous les autres paramètres de recherche sont en minuscules. (Les espaces de noms sont une exception, car ils ne sont pas sensibles à la casse.)

Intitle et incategory

Les recherches de mots et de phrases fonctionnent avec les titres ainsi que dans la boîte des catégories, en bas des pages. Mais avec ces paramètres, vous pouvez sélectionner seulement les titres ou seulement les catégories.

  • cow*
    • Trouve les articles dont le titre ou le texte contiennent des mots qui commencent par cow
  • intitle:foo
    • Trouve les articles dont le titre contient « foo ». La recherche par radical est activée pour foo (trouve les dérivés simples : foos, par exemple).
  • intitle:"fine line"
    • Trouve les articles dont le titre contient « fine line ». La recherche par radical est alors désactivée.
  • intitle:foo bar
    • Trouve les articles dont le titre contient « foo » et dont le titre ou le texte contiennent « bar ».
  • -intitle:foo bar
    • Trouve les articles dont le titre NE contient PAS « foo » et dont, par contre, le titre ou le texte contiennent « bar ».
  • incategory:Music
    • Trouve les articles de Catégorie:Music
  • incategory:"music history"
    • Trouve les articles de Catégorie:Music_history
  • incategory:"musicals" incategory:"1920"
    • Trouve les articles qui sont à la fois dans Catégorie:Musicals ET dans Catégorie:1920
  • -incategory:"musicals" incategory:"1920"
    • Trouve les articles qui NE sont PAS dans Catégorie:Musicals mais qui sont dans Catégorie:1920

Intitle et incategory sont d'anciens paramètres de recherche. Incategory ne cherche plus les sous-catégories automatiquement, mais vous pouvez maintenant ajouter plusieurs noms de pages de catégories manuellement.

1.31
Gerrit change 413896

Depuis MediaWiki 1.31-wmf.23 les recherches d'expression régulières sont prises en charge pour intitle :

intitle:/regex/, intitle:/regex/i

Tout ce qui est décrit ici est aussi valable pour ces recherches, y compris les avertissements.

Lorsque c'est possible, évitez surtout d'exécuter une recherche avec une expression régulère vide. Voir comment cela est toujours possible ici.

Deepcategory

La recherche approfondie dans les catégories permet de chercher dans les catégories et les sous-catégories. La profondeur de l'arbre est actuellement limitée à 5 niveaux (configurable) et le nombre maximum de catégories est de 256 (également configurable). La recherche approfondie utilise le service SPARQL Category de WDQS. Les mots clé sont deepcategory ou deepcat. Exemple :

  • deepcat:"musicals"
    • Trouve les articles qui sont à la fois dans la Catégorie:Chanson_en_français et dans n'importe quelle de ses sous-catégories.

Auparavent ce paramètre était implémenté par un gadget : pour obtenir le paramètre de recherche deepcat, pour ajouter automatiquement jusqu'à 70 sous-catégories dans un paramètre incategory, incategory:category1|category2|...|category70,  vous pouvez ajouter une ligne dans votre JavaScript personnalisé.[9]

Linksto

Linksto trouve les liens wiki vers un nom donné, et non pas les liens vers du contenu. L'entrée est le nom de la page sous forme canonique et sensible à la casse. Il doit correspondre exactement à la ligne du titre de la page de contenu, avant toute modification de la casse des lettres du titre. (C'est le {{FULLPAGENAME}}, par exemple pour la page qui contient le texte que vous lisez actuellement, il s'agit de : Help:CirrusSearch/fr.)

Linksto ne trouve pas les redirections. Il ne trouve que les [[wikilinks]], même lorsqu'ils sont créés par un modèle. Il ne trouve pas les liens constitués par une URL, même si cette URL est un lien interne du wiki.

Pour trouver tous les liens wiki vers un « Help:Cirrus Search » , si « Help:Searching » et « H:S » sont des redirections vers lui :

  1. linksto: "Help:Cirrus Search"
  2. linksto: Help:Searching
  3. linksto: H:S

CirrusSearch -linksto: Help:CirrusSearch trouve les articles qui mentionnent « CirrusSearch » mais pas dans un lien wiki.

Hastemplate

Vous pouvez indiquer l'utilisation d'un modèle avec hastemplate: template. Entrez le nom de page canonique pour rechercher toutes les utilisations de ce modèle, mais l'utilisation d'une de ses pages redirigées quelconque trouvera juste ce nom. Les alias des espaces de noms sont acceptés, les majuscules sont ignorées complètement, et les redirections sont trouvées, le tout dans une seule requête (comparez boost-template sans espace de noms par défaut; linksto sans alias d'espace de noms, sensible à la casse, sans les redirections; intitle sans les redirections).

Hastemplate trouve l'utilisation secondaire (ou le modèle méta) d'une page : il recherche les inclusions après l'expansion. C'est la même philosophie que pour les mots et les phrases d'un modèle, mais ici on s'adresse aux modèles à partir d'un modèle. La page sera listée comme ayant ce contenu même si ce contenu n'est pas visible dans le texte wiki.

  • hastemplate: "quality image", trouve les utilisations de « Template:Quality image » dans votre domaine de recherche par défaut (espaces de noms).
  • hastemplate: portal:contents/tocnavbar, trouve les utilisations de l'espace de noms d'un modèle « Contents/TOCnavbar » dans l'espace de noms Portal.

Pour les installations avec l'extension Translate, les recherches hastemplate sont perturbées là où le Template:Translatable template name inclut le nom du modèle d'un modèle traductible. Utilisez insource à la place.

Inlanguage

Pour les installations avec l'extension Translate, inlanguage est important avec les recherches très précises et le comptage des pages.

inlanguage: code de langue

ne fournira les résultats de recherche que pour cette langue uniquement.

Par exemple

  • pour compter toutes les pages en japonais du wiki
all: inlanguage: ja
  • pour exclure les pages en allemand et en espagnol de l'espace de noms Aide (Help)
help: -inlanguage: de -inlanguage: es
  • pour ignorer les traductions (espace de noms Translate), et là où la langue de base est l'anglais, ajoutez
inlanguage:en

Contentmodel

Le mot clé contentmodel: permet de limiter la recherche aux pages d'un modèle de contenu spécifique. Pour les modèles possibles, voir les gestionnaires de contenu. Par exemple :

  • Pour ne voir que les pages JSON :
contentmodel:json

subpageof

Pour trouver des sous-pages.

subpageof: Page parent

Par exemple

  • Pour trouver toutes les sous-pages de CirrusSearch.
subpageof:CirrusSearch
  • Utilisez les guillements si la page parent contient des espaces.
subpageof:"Requests for comment"
A la différence de prefix:, ne mettez pas l'espace de noms du nom de la page dans la valeur du mot clé. Pour restreindre la recherche de sous-pages à un espace de noms particulier, utilisez le filtre sur les espaces de noms.

Pondération des pages

La pondération concerne l'extrait de code, les suggestions et la pertinence de la page. Le poids normal est de un. Une pondération supplémentaire est donnée par les multiplicateurs.

Si vous ne recherchez que des mots, les pages dans lesquelles ils se trouvent dans l'ordre sont promues. Si vous ajoutez des phrases explicites quelconques à votre recherche, ou pour certains autres ajouts, cette fonctionalité de "phrase préférée" n'est pas appliquée.

Morelike

  • morelike:page name 1|page name 2|...|page name n
    • Trouve les articles dont le texte est presque similaire au texte des articles fournis.
  • morelike:wasp|bee|ant
    • Trouve les articles concernant les insectes qui piquent (wasp/guêpe - bee/abeille - ant/fourmi).
  • morelike:template:search|template:regex|template:usage
    • Trouve les modèles à propos de la recherche par expressions régulières pour une utilisation sous forme de modèles sur un wiki.

morelike est un mot clé gourmand, ce qui signifie qu'il ne peut pas être combiné avec d'autre requêtes de recherche. Si vous voulez faire d'autres requêtes, utilisez morelikethis dans votre recherche :

  • morelikethis:bee hastemplate:"featured article"
    • Trouver les articles concernant bees qui utilisent également le modèle « featured article ».

La requête morelike: fonctionne en choisissant un ensemble de mots dans les articles d'entrée et en effectuant une requête avec les mots choisis. Vous pouvez régler son fonctionnement en ajoutant les paramètres suivants à l'URL des résultats de recherche :

  • cirrusMltMinDocFreq : Nombre minimum de documents (par tesson) qui ont besoin d'un terme pour qu'il soit pris en compte.
  • cirrusMltMaxDocFreq : Nombre maximum de documents (par tesson) qui ont un terme pour qu'il soit pris en compte.
  • cirrusMltMaxQueryTerms : Nombre maximal de termes à prendre en considération.
  • cirrusMltMinTermFreq : Nombre minimal de fois que le terme apparaît dans l'entrée du document à prendre en compte. Pour les petits champs (title), cette valeur doit être 1.
  • cirrusMltMinWordLength : Longueur minimale d'un terme à prendre en considération. La valeur par défaut est 0.
  • cirrusMltMaxWordLength : La longueur maximale des mots au-dessus de laquelle les mots seront ignorés. La valeur par défaut est un nombre illimité (0).
  • cirrusMltFields (liste de valeurs séparées par des virgules) : Ce sont les champs à utiliser. Les champs autorisés sont title, text, text, auxiliary_text, opening_text, headings et all.
  • cirrusMltUseFields (true|false) : n'utilisez que les données du champ. Par défaut false : le système extrait le contenu du champ text pour construire la requête.
  • cirrusMltPercentTermsToMatch : Le pourcentage de termes à faire correspondre. La valeur par défaut est de 0,3 (30 %).
  • Exemple : &cirrusMtlUseFields=yes&cirrusMltFields=title&cirrusMltMinTermFreq=1&cirrusMltMinDocFreq=1&cirrusMltMinWordLength=2

Ces réglages peuvent être rendus persistants en remplaçant cirrussearch-morelikethis-settings dans les messages système.

Prefer-recent

En ajoutant prefer-recent: n'importe où dans la requête, vous verrez les derniers articles modifiés affichés un peu plus grands que les promotions classiques pour les règles de classement des pages. Prefer-recent est appliqué uniquement lorsque vous utilisez la valeur par défaut relevance de l'ordre de classement.

Par défaut, la promotion s'applique sur 60% des scores sur un grand intervalle de temps qui couvre 160 jours; ceci peut être indiqué dans la requête par prefer-recent:0.6,160. . Cela fonctionne bien avec les autres règles de classement de page et est destiné à la plupart des recherches.

Vous pouvez utiliser les règles : prefer-recent:boost,recent . Techniquement « boost » est la proportion du score sur l'échelle, et « recent » est la moitié de la durée de vie en jours. La promotion est plus qu'un multiplicateur classique, c'est une progression exponentielle . Le facteur utilisé dans l'exposant représente le temps écoulé depuis la dernière modification.

Par exemple

prefer-recent:,7

Les pages de plus de 7 jours d'ancienneté sont promues de moitié, et celles de plus de 14 jours encore de nouveau de moitié, et ainsi de suite. Pour un simple tri par date pour les résultats d'une recherche très affinée, où l'ordre de classement et la promotion des des pages sont très insignifiants, promouvez simplement l'ensemble de tous les scores.

  • prefer-recent:1,7 (weeks)
  • prefer-recent:1,1 (days)
  • prefer-recent:1,0.0007 (minutes)
  • prefer-recent:1,0.0001 (8.64 seconds)
  • prefer-recent:1,0.00001 (seconds)

Modèles de promotion

Vous pouvez promouvoir les scores des pages en fonction des modèles qu'elles contiennent. Cela peut être fait directement dans la recherche via boost-templates:"" ou vous pouvez définir la valeur par défaut pour toutes les recherches via le nouveau message MediaWiki:cirrussearch-boost-templates.

boost-templates:"" remplace le contenu de cirrussearch-boost-templates si le premier est spécifié. La syntaxe est un peu funky mais a été choisie pour la simplicité. Comme prefer-recent, les modèles de promotion ne sont appliqués que lorsque l'on utilise l'ordre de classement par défaut relevance . Quelques exemples :

File:boost-templates:"Template:Quality Image|200%" incategory:china
Trouve les fichiers dans la Catégorie:Chine ordonnés d'abord selon la qualité des images.
File:boost-templates:"Template:Quality Image|200% Template:Low Quality|50%" incategory:china
Trouve les fichiers dans la Catégorie:Chine avec en premier les images de qualité puis les images de qualité inférieure.
File:boost-templates:"Template:Quality Image|200% Template:Low Quality|50%" popcorn
Trouve les fichiers à propos de popcorn en triant d'abord les images de bonne qualité et en dernier, les images de qualité médiocre. Notez bien qu'en utilisant le message cirrussearch-boost-templates , vous pouvez réduire ceci à simplement popcorn.

N'essayez pas d'ajouter des valeurs décimales aux pourcentages. Elles ne fonctionnent pas et la recherche de scores est telle qu’elles n’ont probablement pas beaucoup d’importance.

Un mot d'avertissement à propos de cirrussearch-boost-templates : si vous ajoutez des pourcentages très très grands ou très petits, ils peuvent perturber le score du texte complet. Pensez, par exemple, si enwiki a promu les articles vedettes d'un million de pour cent. Alors, les recherches de termes mentionnés dans les articles vedettes trouveraient les articles vedettes avant que les titres correspondent exactement aux termes. La concordance des phrases serait également balayée, de sorte qu'une recherche comme brave new world trouverait un article avec ces mots éparpillés dans tout l'article au lieu de l'article pour Brave New World.

Recherche des expressions régulières

Une recherche indexée de base trouve les mots rendus visibles sur une page. La césure, la ponctuation et l'ajout de parenthèses, de barre oblique ou d’autres symboles mathématiques et informatiques ne sont que des limites pour les mots. Il n'est pas possible de les inclure dans une recherche indexée.

Ceci s'exécute très très vite lorsque vous limitez le domaine de recherche de l'expression régulière aux résultats de l'une ou de plusieurs recherches basées sur l'indexation.

  Avertissement : N'exécutez pas de recherche vide insource:/regexp/ . Cela va échouer après environ 20 secondes de toutes manières et bloquer les requêtes des utilisateurs responsables.

Une expression régulière pour la recherche d'une chaîne exacte est une recherche de base; la chaîne sera simplement mise entre guillemets et les caractères non alphanumériques seront échappés avec des barres obliques inversées '\' (backslash). Chaque recherche d'expression régulière nécessite aussi que l'utilisateur crée un filtre simple pour générer le domaine de recherche afin que le moteur d'expressions régulières puisse s'exécuter :

  • insource:"debian.reproducible.net" insource:/debian\.reproducible\.net/
  • insource:"c:\program files (x86)" insource:/C\:\\Program Files \(x86\)/i
  • insource:"<tag>{{template}}</tag>" insource:/"<tag>{{template}}<\/tag>"/
  • insource:"[[title|link label]]'s" insource:/"[[title|link label]]'s"/
  • insource:/regexp/ prefix:{{FULLPAGENAME}}

Le dernier exemple fonctionne à partir d'un lien sur une page, mais {{FULLPAGENAME}} ne fonctionne pas dans la boîte de recherche.

Par exemple : [[Special:Search/insource:/regex/ prefix:{{FULLPAGENAME}}]] recherche le terme regex sur cette page.

Une requête sans espace de noms ni préfixe spécifié recherche votre domaine de recherche par défaut (paramétrable sur n’importe quelle page de résultats de recherche, c’est-à-dire sur Special:Search). Certains utilisateurs conservent leur domaine de recherche par défaut sur tous les espaces de noms, c’est-à-dire sur tout le wiki. Sur un wiki de grande taille, si cet utilisateur effectue une recherche à la base d'une expression régulière nue, il échouera probablement, entraînant l'expiration du délai d'attente HTML, avant de terminer la recherche.

Une recherche d'expression régulière parcourt actuellement les caractères un par un sur chacune des pages du domaine de recherche. Au contraire, une recherche indexée interroge actuellement quelques enregistrements d'une base de données gérée séparément de la base du wiki, et fournit les résultats presque instantanément. Donc lorsque vous utilisez un insource:// (une expression régulière quelconque), prévoyez d'utiliser une règle qui va limiter le plus possible le domaine de recherche de l'expression. De nombreux termes de recherche utilisent un index et fournissent donc instantanément un domaine de recherche plus affiné pour l'expression régulère. Par ordre d'efficacité générale:

  • insource:"" à l'aide des guillemets, dupliquer l'expression régulière sans les slash ni les caractères d'échappement est l'idéal.
  • intitle (sans recherche d'expressions régulières), incategory, et linksto sont des filtres excellents.
  • hastemplate: est un très bon filtre.
  • "word1 word2 word3", avec ou sans les guillemets est valide.
  • namespace: est pratiquement inutile, mais peut permettre à une recherche lente d'expression régulière, de se terminer.

Pour tester une requête avec une expression régulière nue, vous pouvez créer une page avec des modèles de test, puis utiliser le paramètre préfixe avec ce nom de page complet. La correspondance sera mise en surbrillance. Cette page ainsi que ses sous-pages seront recherchées (dans la base de données).

Les termes de la recherche qui n'augmentent pas l'efficacité de la recherche d'une expression régulière sont les opérateurs de score de page : morelike, boost-template, et prefer-recent.

Métacaractères

Cette section décrit la manière d'échapper les métacaractères utilisés dans les recherches des expressions régulières Pour la signification actuelle des métacaractères voir l'explication de la syntaxe. [10]

L'utilisation d'une chaîne exacte nécessite une expression régulière, mais le terme de l'expression régulière oblige que la recherche ait une limite. Ajoutez un terme à l'expression régulière, ne cherchez jamais une expression régulière nue. Commencez en notant le nombre de pages d'une recherche précédente avant de valider une recherche de chaîne exacte. Les requêtes avec une chaîne exacte nécessitent un domaine de recherche filtré.

Par exemple :

  • pour rechercher un espace de noms, évaluez le nombre de pages avec un seul terme qui est un espace de noms. Ceci listera le nombre de pages dans cet espace de noms.
  • pour commencer par chercher à nouveau ce que vous avez déjà pu voir, comme les liens ou les (trans[in]clusion) démarrez avec l'espace de noms et les filtres insource.

Affinage avec une chaîne exacte

  • pour affiner le processus de recherche avec ce que vous désirez voir, comme "2 + 2 = 4", ou "site.org" c'est idéalement la meilleur utilisation des expressions régulières, parce que cela consiste à ajouter pour affiner la recherche, un seul terme à l'expression régulière : le nombre maximum de pages que l'expression régulière doit parcourir pour faire la recherche.

Vous pouvez commencer en essayant la recherche d'une chaîne de caractères exacte, mais gardez à l'esprit :

  • l'expression régulière ne cherche que dans le wiki code et non pas dans le texte généré, donc il y a quelques différences en ce qui concerne le marquage, et même le nombre de caractères espace doit correspondre exactement.
  • Vous devez fournir un filtre d'accompagnement.
  • Vous devez apprendre comment échapper les méta caractères des expressions régulières.

Il y a deux manières d'échapper des méta caractères. Elles sont toutes deux utiles individuellement, et parfois aussi concaténées dans l'échappement d'une chaîne.

  • L'échappement avec des barres obliques inverses, l'un d'entre eux \char. L'expression régulière insource:/regexp/ utilise des barres obliques pour délimier le terme. En donnant /reg/exp/ il y a ambiguité, donc vous devez écrire /reg\/exp/.
  • Mettez une des chaînes entre guillemets "string". Parce que échapper un caractère ne peut pas faire de mal, vous pouvez échapper ainsi tout caractère même ceux comprenant des méta caractères. L'échappement avec des guillemets est plus propre.
  • Vous ne pouvez pas mélanger les méthodes mais vous pouvez les concaténer.

L' échappement avec les guillemets en utilisant insource:/"regexp"/ est une manière facile de chercher plusieurs sortes de chaînes, mais vous ne pouvez pas échapper à l'aide de la barre oblique inverse n'importe quoi à l'intérieur d'une séquence échappée avec des guillemets.

  • /"[[page/name|{{temp-late"/ au lieu de /\[\[page\/name\|\{\{temp\-late/
  • /"literal back\slash"/ est aussi valable que /literal back\/slash/
  • Mais /"This \" fails"/ toujours.
  • Et /"This \/ depends"/. Il trouve littéralement le \/ , qui n'est pas le / que vous vouliez probablement.

L' échappement avec la barre oblique inversée en utilisant insource:/regexp/ permet d'échapper les délimiteurs " et / , mais nécessite de prendre en compte les métacaractères, éventuellement en les échappant :

  • Pour capturer un caractère délimiteur / utilisez \/.
  • Pour capturer un caractère délimiteur ", utilisez \".
  • Les méta caractères échappés seraient \~\@\#\&\*\(\)\-\+\{\}\[\]\|\<\>\?\.\\.
  • L'expression équivalente échappée avec des guillemets est "~@#&*()-+{}[]|\<>?.\".

L'argorithme le plus simple pour créer une expression de recherche basique en utilisant insource:/"regexp"/, n'a pas besoin de prendre en compte les méta characteres à l'exception des caractères " et / :

  1. Générer the/str"ing . (Les /" délimiteurs "/ ne sont pas montrés.)
  2. Remplacez " par "\"" (anciens guillemets: stop, concatenate, quote restart).
  3. Remplacer / par "\/" (stop, concatenate, start).
  4. Vous obtenez insource:/"the"\/"str"\""ing"/, montrant la concaténation des deux méthodes.
Tout en affinant une expression régulière sur une page de résultats de recherche, n'oubliez pas que l'extrait de code wikitext a modifié l'espacement. Les expressions régulières sont sensibles aux espaces, la copie d'extraits est donc dangereuse.

La notation entre crochets pour la création de votre propre classe de caractères échappe également ses métacaractères. Pour cibler un crochet littéral fermant (]) dans votre modèle de classe de caractères, vous devez utiliser une barre oblique inversée échappée, sinon cela peut être interprété comme le délimiteur de fermeture de la définition de modèle de classe de caractères. La première position d'une classe de caractères échappera également au crochet fermant. À l'intérieur des crochets délimitant une classe de caractères, le caractère tiret a également une signification particulière (plage), mais il peut également être inclus littéralement dans la classe de la même manière que le crochet fermant. Par exemple, ces deux modèles détectent un caractère qui est soit un tiret (-) ou un crochet fermant (]) ou un point (.) : [-.\]] or [].\-].

Pour des exemples généraux utilisant les méta caractères :

  • insource:"2+2=4" insource:/"2+2=4"/ détecte "2 + 2 = 4", sans espace entre les caractères.
  • insource:"2 + 2 = 4" insource:/2 ?\+ ?2 ?= ?4\./ détecte sans ou avec un espace intermédiaire. Le signe égale '=' n'est pas un méta caractère, mais le plus '+' l'est effectivement.
  • insource:"<tag>[[link|2\3?]]\</tag>" insource:/"<tag>[[link|2\3?]]<"\/"tag>"/.

Il existe quelques différences notables par rapport aux méta caractères standard des expressions régulières :

  • Le \n ou le \r\n ne sont pas réservés pour détecter les passages à la ligne. Pour rechercher une chaîne qui contient un passage à la ligne, vous pouvez faire une recherche telle que insource:/[^\}]\}\}[^\} \|]{2}\<noinclude/i qui signifie pas une accolade, ni deux accolades, ni deux caractères sauf des accolades, un espace, ou une barre verticale, puis une balise <noinclude> . Le tout caractère sauf inclut le passage à la ligne dans la recherche. Notez bien que cette recherche a été faite pour ne détecter que la chaîne suivante :
}}

<noinclude>
  • Le méta caractère point '.' remlace n'importe quel caractère y compris le passage à la ligne, donc .* capture tout.
  • Le signe numérique dièse (#) signifie quelque chose, et doit être échappé.
  • Les caractères ^ et $ n'ont pas besoin de l'être. Comme "grep" (global par ligne, expression régulière, imprime chaque ligne), chaque insource:// est un « global au document, expression régulière, lister de résultats de la recherche de chaque document » par document.
  • < et > acceptent un intervalle numérique sur plusieurs digits comme le fait [0-9], mais sans se préoccuper du nombre de positions de caractères, ou de l'intervalle pour chaque position, donc <9-10> est accepté, de même que <1-111> aussi.

Expressions régulières sur les titres

Le mot clé insource ne fait que chercher dans le contenu source de la page. Pour exécuter des recherches d'expressions régulières sur les chaînes des titres, intitle:/regex/ peut être utilisé.

Exemple avancé

Par exemple, utiliser des méta caractères pour rechercher l'utilisation d'un modèle appelé Val comportant, dans l'appel du modèle, un paramètre non nommé contenant un nombre éventuellement signé, composé de trois à quatre chiffres, éventuellement entouré d'espaces, et sur la même page, dans un appel de modèle Val, un argument nommé fmt=commas ayant des espaces autorisés autour de lui, (il peut s'agir du même appel de modèle, ou d'un appel séparé) :

hastemplate:val insource:"fmt commas" insource:/\{\{ *[Vv]al *\|[^}]*fmt *= *commas/ insource:/\{\{ *[Vv]al *\|[^}]*[-+]?[0-9]{3,4} *[|}]/

Notez que le signe = dans fmt commas n'est pas utile mais que si vous le mettez vous ne modifiez pas les résultats. Il est rapide car il utilise deux filtres afin que chaque page explorée par l’expression régulière ait le potentiel le plus élevé possible.

Recherche géographique

limitée, dans un rayon

Vous pouvez limiter la recherche aux pages identifiées comme se trouvant à proximité de certaines coordonnées géographiques. Les coordonnées peuvent être soit spécifiées par le couple (lattitude, longitude), ou en fournissant un titre de page à partir duquel les coordonnées peuvent être obtenues. Pour limiter la recherche, préfixez avec la distance si vous le souhaitez. Exemples :

  • neartitle:"San Francisco"
  • neartitle:"100km,San Francisco"
  • nearcoord:37.77666667,-122.39
  • nearcoord:42km,37.77666667,-122.39

par promotion de page

Vous pouvez aussi augmenter le score des pages à l'intérieur d'une zone géographique. La syntaxe est la même que pour la recherche limitée, mais avec le mot boost- préfixé au mot clé. Ceci double effectivement le score des pages à l'intérieur de l'intervalle de recherche, en donnant une meilleure chance aux résultats de la recherche de proximité d'apparaître dans les premiers.

  • boost-neartitle:"San Francisco"
  • boost-neartitle:"100km,San Francisco"
  • boost-nearcoord:37.77666667,-122.39
  • boost-nearcoord:42km,37.77666667,-122.39

Recherche des propriétés de fichier

1.28
Gerrit change 311061

Depuis MediaWiki 1.28, CirrusSearch prend en charge l'indexation et la recherche des propriétés des fichiers de l'espace de noms File: . Ceci inclut :

  • le type du fichier de média
  • le type MIME
  • la taille
  • la largeur et la hauteur
  • la résolution
  • la profondeur de bit pour les fichiers qui l'utilisent
Bien que ces prédicats soient utiles seulement pour les fichiers, ils ne limitent pas par eux-mêmes la recherche à l'espace de noms File: . Il est recommandé d'inclure ces espaces de noms dans une recherche ou de la restreindre à seulement cet espace de noms lorsque l'on utilise ces conditions.

filetype

La recherche du type de fichier permet de trouver les fichiers en fonction de leur classification, tels que les documents de bureau, les vidéos, les images matricielles, les images vectorielles, etc. Voici les types de fichiers qui existent actuellement :

  • UNKNOWN
  • BITMAP
  • DRAWING
  • AUDIO
  • VIDEO
  • MULTIMEDIA
  • OFFICE
  • TEXT
  • EXECUTABLE
  • ARCHIVE

Ceci peut être étendu à l'avenir. Voir aussi les constantes MEDIATYPE_* dans Defines.php.

La syntaxe de la recherche est : filetype:{type}. Exemple:

filetype:video - recherche de toutes les vidéos

La recherche de type de fichier est indépendante de la casse.

filemime

Détecte le type MIME des fichiers. La syntaxe est :

filemime:{MIMEtype} - recherche les fichiers pour ce type de MIME

Si l'argument est avec des guillements, c'est la recherche exacte qui est réalisée. Sans guillements, les correspondances partielles de composants du type de MIME seront également acceptées.

Exemples :

filemime:"image/png" - recherche les fichiers dont le type MIME est exactement image/png

filemime:pdf - recherche tous les documents PDF

La recherche sur le type de MIME n'est pas sensible à la casse.

filesize

Recherche de fichiers ayant la taille donnée, en kilo octets (un kilo octet = 1024 octets). La syntaxe est :

filesize:{number} ou filesize:>{number} - fichier dont la taille correspond au moins à la valeur fournie

filesize:<{number} - fichier dont la taille n'excède pas le nombre fourni

filesize:{number},{number} - fichier dont la taille est comprise entre les nombres fournis

Exemples :

filesize:>20 ou filesize:20 - fichiers de 20 Ko et supérieurs

filesize:<1024 - fichiers plus petits que 1Mo

filesize:100,500 - fichiers dont la taille est entre 100 Ko et 500 Ko

Mesures des fichiers

Il est possible de chercher les dimensions spécifiques des fichiers: largeur, hauteur, résolution (définie comme la racine carrée de : hauteur x largeur), et profondeur de bit. Tous les fichiers ne possèdent pas ces propriétés. La syntaxe est :

{measure}:{number} - fichier dont la mesure correspond au nombre fourni

{measure}:>{number} - fichier dont la mesure correspond au moins au nombre fourni

{measure}:<{number} - fichier dont la mesure correspond au plus au nombre fourni

{measure}:{number},{number} - fichier dont la mesure figure dans l'intervalle des nombres fournis

measure peut valoir :

filew ou filewidth - taille du fichier

fileh ou fileheight - hauteur du fichier

fileres - résolution du fichier (voir ci-dessus)

filebits - profondeur de bit du fichier

Exemples :

filew:>800 fileh:>600 - fichier dont la taille est au moins de 800x600 pixels

filebits:16 - fichiers dont la profondeur de couleurs est de 16 bits

fileheight:100,500 - fichier entre 100 et 500 pixels de hauteur

Recherches dans Wikibase

L'extension Wikibase définit certains mots clé pour faciliter la recherche de certains éléments dans la base de données du wiki. Actuellement elle est nécessaire seulement pour les sites Wikidata . Voir Help:WikibaseCirrusSearch pour les détails.

Résultats de recherches inter wiki

La recherche sur les projets Wikimedia comprend les résultats de recherche inter wiki améliorés (connus également comme résultats de recherche inter wiki, résultats de recherche des projets frères).

Ordres de tri explicites

En plus du tri par défaut basé sur la pertinence, CirrusSearch peut fournir des résultats à quelques autres ordres de tri. En spécifiant un ordre de tri différent de relevance vous désactiverez tous les mots clé de la recherche qui affectent l' évaluation par score, tels que prefer-recent ou boost-templates. Les mots clé seront encore analysés syntaxiquement mais n'auront pas d'effet.

Les options de tri sont disponibles actuellement à partir de l'API MediaWiki en fournissant le paramètre srsort.

Les options de tri peuvent être ajoutées manuellement à une URL de recherche en ajoutant &sort=order, par exemple https://www.mediawiki.org/w/index.php?search=foo&sort=last_edit_desc.

Les ordres de tri valides incluent :

Ordre de tri Description
incoming_links_asc Du plus petit nombre de liens entrants au plus grand. Approximativement du moins populaire à celui qui en est le plus.
incoming_links_desc Du nombre de liens entrants le plus grand au plus petit. Approximativement, du plus populaire à celui qui en est le moins.
last_edit_asc Du moins récent au plus récent modifié
last_edit_desc Du moins récent au plus récent modifié
create_timestamp_asc Du moins récent au plus récent créé
create_timestamp_desc Du plus récent créé au moins récent
just_match Un simple tri de pertinence basé seulement sur la correspondance du texte
relevance Un tri de pertinence prenant en compte de nombreuses fonctionnalités du document
random Rendu aléatoire
none Non trié, listes triées arbitrairement. Préféré lorsque les résultats sont très nombreux.

Interface pour les options avancées

 
Interface de recherche avancée

L'extension AdvancedSearch ajoute une interface améliorée à la page de recherche permettant l'utilisation de plusieurs options décrites ci-dessus sous une forme conviviale. Voir ici pour le manuel utilisateur.

Voir aussi

  • Voire Search/Old#Timeline pour davantage d'informations sur le développement et les débuts de CirrusSearch.
  • Voir Aide à la recherche pour MWSearch, utilisé sur la plupart des wikis qui n'ont pas l'extension search.

Liens externes

Notes et références

  1. Notez que le sous-titre du site ne fait pas partie du contenu effectif. Pour visionner le contenu qui peut être cherché pour une page, ajoutez ?action=cirrusdump à l’URL.
  2. Les mots d’arrêt sont rarement appelés avec CirrusSearch, excepté lorsqu’ils font partie de certains types d’expressions, comme expliqué plus bas.
  3. Les paramètres CirrusSearch n’utilisent pas une manière uniforme de traiter ces termes de recherche.
  4. Le même analyseur utilisé pour indexer le wikicode est aussi utilisé pour analyser les requêtes.
  5. Par exemple, les termes communs de ce wiki (Mediawiki.org) sont cherchés de façon redondante :
    • udp2log ou udp2log2 (le 2 supplémentaire affecte le classement)
    • html2wt ou wt2html
    • log2ip ou ip2log
    Ce qui donne : test2wiki, wiki2xml, wiki2dict, apache2handler, apache2ctl, etc.
  6. Les expressions régulières CirrusSearch n'adressent pas directement le caractère de passage à la ligne, mais un point . correspondra à une nouvelle ligne.
  7. Une recherche d'expression régulière qui n'aboutit pas ne peut pas désactiver la recherche, mais peut bloquer la recherche d'expression régulière d'une autre personne.
  8. Le préfixe ne correspond pas aux premiers caractères des noms complets des pages, donc vous ne pouvez pas dans la même requête, chercher dans deux espaces de noms à la fois simplement parce qu'ils commencent par les mêmes lettres, comme par exemple espace de noms et espace de noms de discussion.
  9. Editez votre JavaScript personnalisé, en ajoutant
    mw.loader.load( "//de.wikipedia.org/wiki/MediaWiki:Gadget-DeepCat.js&action=raw&ctype=text/javascript" );
    Voir tâche T37402.
  10. Pour la définition formelle voir la grammaire Lucene pour les expressions régulières.