Nápověda:CirrusSearch
Poznámka: Úpravou této stránky souhlasíte s uvolněním vašeho příspěvku pod licencí CC0. Více informací získáte na stránce nápovědy veřejné domény. |
Nejrychlejší způsob, jak najít informace v projektech Wikimedie, je přímé vyhledání. Na každé stránce je pole hledat.
CirrusSearch je rozšíření MediaWiki, které využívá Elasticsearch k poskytování vylepšených vyhledávacích funkcí oproti výchozímu vyhledávání MediaWiki. Nadace Wikimedia používá CirrusSearch pro všechny projekty Wikimedie. Tento článek popisuje vlastnosti CirrusSearch. Pokud zde není vaše otázka zodpovězena, můžete ji položit na diskusní stránce a někdo vám na ni odpoví.
Informace o rozšíření MediaWiki naleznete na stránce Rozšíření:CirrusSearch .
Pro jeho použití na Wikidata, se podívejte na Help:Extension:WikibaseCirrusSearch .
Jak na to
Zadejte klíčová slova a fráze a stiskněte Enter nebo Return na klávesnici.
Pokud má stránka stejný název, jaký jste zadali, budete na tuto stránku přesměrováni. V opačném případě prohledá všechny stránky na wiki a zobrazí seznam článků, které odpovídají vašim hledaným výrazům, nebo zprávu informující, že žádná stránka neobsahuje všechna klíčová slova a fráze.
Pokud kliknete na tlačítko "Hledat", aniž byste cokoliv vyplnili, budete přesměrováni na stránku "Special:Search", která vám nabízí další možnosti vyhledávání (také dostupné z libovolného seznamu výsledků vyhledávání)
Může být užitečné omezit vyhledávání na stránky v určitém jmenném prostoru, např. hledat pouze na stránkách User. Zkontrolujte jmenné prostory, které pro toto vyhledávání požadujete.
Co se zlepšilo?
CirrusSearch poskytuje tři hlavní zlepšení oproti výchozímu vyhledávači MediaWiki a to:
- Lepší služby pro vyhledávání v různých jazycích.
- Rychlejší obnovení indexování, takže změny ve článcích se odrazí ve výsledcích vyhledávání daleko dříve.
- Rozšíření na šablony a tím i veškerý obsah zapsaný v šablonách se nyní zobrazí i ve výsledcích hledání.
Jak často se aktualizuje index vyhledávání?
Je třeba zvážit dva primární vyhledávací indexy:
První je fulltextové vyhledávání, na Special:Search. Tento index je aktualizován téměř v reálném čase. Změny stránek by se měly zobrazit ve výsledcích vyhledávání okamžitě. Změny šablon by se měly u článků, které šablonu obsahují, projevit během několika minut, ale může to také trvat až několik hodin v závislosti na počtu stránek používajících šablonu. Editace beze změny článku prosadí změny šablon, ale není to třeba, pokud nedojde k chybě.
Druhým indexem, který je třeba zvážit, je fuzzy automatické dokončování vyhledávání titulů. Tento index je aktualizován jednou denně a odráží to, co bylo nalezeno v indexu fulltextového vyhledávání v době aktualizace indexu. V závislosti na načasování může trvat dva dny, než bude nová stránka nalezena v automatickém doplňování fuzzy titulků. Pokud je to pro konkrétní případ použití nepřijatelné, lze v rámci možností vyhledávání uživatelů změnit dokončení názvu na klasické vyhledávání prefixů, které využívá index fulltextového vyhledávání.
Návrhy na vyhledávání
Návrhy vyhledávání, které se vám zobrazí, když zadáte text do vyhledávacího pole, které rozbalí kandidátské stránky, jsou seřazeny podle hrubé míry kvality článku. To bere v úvahu počet příchozích wikilinků, velikost stránky, počet externích odkazů, počet nadpisů a počet přesměrování.
Návrhy vyhledávání lze přeskočit a dotazy přejdou přímo na stránku s výsledky vyhledávání.
Před dotaz přidejte vlnovku ~
.
Příklad "~Frida Kahlo".
Návrhy vyhledávání se budou i nadále zobrazovat, ale stisknutím klávesy Enter se kdykoli dostanete na stránku s výsledky vyhledávání.
Přízvuk/diakritika jsou pro některé jazyky zapnuty. Podrobnosti jsou specifické pro daný jazyk.
The algorithm used to rank suggestions is described in more detail at Extension:CirrusSearch/CompletionSuggester#Ranking criteria.
Fultextové vyhledávání
"Fulltextové vyhledávání" je "indexované vyhledávání". Všechny stránky jsou uloženy ve wiki databázi a všechna slova na stránkách bez přesměrování jsou uložena ve vyhledávací databázi, která je indexem prakticky celého textu wiki. Každé viditelné slovo je indexováno v seznamu stránek, kde se nachází, takže hledání slova je stejně rychlé jako vyhledání jediného záznamu.[1] Kromě toho, pro jakékoli změny ve znění, je index vyhledávání aktualizován během několika sekund.
Existuje mnoho rejstříků "plného textu" wiki, které usnadňují mnoho typů potřebných vyhledávání. Celý wikitext je mnohokrát indexován do mnoha speciálních rejstříků, z nichž každý analyzuje wikitext jakýmkoli a různým způsobem optimalizuje jeho použití. Příklady indexů zahrnují:
- "Doplňkový" text, zahrnuje horní poznámky, titulky, ToC a jakýkoli wikitext klasifikovaný pomocí HTML atributu class=searchaux.
- Úvodní text je wikitext mezi horní částí stránky a prvním nadpisem.
- Text "kategorie" indexuje výpisy ve spodní části.
- Šablony jsou indexovány. Pokud se přeložená slova šablony změní, aktualizují se všechny stránky, které ji převádějí. (To může trvat dlouho v závislosti na frontě úloh.) Pokud se změní podšablony používané šablonou, index se aktualizuje.
- Obsah dokumentu, který je uložen ve jmenném prostoru File/Media, je nyní indexován. Jsou rozpoznány tisíce formátů.
Je zde podpora pro většinu jazyků, která se rozšiřuje o další. Na webu elasticsearch.org je seznam momentálně podporovaných jazyků, podívejte se na jejich dokumentaci přispívání zasíláním požadavků nebo oprav. K podpoře dalších jazyků, které Elasticsearch nepokrývá, se také používají open-source knihovny třetích stran.
CirrusSearch optimalizuje váš dotaz a spustí jej. Výsledné tituly jsou váženy podle relevance a intenzivně post-zpracovány, 20 najednou, pro stránku s výsledky vyhledávání. Z článku se shromažďují například úryvky a hledané výrazy jsou zvýrazněny tučně.
Výsledky vyhledávání budou často doprovázeny různými předběžnými zprávami. Patří mezi ně Měli jste na mysli (oprava pravopisu), a pokud by jinak nebyly nalezeny žádné výsledky, zobrazí se Zobrazují se výsledky pro (oprava dotazu) a hledat místo toho (váš dotaz).
Funkce vyhledávání také zahrnují:
- Řazení navigačních návrhů podle počtu příchozích odkazů.
- Počínaje znakem vlnovky
~
pro deaktivaci navigace a návrhů takovým způsobem, aby bylo zachováno hodnocení stránky. - Chytré porovnávání znaků normalizací (nebo "skládáním") neklávesnicových znaků do znaků klávesnice.
- Shodující se slova a fráze jsou na stránce s výsledky vyhledávání zvýrazněny tučně. Zvýrazňovač je kosmetický analyzátor, zatímco analyzátor indexování vyhledávání stránku skutečně najde, a ta nemusí být 100% synchronizovaná, zejména u regulárních výrazů. Zvýrazňovač může odpovídat více či méně přesněji než indexátor.
Slova, fráze a modifikátory
Základní hledaný výraz je slovo nebo "fráze v uvozovkách". Podrobnosti se liší podle jazyka, zejména u jazyků bez mezer, ale vyhledávání obvykle rozpozná "slovo" jako:
- řetězec číslic
- řetězec písmen
- dílčí slova v přechodech mezi písmeny a číslicemi, například v txt2regex
- podslova uvnitř složeného názvu pomocí camelCase
"Stop word" (stop slovo) je slovo, které je ignorováno (protože je běžné nebo z jiných důvodů). Seznam stop words je specifický pro jazyk a ne všechny jazyky podporují stop slova.[2] Daný hledaný výraz se shoduje s obsahem (vykresleným na stránce). Chcete-li místo toho najít shodu s wikitextem, použijte vyhledávací parametr insource (viz sekce níže). Každý parametr vyhledávání má svůj vlastní index a interpretuje daný termín svým vlastním způsobem.[3]
Mezery mezi slovy, frázemi, parametry a vstupy do parametrů mohou obsahovat velké množství bílých znaků a šedých znaků (greyspace characters). "Šedé znaky" jsou všechny nealfanumerické znaky ~!@#$%^&()_+-={}|[]\:";'<>?,./. Smíšený řetězec šedých znaků a bílých znaků je "šedý prostor" (greyspace) a je považován za jednu velkou hranici slova. Greyspace je způsob, jakým se vytvářejí indexy a interpretují dotazy.[4]
Dvě výjimky jsou případy, kdy 1) vložená:dvojtečka je jedno slovo (zachází se s ním jako s písmenem) a 2) vložená čárka ,, jako například v 1,2,3, je považována za číslo. Znaky šedého prostoru jsou jinak ignorovány, pokud je nelze kvůli syntaxi dotazu interpretovat jako modifikační znaky.
Modifikátory jsou ~ * \? - " ! . V závislosti na jejich umístění v syntaxi se mohou vztahovat na termín, parametr nebo na celý dotaz. Modifikátory slov a frází jsou vyhledávány pomocí zástupných znaků, promixity (vyhodnocování blízkosti) a fuzzy vyhledávání (vyhledávání přibližných shod). Každý parametr může mít své vlastní modifikátory, ale obecně platí:
- Hledání fuzzy slov nebo fuzzy frází může mít jako příponu znak tilda
~
(plus číslo udávající stupeň). - Znak tilda $tilda před prvním výrazem dotazu zaručuje výsledky hledání namísto jakékoli možné navigace.
- Zástupný znak uvnitř slova může být ukončující otazník \? pro jeden znak nebo hvězdička * hvězdička pro nula nebo více znaků.
- Truth-logic (pravdivostní logika) umí interpretovat AND a OR, ale parametry už ne. Všimněte si, že operátory AND a OR v současnosti nefungují tradičním způsobem truth-logic! Podrobnosti viz logické operátory.
- Truth-logic ví, že - nebo ! předponou před termínem se invertuje obvyklý význam termínu z "match" (shoda) na "exclude" (vyloučit).
- Quotes (citace) kolem slov označují hledání "přesné fráze". U parametrů jsou také potřebné k oddělování víceslovného vstupu.
- Stemming (odvozování) je automatický, ale lze jej vypnout pomocí "exact phrase" (přesné fráze).
Hledání fráze může být zahájeno různými nápovědami pro vyhledávač. Každá metoda nápověd má vedlejší účinek na to, jak tolerantní bude shoda slovní sekvence. Tipy pro greyspace, camelCase nebo txt2number:
- daný words-joined_by_greyspace(characters) nebo wordsJoinedByCamelCaseCharacters najde words joined by ... characters, v jejich holé formě nebo ve formě šedého prostoru.
- txt2number bude odpovídat
txt 2 number
nebotxt-2.number
. - Zastavovací slova jsou povolena pro okrajové případy (na periferii) fráze grey_space nebo camelCase. Příkladem použití the, of a a je, že the_invisible_hand_of_a odpovídá
invisible hand
v textumeetings invisible hand shake
.
Hlášení "search instead" (hledej místo toho) se spustí, když je ve frázi ignorováno všeobecně neznámé slovo.
Každý z následujících typů frázové shody obsahuje a rozšiřuje toleranci shody předchozího:
- "Přesná fráze" "v uvozovkách" bude tolerovat (shodovat se) šedý prostor. Zadaný "exact_phrase" nebo "exact phrase" odpovídá
"exact]phrase"
. - Greyspace_phrase iniciuje kontrolu stop a stop word.
- Daný CamelCase bude dodatečně odpovídat
camelcase
, všechna písmena malá, protože CirrusSearch nerozlišuje malá a velká písmena při shodě. Upozorňujeme, že shoda CamelCase není povolena pro všechny jazyky.
Některé parametry interpretují fráze šedého prostoru, ale jiné parametry, například insource
, interpretují pouze obvyklou "frázi v uvozovkách".
Hledaná fráze | parserfunction | parserFunction | parser function | parser-function | parser:function | parSer:funcTion |
---|---|---|---|---|---|---|
parserfunction | ||||||
"parser function" | ||||||
parser_function | ||||||
parserFunction | ||||||
"parser:function" | ||||||
"parser_function" | ||||||
"parSer_funcTion" | ||||||
parSer_FuncTion |
Všimněte si, že všechny stemmingy nerozlišují malá a velká písmena.
Všimněte si, jak vyhledávání "přesné fráze" (exact phrase) interpretovalo vložené znaky : COLON znak, ale nikoli znak vloženého_underscore . Podobná událost se vyskytuje u znaku čárky uvnitř čísla.
Vzhledem k innthisword, cirrussearch, když v kontextu "přesné fráze" (který obsahuje kontext parametru 'insource'), nebude odpovídat in
, this
nebo word
, ale pak se bude shodovat pouze in:this:word
.
V opačném případě si pamatujte, že pro slova cirrussearch 'jsou písmena, čísla nebo kombinace těchto dvou' .
Společné vyhledávání slov využívá prostorový znak a je agresivní k zastavení, a když jsou stejná slova spojena znaky greyspace nebo camelCase, jsou agresivní s frázemi a subwordy.
Pokud jsou běžná slova jako "of" nebo "the" zahrnuta do fráze greyspace, jsou ignorována, aby odpovídala agresivněji.
Vyhledávací termín greyspace_phrase nebo camelcase nebo termín TXT2NUMB, se znatelně shodují. Můžete použít kteroukoli z těchto tří formulí.[5] Nyní camelcase odpovídá camelCase, protože vyhledávání není citlivé na případ, ale camelCase odpovídá camelcase, protože camelCase je agresivnější. Stejně jako ve zbytku Vyhledávání se u podslova "words" nerozlišují velká a malá písmena. Pro srovnání, "přesná fráze" je orientována na šedý prostor a ignoruje numerické přechody nebo přechody mezi velkými a malými písmeny a stemming. "Fráze v uvozovkách" nerozlišují velká a malá písmena.
Z tabulky můžeme usuzovat, že základní hledání parser_function -"parser function" je součtem základních hledání parserFunction
a parser<stems> function<stems>
.
Při dotazech na čísla bychom zjistili, že:
- Plan9 nebo Plan_9 odpovídá libovolnému z:
plan9
,plans 9
,planned 9th
,(planned) 9.2
,"plans" (9:24)
- "plan9" odpovídá pouze
plan9
(nerozlišují se malá a velká písmena) - Plan*9 odpovídá
plan9
neboplanet4589
.
Zástupný znak hvězdička * odpovídá řetězci písmen a číslic ve vykresleném slově, ale nikdy počátečnímu znaku. Před znakem * musí být jeden nebo více znaků.
- Když * odpovídá číslům, čárka je považována za součást jednoho čísla, ale desetinná čárka je považována za šedý znak a odděluje dvě čísla.
- Uvnitř "přesné fráze" je * považováno za znak šedé mezery, nikoli jako zástupný znak, takže odděluje slova.
Zástupný znak \? představuje jedno písmeno nebo číslo. *\? je také přijat, ale \?* není rozpoznán.
Zástupné znaky jsou pro základní vyhledávání slov, frází a zdrojů a mohou být také alternativou k (některým) pokročilým vyhledáváním regulárních výrazů (probráno později).
Vložením znaku tilda ~ za slovo nebo frázi aktivujete fuzzy vyhledávání.
- Pro frázi se to nazývá vyhledávání blízkosti, protože proximální slova jsou tolerována spíše jako přibližná než přesná fráze.
- Například "exact one two phrase"~2 odpovídá
exact phrase
. - Pro word to znamená znaky navíc nebo změněné znaky.
- Pro frázi fuzzy vyhledávání vyžaduje celé číslo, které říká, kolik dalších slov se má vejít, ale pro slovo může mít fuzzy vyhledávání desetinný zlomek, defaulting až word~0.5 (word~.5) , kde lze nalézt zaměněná, změněná nebo přidaná nejvýše dvě písmena, nikdy však první dvě písmena.
- Pro blízkost fráze může být použito velké číslo, ale to je "náročné" (pomalé) hledání.
- Pro slovo word~2 je nejvíce fuzzy s editační vzdáleností 2 (výchozí) a word~1 je nejméně fuzzy a word~0 není fuzzy vůbec.
flowers algernon | Flowers for Algernon | flowers are for Algernon | Flowers a1 2b 3c 4f 5j 6l 7j 8p q9 z10 for Algernon | |
"flowers algernon" | ||||
"flowers algernon"~0 | ||||
"flowers algernon"~1 | ||||
"flowers algernon"~2 | ||||
"flowers algernon"~11 | ||||
"algernon flowers"~1 | ||||
"algernon flowers"~2 | ||||
"algernon flowers"~3 | ||||
"algernon flowers"~4 | ||||
"algernon flowers"~13 |
Pro hodnotu podobnosti potřebnou k porovnání v obráceném pořadí (zprava doleva) spočítejte a zahoďte všechna slova navíc a poté přidejte dvojnásobek celkového počtu zbývajících slov mínus jedna. (Jinými slovy, přidejte dvojnásobný počet segmentů). Úplný algoritmus přiblížení viz Elasticsearch slop.
Citace vypínají stopování, "but appending"~ vlnovka reaktivuje stopování.
flowers | flower | Flowers for Algernon | flower for Algernon | ||
flowers | Stemming je v platnosti. | ||||
"flowers" | Proximity search vypne stemming. | ||||
"flowers"~ | Blízkost plus odvozování pomocí přípony vlnovky. | ||||
"flowers for algernon" | Proximity search vypne stemming. | ||||
"flowers for algernon"~ | Blízkost plus odvozování pomocí přípony vlnovky. | ||||
"flowers algernon"~1 | Proximity search vypne stemming. | ||||
"flowers algernon"~1~ | Blízkost plus odvozování pomocí přípony vlnovky. |
Zdroj
≥ 1.24 Gerrit change 137733 |
Insource vyhledávání lze použít k nalezení libovolného slova vykresleného na stránce, ale je určeno k nalezení jakékoli fráze, kterou můžete najít - včetně MediaWiki markup (také známý jako wikikód), na jakékoli stránce kromě přesměrování. Tato fráze zcela ignoruje šedý prostor: insource: "state state autocollapse" odpovídá |state={{{state|autocollapse}}}
.
insource: word insource: "word1 word2" |
Znaky šedého prostoru jsou ignorovány, stejně jako při hledání slov a hledání přesných frází. |
insource:/regexp/ insource:/regexp/i |
Toto jsou regulární výrazy. Nejsou efektivní, takže ve vyhledávacím clusteru jich může být najednou jen několik, ale jsou velmi výkonné. Regulární výraz ve výchozím nastavení rozlišuje malá a velká písmena; nerozlišování velkých a malých písmen lze zvolit pomocí extra i , což je ještě méně efektivní.
|
Insource se doplňuje. Na jedné straně má fulltextové vyhledávání libovolného slova ve wikitextu okamžitě. Na druhou stranu dokáže zpracovat hledání regulárních výrazů pro libovolný řetězec znaků.[6] Regexy skenují všechny textové znaky v daném seznamu stránek. Nemají slovní index pro urychlení a proces se přeruší, pokud běží déle než dvacet sekund. Regexy běží v dotazu jako poslední, takže pro omezení zbytečného skenování na úrovni znaků by měl každý dotaz s regulárním výrazem obsahovat další hledané výrazy, aby se omezil počet dokumentů, které je třeba skenovat.[7] Často nejlepším kandidátem pro přidání do dotazu na regulární výraz insource:/arg/ je insource:arg, kde arg je stejný (a nepoužívá žádné zástupné znaky).
Syntaxe pro regulární výraz je insource: bez mezery a poté /regexp/. (Žádný jiný parametr nepovoluje mezeru. Všechny parametry kromě insource:/regexp/ přijímají mezeru za dvojtečkou.)
Role insource indexed-search a regexp-search jsou v mnoha ohledech podobné:
- Oba vyhledávají pouze wikitext.
- Ani jeden nenajde věci "zdrojované" pomocí transclusion.
- Ani vyhledávání podle stopky, fuzzy nebo blízkosti.
- Oba chtějí co nejméně výsledků a oba pracují rychleji, když je doplní další klauzule.
Všechna indexovaná vyhledávání však ignorují šedý prostor; hledání zástupných znaků neodpovídá šedému prostoru, takže regulární výrazy jsou jediným způsobem, jak najít přesný řetězec všech a všech znaků, například posloupnost dvou mezer. Regexy jsou zcela odlišnou třídou vyhledávacích nástrojů, které usnadňují porovnávání doslovného řetězce (základní použití pro začátečníky) a umožňují porovnávání podle výrazů metaznaků (pokročilé použití) na wiki. Viz #Vyhledávání regulárních výrazů níže.
"in-law" insource:/-in-law/i
nebo "kung" insource:/!kung/i
.
Předpona a jmenný prostor
Přidání termínu jmenného prostoru jako soubor:
k vyhledávacímu dotazu omezuje výsledky na konkrétní jmenný prostor namísto prohledávání celé wiki.
Výchozí jmenný prostor je "Main" (hlavní).
Z dotazu vyhledávacího pole lze nastavit pouze jeden název jmenného prostoru.
Musí to být první výraz v dotazu, nebo pokud je použit jako součást výrazu prefix:
, musí se objevit jako poslední výraz v dotazu.
Dva nebo více jmenných prostorů lze prohledávat z podokna Pokročilé na vyhledávací liště nacházející se v horní části každé stránky s výsledky vyhledávání, Special:Search. Zde lze nastavit vaši vyhledávací doménu jako profil jmenných prostorů. Seznam jmenných prostorů se pak zobrazí na první stránce budoucích výsledků hledání, aby označil doménu hledání výsledků hledání. Chcete-li toto nastavení zrušit, vyberte výchozí jmenný prostor (uvedený v závorkách), vyberte "Remember" (pamatovat) a stiskněte Search (hledat).
Vyhledávací lišta graficky nastavuje a označuje vyhledávací doménu. "Stránky s obsahem" (hlavní prostor), "Multimédia" (Soubor), "Vše" (všechno plus Soubor), "Překlady" atd. jsou hypertextové odkazy, které mohou aktivovat dotaz v dané doméně a následně toto indikovat tím, že se stane neaktivním (tmavým). Dotaz však přepíše vyhledávací pole. Když je v dotazu použit jmenný prostor nebo předpona, aktivace a indikace vyhledávací lišty mohou být zavádějící, takže vyhledávací lišta a vyhledávací pole se vzájemně vylučují (nikoli doplňují) způsoby, jak nastavit vyhledávací doménu.
Termín jmenného prostoru přepíše vyhledávací lištu a výraz prefix:
přepíše jmenný prostor.
Chcete-li zadat název jmenného prostoru, přidejte před něj dvojtečku, např., talk:
.
Použijte all:
k prohledávání všech jmenných prostorů nebo :
(jednotečka) k prohledávání pouze jmenného prostoru hlavního článku.
Termín all:
nezahrnuje jmenný prostor File: Který zahrnuje mediální obsah uložený na Commons, jako je PDF, které jsou všechny indexované a lze v nich vyhledávat.
Když je zahrnut soubor, má účinek modifikátor jmenného prostoru local:
, jinak je ignorován.
Stejně jako u parametrů vyhledávání musí být local:
a all:
malá písmena.
Názvy jmenných prostorů však nerozlišují malá a velká písmena.
Aliasy jmenného prostoru jsou přijímány.
talk: "Wind clock" | Najděte stránky ve jmenném prostoru Talk, jejichž název nebo text obsahuje frázi "wind clock". |
file: "Wind clock" | Najít stránky ve jmenném prostoru File, jejichž název, text nebo mediální obsah obsahuje frázi "wind clock". |
file: local: "Wind clock" | Odfiltrujte výsledky z Commons wiki. |
local: "Wind clock" | Ignorováno. Prohledává hlavní prostor. Místní je ignorován, pokud není zahrnut soubor. |
prefix:
Parametr prefix:
odpovídá libovolnému počtu prvních znaků všech názvů stránek v jednom jmenném prostoru.[8]
Když se první písmena shodují s názvem oboru názvů a dvojtečkou, doména vyhledávání se změní.
Zadaný pouze jmenný prostor bude prefix:
odpovídat všem jeho názvům stránek. Zadaný pouze jeden znak to nemůže být -
(pomlčka) nebo '
(uvozovka) nebo "
(dvojitá uvozovka). Poslední znak nemůže být dvojtečka.
U názvů stránek, které se shodují, se názvy podstránek shodují podle definice.
Parametr prefix:
nepovoluje mezeru před jmenným prostorem, ale povoluje mezery před názvem stránky.
Tento výraz je vždy na konci, takže znaky názvu stránky mohou obsahovat uvozovky ("
).
prefix:cow | Najít stránky v hlavním jmenném prostoru, jejichž název začíná třemi písmeny c o w. |
domestic prefix:cow | Najít stránky v hlavním jmenném prostoru, jejichž název začíná třemi písmeny c o w, a obsahují slovo "domestic". |
domestic prefix:cow/ | Seznam všech existujících podstránek Cow, ale pouze pokud obsahují slovo "domestic". Toto je velmi častý vyhledávací výraz a je často zhotoven použitím speciálního parametru URL prefix=. |
domestic prefix:Talk:cow/ | Uveďte všechny podstránky Talk:cow, ale pouze pokud obsahují slovo "domestic". |
1967 prefix:Pink Floyd/ | Uveďte všechny podstránky Pink Floyd, ale pouze pokud obsahují také slovo "1967". |
Rozšíření Translate vytváří jakýsi "jazykový jmenný prostor" přeložených verzí stránky. Ale na rozdíl od jmenného prostoru nebo prefixu, které vytvářejí počáteční vyhledávací doménu, je parametr inlanguage jejím filtrem. (Viz další část.)
Vyloučení obsahu z indexu vyhledávání
Obsah lze vyloučit z indexu vyhledávání přidáním class="navigation-not-searchable"
. Tím dá CirrusSearch pokyn, aby se tento obsah z indexu vyhledávání ignoroval (další kontext viz úkol T162905).
Obsah lze navíc označit jako pomocnou informaci přidáním class="searchaux"
.
To dá CirrusSearch pokyn přesunout obsah z hlavního textu do pomocného pole, které má nižší důležitost pro vyhledávání a zvýraznění úryvků.
Toto rozlišení se používá pro položky, jako jsou popisy miniatur obrázků, sekce 'související odkazy' atd.
Filtry
Filtr může mít více instancí nebo negovaných instancí nebo může běžet jako samostatné filtrování vyhledávací domény. Dotaz je tvořen termíny, které filtrují vyhledávací doménu.
Přidání dalšího slova, fráze nebo parametru filtruje více. Vysoce upřesněný výsledek vyhledávání může mít velmi mnoho A/N filtrů, když bude adresována každá stránka ve výsledcích. (V tomto případě je pořadí do značné míry irelevantní.) Filtrování se kriticky vztahuje na přidání regulárního výrazu. Před přidáním regulárního výrazu chcete co nejméně stránek (protože nikdy nemůže mít připravený index pro vyhledávání).
Jmenný prostor je zadaná vyhledávací doména, ale ne filtr, protože jmenný prostor nebude fungovat samostatně. Prefix bude negovat, takže je to filtr. Níže uvedené parametry vyhledávání jsou filtry, pro které může existovat více instancí.
Insource (popsané výše) je také filtr, ale insource:/regexp/ není filtr. Filtry a všechny ostatní parametry vyhledávání mají malá písmena. (Jmenné prostory jsou výjimkou a nerozlišují malá a velká písmena.)
Název a kategorie
Hledání slov a frází se shoduje v názvu a odpovídá v poli kategorie ve spodní části stránky. Ale s těmito parametry můžete vybrat tituly only nebo kategorii only.
- cow*
- Najděte články, jejichž název nebo text obsahuje slova začínající na cow (kráva)
- intitle:foo
- Najděte články, jejichž název obsahuje foo. Stemming je povolen pro foo.
- intitle:"fine line"
- Najděte články, jejichž název obsahuje fine line. Stemming je zakázán.
- intitle:foo bar
- Najděte články, jejichž název obsahuje foo a jejichž název nebo text obsahuje bar.
- -intitle:foo bar
- Najděte články, jejichž název neobsahuje foo a jejichž nadpis nebo text obsahuje bar.
- incategory:Music
- Najděte články, které jsou v Category:Music
- incategory:"music history"
- Najděte články, které jsou v Category:Music_history
- incategory:"musicals" incategory:"1920"
- Najděte články, které jsou v Category:Musicals a v Category:1920
- -incategory:"musicals" incategory:"1920"
- Najděte články, které nejsou v Category:Musicals, ale jsou v Category:1920
Intitle a incategory jsou staré parametry vyhledávání. Incategory již nevyhledává žádnou podkategorii automaticky, ale nyní můžete ručně přidat více názvů stránek kategorií.
≥ 1.31 Gerrit change 413896 |
Protože MediaWiki 1.31-wmf.23 pro intitle je podporováno vyhledávání regulárních výrazů:
- intitle:/regex/, intitle:/regex/i
Vše, co je napsáno v #Hledání regulárních výrazů, je také platné pro tato vyhledávání, včetně varování.
Deepcategory
Hluboké vyhledávání kategorií umožňuje vyhledávání v kategorii a všech podkategoriích. Hloubka stromu je aktuálně omezena 5 úrovněmi (konfigurovatelné) a počet kategorií je omezen na 256 (konfigurovatelné). Hluboké vyhledávání používá službu SPARQL Category od WDQS. Klíčová slova jsou deepcategory nebo deepcat. Příklad:
- deepcat:"musicals"
- Najděte články, které jsou v Category:Musicals nebo v některé z podkategorií.
Gadget DeepCat, který tento parametr dříve implementoval, byl ukončen v lednu 2020.
Linksto
Linksto najde wikilinky na dané jméno, nikoli odkazy na obsah. Vstupem je kanonická stránka name, rozlišující malá a velká písmena. Musí se přesně shodovat s řádkem nadpisu stránky s obsahem před jakoukoli úpravou nadpisu velkých písmen. (Musí odpovídat jeho {{FULLPAGENAME}}, např. Help:CirrusSearch/cs.)
Linksto nenachází přesměrování. Najde pouze [[wikilinks]], i když jsou vytvořeny pomocí šablony. Nenajde odkaz vytvořený URL, i když je tato URL interním odkazem wiki.
Chcete-li najít všechny wikiodkazy na "Help:Cirrus Search", pokud jsou "Help:Searching" a "H:S" přesměrovány na něj:
- linksto: "Help:Cirrus Search"
- linksto: Help:Searching
- linksto: H:S
CirrusSearch -linksto: Help:CirrusSearch
najde články, které zmiňují "CirrusSearch", ale ne ve wikiodkazu.
Hastemplate
Použití šablony můžete určit pomocí hastemplate: template
. Zadejte kanonický název stránky, abyste našli všechna použití šablony, ale použijte kterýkoli z jejích přesměrovaných názvů stránek najde jen to pojmenování. Aliasy jmenného prostoru jsou přijímány, velká písmena jsou zcela ignorována a přesměrování jsou nalezena, to vše při jednom vyhledávání jmen. (Porovnejte boost-template bez výchozího jmenného prostoru; linkto bez aliasů jmenného prostoru, rozlišují se malá a velká písmena, žádná přesměrování; intitle žádná přesměrování.)
Hastemplate najde sekundární (nebo meta-šablonu) použití na stránce: prohledá zahrnutí po rozšíření. Toto je stejná filozofie jako pro slova a fráze ze šablony, ale zde je to pro šablony ze šablony. Stránka bude uvedena jako obsahující tento obsah, i když tento obsah není ve wikitextu vidět.
- hastemplate: "quality image", najde použití "Template:Quality image" ve vaší výchozí doméně vyhledávání (jmenných prostorech).
- hastemplate: portal:contents/tocnavbar, vyhledá použití hlavního prostoru šablony "Contents/TOCnavbar" ve jmenném prostoru portálu.
U instalací s rozšířením Translate je vyhledávání hastemplate rušeno všude tam, kde Template:Translatable template name obalí název šablony přeložitelné šablony. Místo toho použijte insource.
Inlanguage
U instalací s rozšířením Translate je inlanguage důležitý pro vysoce přesné vyhledávání a počty stránek.
- inlanguage: kód jazyka
zobrazí výsledky vyhledávání pouze v tomto jazyce.
Například
- pro počítání všech japonských stránek na wiki
- all: inlanguage: ja
- pro odfiltrování německých a španělských stránek ve jmenném prostoru nápovědy
- help: -inlanguage: de -inlanguage: es
- chcete-li ignorovat Translate, a tam, kde je angličtina základním jazykem, přidejte
- inlanguage:en
Contentmodel
Klíčové slovo contentmodel: umožňuje omezit vyhledávání na stránky konkrétního modelu obsahu. Pro možné modely viz. Obslužné nástroje obsahu. Např.:
- Chcete-li zobrazit pouze stránky JSON:
contentmodel:json
subpageof
Chcete-li najít podstránky.
- subpageof: Nadřazená_stránka
Například
- Chcete-li najít všechny podstránky CirrusSearch.
- subpageof:CirrusSearch
- Pokud nadřazená stránka obsahuje mezery, použijte dvojité uvozovky.
- subpageof:"Requests for comment"
Articletopic
Klíčové slovo articletopic: umožňuje filtrovat výsledky vyhledávání podle tématu. Možná témata viz Help:CirrusSearch/articletopic . Např. articletopic:books bude filtrovat výsledky vyhledávání na články o knihách. articletopic:books|films bude filtrovat na články o knihách nebo filmech. articletopic:books articletopic:films bude filtrovat na články, které se týkají knih i filmů.
Do témat patří pouze články z hlavního prostoru a témata jsou dostupná pouze na Wikipedii. Na rozdíl od jiných filtrů, articletopic také provádí vyhodnocení stránky: Články, které lépe odpovídají tématu, budou ve výsledcích vyhledávání vyšší (zatímco články, které se vůbec netýkají tohoto tématu, budou ze sady výsledků zcela odstraněny).
Tematické modely jsou odvozeny pomocí strojového učení od ORES. Každý daný článek získá výsledek na desítky různých témat, a proto se může objevit pod různými klíčovými slovy. Například článek o Albertu Einsteinovi se může objevit jako článek o "fyzice" a jako článek o "biografii". Všechny Wikipedie mají k dispozici výsledky – některé mají modely témat v místním jazyce, které pokrývají všechny články. Jiné jazyky nemají místní modely ORES a používají výsledky v angličtině přiřazené článkům v místním jazyce, které také existují v anglické Wikipedii. Jazyky s takovými "cross-wiki" výsledky nemají 100 % pokrytí – v závislosti na jazyce to může být jen něco kolem 60 % článků, které mají dostupná témata.
Data o vyhledávání souvisejících s tématy se aktualizují každý týden, takže nedávno vytvořené články se nemusí zobrazovat ve vyhledávacích dotazech podle tématu.
Pageid
Klíčové slovo pageid: omezuje výsledky vyhledávání na danou sadu ID stránek. To není opravdu užitečné pro ruční vyhledávání. Lze jej použít softwarovými nástroji ke kontrole, zda sada stránek odpovídá dané sadě podmínek vyhledávání (např. pro opětovné ověření výsledků vyhledávání uložených v mezipaměti).
Váha stránky
Váha určuje úryvek, návrhy a relevanci stránky. Normální váha je jedna. Dodatečná váha je dána multiplikátory.
Pokud jsou dotazem pouze slova, budou stránky, které jim odpovídají v pořadí, jak poskytují podporu. Pokud do vyhledávání přidáte jakékoli explicitní fráze nebo pro určité další doplňky, tato funkce "preferovat frázi" se nepoužije.
Morelike
- morelike:page name 1|page name 2|...|page name n
- Vyhledá články, jejichž text je podobný textu uvedených článků.
morelike:wasp|bee|ant
- Najde články o bodavém hmyzu.
morelike:template:search|template:regex|template:usage
- Najde články o vyhledávacím způsobu regex pro použití šablony na wiki.
morelike
je "greedy" klíčové slovo, což znamená, že jej nelze kombinovat s jinými vyhledávacími dotazy. Pokud chcete použít jiné vyhledávací dotazy, použijte ve vyhledávání morelikethis:
morelikethis:bee hastemplate:"featured article"
- Najde články o bees, které mají také šablonu "featured article".
Dotaz morelike: funguje tak, že ve vstupních článcích vybere sadu slov a spustí dotaz s vybranými slovy. Způsob, jakým to funguje, můžete vyladit přidáním následujících parametrů do adresy URL výsledků vyhledávání:
- cirrusMltMinDocFreq: Minimální počet dokumentů (na shard), které potřebují termín, aby mohly být zváženy.
- cirrusMltMaxDocFreq: Maximální počet dokumentů (na shard), které mají termín, který je třeba vzít v úvahu.
- cirrusMltMaxQueryTerms: Maximální počet termínů, které je třeba vzít v úvahu.
- cirrusMltMinTermFreq: Minimální počet případů, kdy se výraz objeví ve vstupu do dokumentu, který má být zvážen. U malých polí (title) by tato hodnota měla být 1.
- cirrusMltMinWordLength: Minimální délka období, které je třeba vzít v úvahu. Výchozí hodnota je 0.
- cirrusMltMaxWordLength: Maximální délka slova, nad kterou budou slova ignorována. Výchozí hodnota je neomezené (0).
- cirrusMltFields (seznam hodnot oddělených čárkami): Toto jsou pole, která se mají použít. Povolená pole jsou title, text, auxiliary_text, opening_text, headings a all.
- cirrusMltUseFields (
true
|false
): použijte pouze data pole. Výchozí hodnota jefalse
: Systém extrahuje obsah poletext
za účelem vytvoření dotazu. - cirrusMltPercentTermsToMatch: Procento výrazů, které se mají shodovat. Výchozí hodnota je 0,3 (30 procent).
- Příklad:
&cirrusMtlUseFields=yes&cirrusMltFields=title&cirrusMltMinTermFreq=1&cirrusMltMinDocFreq=1&cirrusMltMinWordLength=2
Tato nastavení mohou být trvalá přepsáním cirrussearch-morelikethis-settings
v Systémové zprávě.
Prefer-recent
Přidání prefer-recent: kamkoli do dotazu dává nedávno upraveným článkům o něco větší než normální posílení pravidel pro hodnocení stránek.
Prefer-recent se použije pouze při použití výchozího relevance
třídění.
Ve výchozím nastavení se zvýší pouze o 60 % skóre ve velkém, 160 denním časovém okně, které lze v dotazu zadat jako prefer-recent:0.6,160. To hraje dobře s ostatními pravidly hodnocení stránek a je určeno pro většinu vyhledávání.
Můžete manipulovat s pravidly: prefer-recent:boost,recent Technicky vzato, "boost" je poměr skóre k měřítku a "recent" je poločas ve dnech. Boost je více než obvyklý násobič, je to exponenciální posílení. Faktor použitý v exponentu je čas od poslední úpravy.
Například
- prefer-recent:,7
Stránky starší než 7 dní jsou posíleny o polovinu více a stránky starší 14 dní jsou posíleny znovu o polovinu a tak dále. Pro jednoduché "třídění podle data" ve vysoce rafinovaných výsledcích vyhledávání, kde hodnocení a posilování stránky do značné míry nemá smysl, stačí zvýšit celé skóre.
- prefer-recent:1,7 - týdny
- prefer-recent:1,1 - dny
- prefer-recent:1,0.0007 - minuty
- prefer-recent:1,0.0001 - 8.64 sekundy
- prefer-recent:1,0.00001 - sekundy
Boost-templates
Výsledky stránek můžete zvýšit podle toho, jaké šablony obsahují. To lze aplikovat na všechny vyhledávací dotazy deklarováním zvýšení prostřednictvím MediaWiki:Cirrussearch-boost-templates nebo ad-hoc v jednotlivých dotazech prostřednictvím operátoru boost-templates:""
. Pokud je v dotazu nastaven operátor boost-templates
, bude obsah cirrussearch-boost-templates
ignorován.
Podobně jako u funkce prefer-recent jsou šablony upřednostnění použity jako součást výchozího relevance
třídění. Nemá to žádný vliv na další vyhledávací příkazy.
Syntaxe zprávy je následující:
- Vše od znaku
#
až po konec řádku je považováno za komentář a ignorováno. - Každý neprázdný řádek je interpretován jako přesný název šablony, která by měla být zesílena (včetně prefixu jmenného prostoru), za nímž následuje svislý znak "|", za kterým následuje číslo a za ním znak "%".
Dobré příklady:
Template:Important|150% Template:Very_Very_Important|300% Template:Less_important|50%
Špatné příklady:
Template:Foo|150.234234% # desetinné tečky nejsou povoleny. Foo|150% # technicky platný, ale jedná se o transkluze Foo (hlavní vesmírný článek) místo Template:Foo.
Příklady použití:
- boost-templates:"Template:Quality_Image|200%" incategory:china
- Najde soubory v kategorii China se seřazením od nejkvalitnějších obrázků.
- boost-templates:"Template:Quality_Image|200% Template:Low_Quality|50%" incategory:china
- Najde soubory v kategorii China se seřazením s nejkvalitnějšími obrázky na vrchu a nejméně kvalitními jako poslední.
- boost-templates:"Template:Quality_Image|200% Template:Low_Quality|50%" popcorn
- Vyhledejte soubory o popcornu, nejprve seřaďte kvalitní obrázky a až nakonec obrázky nízké kvality. Pamatujte, že pomocí zprávy
cirrussearch-boost-templates
to lze zredukovat na pouhýpopcorn
.
V procentech nejsou povoleny desetinné čárky. Výsledky vyhledávání jsou takové, že zlomky procent pravděpodobně nezpůsobí rozdíl.
Pozor, pokud přidáte velmi nízká nebo velmi vysoká procenta prostřednictvím cirrussearch-boost-templates, mohou otrávit fulltextové bodování. Pokud by například Wikipedie posílila šablonu "Vybraný článek" o 1 milion procent, pak by vyhledávání jakéhokoli výrazu uvedeného v doporučených článcích zařadilo doporučený článek dokonce nad vyhrazený článek o tomto výrazu.
Frázová shoda by byla podobně otřepaná, takže vyhledávání jako brave new world
by vrátilo doporučený článek jako první výsledek, i když by v něm byla zmíněna pouze tato tři slova, namísto relevantnějšího článku o Brave New World samotného.
Vyhledání regulárních výrazů
Základní indexované vyhledávání najde slova zobrazená na stránce. Dělení slov a interpunkční znaménka a závorky, lomítko a další matematické a výpočetní symboly jsou pouze hranicemi pro slova. Není možné je zahrnout do indexovaného vyhledávání. Většinou takové chování při vyhledávání požaduje uživatel. Někdy však člověk chce mít možnost přesnějšího vyhledávání.
Chcete-li obejít syntaktický nedostatek vyhledávání na základě indexu, lze použít vyhledávání podle regulárních výrazů. Ale protože dotazy pouze s výrazy regulárních výrazů jsou velmi pomalé a náročné na zdroje, měly by být vždy kombinovány s vyhledáváním založeným na indexu, takže doména hledání regulárních výrazů bude omezena na výsledky jednoho nebo více hledání založeného na indexu.
Hledání regulárního výrazu "přesný řetězec" je základní hledání. Jednoduše "nabídne" celý regulární výraz nebo uvede "zpětným lomítkem" všechny nealfanumerické znaky v řetězci. Všechna vyhledávání regulárních výrazů také vyžadují, aby uživatel vyvinul jednoduchý filtr pro generování vyhledávací domény pro vyhledávač regulárních výrazů (doména vyhledávání založená na indexu označena tučně, část regulárního výrazu označena kurzívou):
- 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}}
Poslední příklad funguje z odkazu na stránce, ale {{FULLPAGENAME}} ve vyhledávacím poli nefunguje.
Například: [[Special:Search/insource:/regex/ prefix:{{FULLPAGENAME}}]] na této stránce najde výraz regex.
Dotaz bez zadaného jmenného prostoru a bez zadané předpony prohledává vaši výchozí vyhledávací doménu (lze nastavit na jakékoli stránce s výsledky vyhledávání, tj. na Special:Search). Někteří uživatelé si ponechají výchozí doménu vyhledávání na "všech jmenných prostorech", tedy celé wiki. Na velké wiki, pokud tento uživatel provede holé hledání podle regulárního výrazu, pravděpodobně selže a dojde k vypršení časového limitu, než dokončí hledání.
Hledání podle regulárního výrazu ve skutečnosti prohledává každou stránku ve vyhledávací doméně znak po znaku. Naproti tomu indexované vyhledávání se ve skutečnosti dotazuje na několik záznamů z databáze odděleně spravované z databáze wiki a poskytuje téměř okamžité výsledky. Pokud tedy používáte insource:// (regulární výraz jakéhokoli druhu), zvažte přidání dalších hledaných výrazů, které co nejvíce omezí vyhledávací doménu regulárních výrazů. Existuje mnoho hledaných výrazů, které používají index, a tak okamžitě poskytují přesnější vyhledávací doménu pro /regexp/. V pořadí podle obecné účinnosti:
- Ideální je insource:"" s uvozovkami, duplikující regulární výraz kromě bez lomítek nebo znaků escape.
- intitle (bez vyhledávání podle regulárního výrazu), incategory a linksto jsou vynikající filtry.
- hastemplate: je velmi dobrý filtr.
- "slovo1 slovo2 slovo3", s uvozovkami nebo bez nich, je dobré.
- namespace: je prakticky k ničemu, ale může umožnit dokončení pomalého vyhledávání regulárních výrazů.
Chcete-li otestovat holý dotaz na regulární výraz, můžete vytvořit stránku s testovacími vzory a poté použít parametr prefix s tímto celým názvem stránky. Výsledek bude zvýrazněn. Prohledává tuto stránku (v databázi) a její podstránky.
Hledané výrazy, které nezvyšují efektivitu vyhledávání podle regulárních výrazů, jsou operátory hodnocení stránky: morelike, boost-template a prefer-recent.
Metaznaky
Tato část popisuje, jak uniknout metaznakům používaným při vyhledávání regulárních výrazů. Skutečný význam metaznaků viz vysvětlení syntaxe.[9]
Například:
- Chcete-li prohledat jmenný prostor, změřte počet stránek s jedním termínem, který je jmenným prostorem. Tím se zobrazí počet stránek v daném jmenném prostoru.
- začnete znovu hledat to, co jste možná viděli, jako "wiki-link" nebo "(trans[in]clusion)" začněte jmenným prostorem a filtry zdrojů.
Existují některé významné rozdíly od standardních metaznaků regulárního výrazu:
\n
nebo\r\n
nejsou vyhrazeny pro shodu na novém řádku. Chcete-li vyhledat řetězec, který obsahuje nový řádek, můžete provést vyhledávání jakoinsource:/[^\}]\}\}[^\} \|]{2}\<noinclude/i
, což znamená, že není složená závorka, pak dvě složené závorky, potom libovolné dva znaky kromě složené závorky, mezery nebo svislé čáry a poté značku<noinclude>
. "Jakýkoli znak except (kromě)" zahrne do vyhledávání nový řádek. Upozorňujeme, že toto vyhledávání bylo navrženo tak, aby odpovídalo pouze následujícímu řetězci:
}} <noinclude>
- Metaznak tečka
.
představuje jakýkoli znak včetně nového řádku, takže.*
odpovídá napříč řádky. - Znak čísla
#
něco znamená a musí být escapován.[10] ^
a$
nejsou implementovány. Stejně jako "grep" (global per line, regular expression, print each line) (globální na řádek, regulární výraz, tisk každého řádku), každý insource:// je "globální na dokument, regulární výraz, seznam výsledků hledání každý dokument" na dokument.<
a>
podporují vícemístný číselný rozsah jako[0-9]
, ale bez ohledu na počet pozic znaků nebo rozsah na každé pozici, takže<9-10>
funguje a dokonce<1-111>
funguje.
Náhrady některých metaznaků
Zatímco třídy znaků \n
, \s
, \S
nejsou podporovány, v případě akutní potřeby je použít v regulárním výrazu můžete použít tato zástupná řešení:
PCRE | CirrusSearch | Popis |
---|---|---|
\n |
[^ -] |
Nový řádek (může také najít tabulkový znak)[11] |
[^\n] |
[ -] |
Libovolný znak kromě nového řádku a tabulky |
\s |
[^!-] |
Znak prázdného místa: mezera, nový řádek nebo tabulka |
\S |
[!-] |
Libovolný znak kromě mezer |
V těchto rozsazích se " " (mezera) používá jako znak bezprostředně za řídicími znaky, "!" – znak bezprostředně následující za ním a "" jako znak U+10FFFF, což je poslední povolený znak v Unicode. Rozsah od " " do "" tedy zahrnuje všechny znaky kromě kontrolních, z nichž články mohou obsahovat nové řádky a tabulátory, zatímco rozsah od "!" do "" zahrnuje všechny znaky kromě kontrolních a mezery.
Zpřesnění přesným řetězcem
- upřesnění probíhajícího procesu vyhledávání pomocí toho, co chcete vidět, například "2 + 2 = 4" nebo "site.org" Toto je v ideálním případě nejlepší použití regulárního výrazu, protože jej přidává jako jeden výraz regulárního výrazu při zpřesňování vyhledávání lze vidět omezený počet stránek, které musí regulární výraz procházet.
Můžete začít hledáním přesného řetězce, ale mějte na paměti:
- regulární výraz prohledává pouze wikitext, nikoli vykreslený text, takže existují určité rozdíly v označení, a dokonce i počet mezer se musí přesně shodovat.
- Jste povinni dodat přiložený filtr.
- Musíte se naučit, jak uniknout z metaznaků regulárního výrazu.
Metaznaky lze uniknout dvěma způsoby. Oba jsou občas užitečné a někdy jsou zřetězeny vedle sebe při úniku řetězce.
- Zpětné lomítko-escape jeden z nich \char. Insource:/regexp/ používá lomítka k oddělení regulárního výrazu. Zadání /reg/exp/ je nejednoznačné, takže musíte napsat /reg\/exp/.
- Vložte řetězec z nich do dvojitých uvozovek "řetězec". Protože únik před znaky nemůže ublížit, můžete uniknout jakémukoli znaku spolu se všemi možnými metaznaky v něm. Únik (escaping) s uvozovkami je čistší.
- Metody nelze kombinovat, ale můžete je zřetězit.
Escapování dvojitých uvozovek pomocí insource:/"regexp"/ je snadný způsob, jak hledat mnoho druhů řetězců, ale uvnitř dvojitých uvozovek nemůžete nic vrátit zpětným lomítkem.
/"[[page/name|{{temp-late"/
místo/\[\[page\/name\|\{\{temp\-late/
- $literal je stejně dobrý jako $literal2
- Ale $thisfails vždy.
- A $this závisí. Doslova najde $vvv, což není lomítko $slash, které jste pravděpodobně chtěli.
/"literal back\slash"/
is as good as/literal back\\slash/
- But
/"This \" fails"/
always.
- And
/"This \/ depends"/
. It finds the\/
literally, which is not the/
you probably wanted.
" a / oddělovače, ale vyžaduje zohlednění metaznaků a escapování všech:
- Pro shodu s oddělovacím znakem
/
použijte\/
. - Pro shodu s oddělovacím znakem
"
použijte\"
. - Uniklé metaznaky by byly
\~\@\#\&\*\(\)\-\+\{\}\[\]\|\<\>\?\.\\
. - Ekvivalentní výraz uvozený dvojitými uvozovkami je
"~@#&*()-+{}[]|\<>?.\"
.
Nejjednodušší algoritmus pro vytvoření základního výrazu pro hledání řetězců pomocí insource:/"regexp"/, nemusí brát v úvahu metaznaky kromě znaků " a /:
- Vypište
the/str"ing
. (Oddělovače /"/ nejsou zobrazeny.) - Nahraďte
"
"\""
(předchozí dvojité uvozovky: zastavit, zřetězit, spustit). - Nahraďte
/
"\/"
(zastavit, zřetězit, spustit). - Získáte
insource:/"the"\/"str"\""ing"/
ukazující zřetězení těchto dvou metod.
Zápis v hranatých závorkách pro vytvoření vlastní třídy znaku také uniká před jeho metaznaky. Chcete-li cílit na doslovnou pravou hranatou závorku ve vzoru třídy znaků, musí být uvozena zpětným lomítkem, jinak může být interpretována jako uzavírací oddělovač definice vzoru třídy znaků.
První pozici znakové třídy také unikne pravá hranatá závorka. Uvnitř oddělovacích hranatých závorek znaku class má znak pomlčka také zvláštní význam (rozsah), ale také může být do třídy doslova zahrnut stejným způsobem jako pravá hranatá závorka.
Například oba tyto vzory cílí na znak, který je buď pomlčkou, nebo pravou hranatou závorkou nebo tečkou: [-.\]]
nebo [].\-]
.
Obecné příklady použití metaznaků:
- insource:"2+2=4" insource:/"2+2=4"/ odpovídá "2 + 2 = 4", s nulovými mezerami mezi znaky.
- insource:"2 + 2 = 4" insource:/2 ?\+ ?2 ?= ?4\./ se shoduje s nulou nebo jednou mezerou mezi nimi. Znak rovná se = není metaznak, ale znaménko plus + ano.
- insource:"<tag>[[link|2\3?]]\</tag>" insource:/"<tag>[[link|2\3?]]<"\/"tag>"/
Regulační výraz v názvech
Klíčové slovo insource prohledává pouze zdrojový obsah stránky. Ke spuštění vyhledávání regulárních výrazů v řetězcích názvu lze použít intitle:/regex/.
Pokročilý příklad
Například pomocí metaznaků najít použití šablony nazvané Val, která má uvnitř volání šablony nepojmenovaný parametr obsahující případně podepsané, tří až čtyřmístné číslo, případně obklopené mezerami, a na stejné stránce, uvnitř volání šablony Val, pojmenovaný argument fmt=commas
s povolenými mezerami kolem sebe (může to být stejné volání šablony nebo samostatné):
hastemplate:val insource:"fmt commas" insource:/\{\{ *[Vv]al *\|[^}]*fmt *= *commas/ insource:/\{\{ *[Vv]al *\|[^}]*[-+]?[0-9]{3,4} *[|}]/
Všimněte si, že znak = "fmt commas" není potřeba, ale jeho přidání by nezměnilo výsledky vyhledávání. Je rychlý, protože používá dva filtry, takže každá stránka, kterou regulární výraz projde, má nejvyšší možný potenciál.
Geo Search
Vyhledávání na základě (primárních) souřadnic spojených se stránkami.
Závisí na Extension:GeoData a {{#coordinates:}}
ohraničení
Vyhledávání můžete omezit na stránky identifikované jako blízko některých zadaných zeměpisných souřadnic. Souřadnice mohou být zadány buď jako pár <lat>, <lon>, nebo poskytnutím názvu stránky, ze kterého se souřadnice získávají. V případě potřeby lze předřadit vzdálenost pro omezení vyhledávání. Příklady:
- neartitle:"San Francisco"
- neartitle:"100km,San Francisco"
- nearcoord:37.776,-122.39
- nearcoord:42km,37.776,-122.39
posílení
Alternativně můžete zvýšit skóre stránek v určené geografické oblasti. Syntaxe je stejná jako u omezeného vyhledávání, ale před klíčové slovo je připojeno boost-. Tím se účinně zdvojnásobí skóre pro stránky v dosahu vyhledávání, což dává větší šanci, že blízké výsledky vyhledávání budou blízko vrcholu.
- boost-neartitle:"San Francisco"
- boost-neartitle:"100km,San Francisco"
- boost-nearcoord:37.776,-122.39
- boost-nearcoord:42km,37.776,-122.39
Hledání vlastností souboru
≥ 1.28 Gerrit change 311061 |
Od MediaWiki 1.28 podporuje CirrusSearch indexování a vyhledávání vlastností souborů ve jmenném prostoru File:
. To zahrnuje:
- typ média souboru
- typ MIME
- velikost
- šířka výška
- rozlišení
- bitová hloubka pro soubory, které je podporují
- file media type
- MIME type
- size
- width & height
- resolution
- bit depth for files that support these
File:
. Při použití těchto podmínek se doporučuje zahrnout tento jmenný prostor do vyhledávání nebo omezit hledání pouze na tento jmenný prostor.
typ souboru
Hledání typu souboru umožňuje načíst soubory podle jejich klasifikace, jako jsou kancelářské dokumenty, videa, rastrové obrázky, vektorové obrázky atd. V současné době existují následující typy:
UNKNOWN
BITMAP
DRAWING
AUDIO
VIDEO
MULTIMEDIA
OFFICE
TEXT
EXECUTABLE
ARCHIVE
Tento seznam může být v budoucnu rozšířen. Viz také konstanty MEDIATYPE_*
v Defines.php
.
Syntaxe hledání je: filetype:{type}. Příklad:
filetype:video – vyhledá všechna videa
Vyhledávání typu souboru nerozlišuje velká a malá písmena.
soubor mime
Odpovídá typu MIME souboru. Syntaxe je:
filemime:{MIMEtype} - hledat soubory tohoto typu MIME
Argument může být citován pro určení přesné shody. Bez uvozovek budou akceptovány i částečné shody s komponentami typu MIME.
Příklady:
- filemime:"image/png" - hledejte soubory s typem MIME přesně
image/png
- filemime:pdf - vyhledat všechny dokumenty PDF
- -filemime:pdf - přeskočit všechny dokumenty PDF (zejména na Commons)
Vyhledávání typu MIME nerozlišuje velká a malá písmena.
velikost souboru
Vyhledejte soubor dané velikosti v kilobajtech (kilobajt znamená 1024 bajtů). Syntaxe je:
- filesize:{number} nebo filesize:>{number} - soubor o velikosti alespoň dané číslo
- filesize:<{number} - soubor s velikostí ne větší než dané číslo
- filesize:{number},{number} - soubor s velikostí mezi danými čísly
Příklady:
- filesize:>20 nebo filesize:20 - soubory 20 kB a větší
- filesize:<1024 - soubory menší než 1 MB
- filesize:100,500 - soubory o velikosti mezi 100 kB a 500 kB
Rozměry souboru
Je možné vyhledávat konkrétní míry souboru: šířku, výšku, rozlišení (které je definováno jako druhá odmocnina z výšky × šířky) a bitovou hloubku. Tyto vlastnosti nemusí mít všechny soubory. Syntaxe je:
- {measure}:{number} - soubor s mírou, která se rovná danému číslu
- {measure}:>{number} - soubor s mírou, která je alespoň daným číslem
- {measure}:<{number} - soubor s mírou, která není větší než dané číslo
- {measure}:{number},{number} - soubor s mírou, která je mezi danými čísly
Kde measure
může být:
filew nebo filewidth - šířka souboru
fileh nebo fileheight - výška souboru
fileres - rozlišení souboru (viz výše)
filebits - bitová hloubka souboru
Příklady:
filew:>800 fileh:>600 – soubory, které mají velikost alespoň 800×600 pixelů
filebits:16 - soubory s 16bitovou barevnou hloubkou
fileheight:100,500 – soubor o výšce mezi 100 a 500 pixely
Vyhledávání ve Wikibase
Rozšíření Wikibase definuje některá klíčová slova pro vyhledávání, aby se usnadnilo vyhledávání určitých položek Wikibase. To je užitečné na Wikidata a dalších stránkách Wikibase, včetně vyhledávání obrázků se strukturovanými daty na Wikimedia Commons . Další podrobnosti najdete na stránce Help:WikibaseCirrusSearch .
Výsledky hledání napříč wikinami
Při vyhledávání na Wikipedii se mohou zobrazit dva druhy výsledků napříč wikinami.
Vyhledávání mezi projekty (také známé jako vyhledávání interwiki, vyhledávání sester nebo vyhledávání sesterských projektů) zobrazuje další výsledky z jiných projektů (Wiktionary, Wikisource, Wikiquote atd.) zobrazené na straně s výsledky Wikipedie. Vyhledávání mezi projekty je dostupné na většině Wikipedií se sesterskými projekty.
Vyhledávání mezi jazyky (viz příspěvek na blogu) odkazuje na další výsledky zobrazené pod hlavními výsledky, které pocházejí z Wikipedie v jiném jazyce. Vyhledávání mezi jazyky používá silně upravenou a optimalizovanou verzi odlehčeného detektoru jazyků s názvem TextCat . Vyhledávání mezi jazyky je v současné době dostupné pouze na několika Wikipediích (podrobnosti viz odkaz TextCat).
Explicitní řazení
Kromě výchozího třídění podle relevance může CirrusSearch poskytovat výsledky pomocí několika dalších explicitních pořadí řazení.
Zadáním jiného pořadí řazení než relevance
deaktivujete všechna klíčová slova vyhledávání, která ovlivňují hodnocení, jako například prefer-recent
nebo boost-templates
.
Klíčová slova budou stále analyzována, ale nebudou mít žádný účinek.
Možnosti řazení jsou aktuálně dostupné z MediaWiki API po zadání parametru srsort
.
Vedení:
Možnosti řazení lze k vyhledávací adrese URL přidat ručně přidáním &sort=order
, například:
Platné objednávky řazení zahrnují:
URL doplněk | Popis |
---|---|
&sort=incoming_links_asc
|
Nejnižší až nejvyšší počet příchozích odkazů. To je přibližně od nejméně po nejoblíbenější. |
&sort=incoming_links_desc
|
Nejvyšší až nejnižší počet příchozích odkazů. Toto je přibližně od nejoblíbenější k nejméně oblíbené. |
&sort=last_edit_asc
|
Od poslední doby po naposledy upravenou |
&sort=last_edit_desc
|
Od většiny po nejméně nedávno upravované |
&sort=create_timestamp_asc
|
Od nejméně po naposledy vytvořené |
&sort=create_timestamp_desc
|
Od většiny po nejméně nedávno vytvořené |
&sort=just_match
|
Jednoduché řazení podle relevance založené pouze na shodě textu |
&sort=relevance
|
Seřazení podle relevance zohledňující mnoho funkcí dokumentu |
&sort=random
|
Náhodné |
&sort=none
|
Netříděné, libovolně uspořádané seznamy. Preferováno pro velké sady výsledků. |
Rozhraní pro pokročilé možnosti
Rozšíření AdvancedSearch přidává na stránku vyhledávání vylepšené rozhraní, které umožňuje uživatelsky přívětivým způsobem používat několik výše popsaných možností. Viz zde pro uživatelskou příručku.
Související odkazy
- Rozšíření:CirrusSearch
- Completion Suggester – funkce přírůstkového vyhledávání CirrusSearch
- Wikimedia Search Platform/Search/Glossary — definice, kontext a odkazy na výrazy související s vyhledáváním.
- Viz Nápověda:Vyhledávání pro MWSearch, který používá mnoho wikin, které nemají rozšíření pro vyhledávání.
Externí odkazy
- From Lucene, vysoce relevantní dokumentace.
- Kompletní specifikace v testech prohlížeče rozšíření Do 2017
- Extension:CirrusSearch/Profiles – sady laditelných parametrů, které ovlivňují různé aspekty indexování
- Wikimedia blog articles related to search
- WMF Global Search
Poznámky pod čarou
- ↑ Všimněte si, že tagline není součástí skutečného obsahu. Chcete-li zobrazit prohledávatelný obsah stránky, připojte k adrese URL ?action=cirrusdump.
- ↑ Stop words jsou v CirrusSearch zřídka vyžadována, kromě případů, kdy jsou v určitých typech frází, jak je vysvětleno níže.
- ↑ Parametry CirrusSearch nepoužívají konzistentní způsob zpracování těchto hledaných výrazů.
- ↑ Stejný analyzátor použitý k indexování wikitextu se také používá k interpretaci dotazu.
- ↑ Například běžné termíny na této wiki, mediawiki.org, jsou nadbytečné, (prohledáno):
- udp2Log nebo udp2Log2 (i když extra 2 ovlivní hodnocení)
- html2wt nebo wt2html
- log2ip nebo ip2log
- ↑ Regulární výraz CirrusSearch neadresuje znak nového řádku přímo, ale tečka . bude odpovídat novému řádku.
- ↑ Pomalé hledání regulárních výrazů nemůže zakázat vyhledávání, ale může zakázat hledání jiného regulárního výrazu, protože je povolen pouze omezený počet hledání regulárních výrazů najednou.
- ↑ Předpona se neshoduje na prvních znacích názvů celých stránek, takže nemůžete hledat dva jmenné prostory najednou jen proto, že začínají stejnými písmeny, jako například namespace a namespace talk v jednom dotazu.
- ↑ Pro formální definici viz Gramatika pro regulární výrazy Lucene.
- ↑ Class RegExp, syntaxe Lucene RegExp
- ↑ Chcete-li vyloučit i znak v tabulce, zkopírujte jej a přidejte jej do znakové sady.