⋮ Obsah

Vyhledávání

https://www.dokuwiki.org/search

Vyhledávání se provádí prostřednictvím vyhledávacího pole v horním řádku (při použití výchozí šablony).

Syntaxe

DokuWiki v podstatě provádí logické vyhledávání typu AND. To znamená, že všechna slova, která zadáte do dotazu, budou použita. Vyhledávání je vždy nezávislé na velikosti písmen.

Pokročilé syntaxe vyhledávacích dotazů DokuWiki jsou popsány níže. Všechny syntaxe lze kombinovat dohromady. V této sekci budeme používat hranaté závorky [ … ] k reprezentaci znaků zadaných v dotazu.

Výrazy, které chcete vyloučit (-)

Můžete připojit znaménko mínus - bezprostředně před klíčové slovo, abyste z výsledků vyhledávání vyloučili stránky, které toto klíčové slovo obsahují. Například dotaz [ dokuwiki -plugin ] najde stránky, které obsahují "DokuWiki", ale neobsahují "plugin".

Tuto syntaxi - můžete použít nejen pro klíčové slovo, ale také pro částečné shody, vyhledávání frází, vyhledávání v jmenném prostoru a seskupené vyhledávání popsané níže. Například můžete použít dotaz [ -"fráze, kterou chcete vyloučit" ] pro vyloučení přesné fráze.

Částečné shody (*)

Částečné shody můžete provádět předřazením nebo připojením hvězdičky * ke klíčovému slovu. Například vyhledávání [ wiki ] najde pouze "wiki", ale vyhledávání [ *wiki ] najde také "DokuWiki" (shoda na konci). Můžete také provést [ doku* ] (shoda na začátku) a [ *okuwik* ] (částečná shoda).

Všimněte si, že * není "zástupný znak". Nemůžete jej používat uvnitř klíčového slova, tj. vyhledávání [ doku*iki ] pro vás nic nenajde.

Vyhledávání frází ("")

Přesné fráze můžete vyhledávat uzavřením sady slov do dvojitých uvozovek, např. [ "installing dokuwiki" ].

Vyhledávání v jmenném prostoru (@)

Vyhledávání můžete omezit na jmenné prostory. Pro vyhledávání stránek v jmenném prostoru předřaďte @ nebo ns: před jmenný prostor. Pro nevyhledávání stránek v jmenném prostoru předřaďte ^ nebo -ns: před jmenný prostor.

Například dotaz [ dokuwiki @wiki ^wiki:docs ] najde stránky, které obsahují slovo "dokuwiki" a jsou v jmenném prostoru "wiki", ale nejsou v jmenném prostoru "wiki:docs". Dotaz [ dokuwiki ns:wiki -ns:wiki:docs ] udělá totéž.

Operátor OR (|)

Ve výchozím nastavení DokuWiki provádí logické vyhledávání AND, ale můžete také použít logické vyhledávání OR pomocí | nebo or jako oddělovače vašich vyhledávacích výrazů. Například dotaz [ plugin | template ] najde stránky, které obsahují buď "plugin" nebo "template" nebo obojí. Dotaz [ plugin or template ] udělá totéž. OR můžete použít jako jednoduchou alternativu k Částečné shody (*), např. při hledání stránek o lidech s variantami pravopisu jako [ Frank | Fränk ].

Operátor OR má nižší prioritu než výchozí operátor AND. To znamená, že dotaz [ dokuwiki plugin | template ] lze vyjádřit jako [ (dokuwiki plugin) | template ], nikoliv jako [ dokuwiki (plugin | template) ]. Místo toho použijte syntaxi seskupování popsanou níže.

Pokud chcete omezit vyhledávání na jmenný prostor, musíte své vyhledávání seskupit pomocí "()", jinak se vyhledávání [ plugin | template @plugin] bude chovat jako [ (plugin) | (template @plugin)], tj. vyhledávání "plugin" NEBO "template @plugin" ve všech jmenných prostorech, ale ne jak možná zamýšlíte vyhledávání "plugin" NEBO "template" ve jmenném prostoru plugin, které je správně vyjádřeno jako [ (plugin | template) @plugin].

Seskupené vyhledávání

Vyhledávací výrazy můžete seskupovat uzavřením výrazů do závorek ( … ). Závorky mají nejvyšší prioritu a mohou být použity k vynucení priority.

Například dotaz [ dokuwiki -(plugin | @plugin) ] najde stránky, které obsahují slovo "DokuWiki", ale neobsahují slovo "plugin" a také nejsou v jmenném prostoru "plugin".

Rychlé vyhledávání

Můžete zadat začátek názvu stránky do vyhledávacího pole a počkat půl sekundy. Ve většině moderních prohlížečů automaticky získáte vyskakovací okno s odpovídajícími názvy stránek.

OpenSearch

OpenSearch ve Firefoxu

OpenSearch je standard, který usnadňuje integraci vyhledávání webu do vašeho prohlížeče. Je podporován všemi moderními prohlížeči. DokuWiki má OpenSearch povolený.

Zde je návod, jak přidat vyhledávání vaší wiki do Firefoxu (ostatní prohlížeče s tím pravděpodobně nakládají podobným způsobem):

  1. otevřete vaši wiki v prohlížeči
  2. klikněte na lupu vlevo od vyhledávacího pole vašeho prohlížeče
  3. zvolte "Přidat <název vaší wiki>", např. "Přidat DokuWiki"

Něco o vyhledávacím indexu

DokuWiki nyní používá index pro velmi rychlé vyhledávání i velkých wiki, aby bylo možné najít cokoliv, index musí být naplněn aktuálními daty. Informace o obsahu stránky se přidávají a aktualizují, když si uživatel stránku prohlíží. Každá stránka obsahuje neviditelný obrázek (webbug), který v případě potřeby volá proces aktualizace indexu.1) (To je, pokud je časové razítko stránky novější než časové razítko souboru indexu.)

Index se skládá ze souborů nazvaných page.idx, w[n].idx a i[n].idx umístěných v adresáři indexu. w[n].idx obsahuje seznam všech slov (kromě stopwords) s délkou n, která se objevují na wiki stránkách. Pro každý řádek v w[n].idx je řádek v odpovídajícím souboru i[n].idx, který obsahuje odkazy na stránky ve formě pn*freq. pn je řádkový offset pro page.idx, freq označuje, jak často se slovo na stránce objevuje. Více odkazů na stránky je odděleno dvojtečkou.

Indexer používá jazykově specifický soubor stopwords, který obsahuje seznam velmi běžných slov, která nebudou nikdy indexována (např. slovo the v angličtině). Vyhledávání takového slova nevrátí žádné výsledky. Tento soubor stopwords je umístěn v jazykové složce instalace DokuWiki, tedy <dokuwiki>/inc/lang/<jazyk>/stopwords.txt, takže můžete upravit soubor ve správné složce pro přidání nebo odebrání slov, která nejsou indexována pro daný jazyk (Bohužel tyto úpravy se nezachováváí při aktualizacích DokuWiki).

Pokud jste upgradovali vaši wiki ze starší verze bez indexu, vaše vyhledávání nevrátí nic, dokud se index nevytvoří. Můžete buď počkat, až se to stane procházením vaší wiki, nebo nainstalovat plugin plugin:searchindex. Můžete také použít poskytnutý příkazový řádkový skript pro aktualizaci indexu.

Viz také

1)
Všimněte si, že webbug se používá i pro další úkoly. Viz http://forum.dokuwiki.org/post/3116