DokuWiki

It's better when it's simple

User Tools

Site Tools


search

This is an old revision of the document!


Search

Search is done through the Search box in top row (when using the default template).

Syntax

Basically DokuWiki performs logical AND search. That means all the words you put in the query will be used. Search is always case insensitive.

DokuWiki's advanced search query syntaxes are described below. All of the syntaxes can be combined together. In this section, we'll use square brackets [ … ] to represent characters entered in the query.

Terms you want to exclude (-)

You can attach a dash - immediately before a keyword to exclude pages that contain this keyword from your search results. For example the query [ dokuwiki -plugin ] will find pages which contain “DokuWiki” but not contain “plugin”.

You can use this syntax - not just for a keyword, but also for a partial matching, a phrase search, a namespace search and a grouping search described below. For example, you can use the query [ -"phrase you want to exclude" ] to exclude exact phrase.

Partial matching (*)

You can perform a partial matching by prefixing and/or suffixing an asterisk * to a keyword. For example, searching for [ wiki ] will only find “wiki”, but searching for [ *wiki ] will also find “DokuWiki” (suffix matching). You can also perform [ doku* ] (prefix matching) and [ *okuwik* ] (partial matching).

Note that * is not a “wildcard”. You can't use it within a keyword, i.e. searching [ doku*iki ] will not find anything for you.

You can search for exact phrases by putting double quotes around a set of words, e.g. [ "installing dokuwiki" ].

Search within a namespace (@)

You can restrict the search to namespaces. To search pages within a namespace, prefix @ or ns: to the namespace. To not search pages within a namespace, prefix ^ or -ns: to the namespace.

For example, the query [ dokuwiki @wiki ^wiki:docs ] will find pages which contain a word “dokuwiki” and are within “wiki” namespace but not within “wiki:docs” namespace. The query [ dokuwiki ns:wiki -ns:wiki:docs ] will do the same thing.

The OR operator (|)

By default DokuWiki performs a logical AND search, but you can also use a logical OR search by using | or or as a separator of your search terms. For example, the query [ plugin | template ] will find pages which contain either “plugin” or “template”. The query [ plugin or template ] will do the same thing.

The OR operator has a lower precedence than the default AND operator. That is, the query [ dokuwiki plugin | template ] can be represented as [ (dokuwiki plugin) | template ], not as [ dokuwiki (plugin | template) ]. Instead, use a grouping syntax as described below.

You can group search terms by enclosing terms with parentheses ( … ). Having the highest precedence, parentheses may be used to force precedence.

For example, the query [ dokuwiki -(plugin | @plugin) ] will find pages which contain a word “DokuWiki” but not contain a word “plugin” and also are not within a namespace “plugin”.

Quicksearch

You can enter the beginning of a pagename into the search box and wait half a second. In most modern browsers you will automatically get a popup with matching pagenames.

OpenSearch

OpenSearch in Firefox

OpenSearch is a standard to make it easy to integrate a website's search into your browser. It is supported by all modern browsers. DokuWiki is OpenSearch enabled.

Here is how to add your Wiki's search to Firefox (other browsers probably handle it in a similar way):

  1. open your wiki in the browser
  2. click the little arrow on the left of your search field
  3. choose “Add DokuWiki” 1)

Some Background on the Searchindex

DokuWiki now uses an index to search even big wikis very fast, to be able to find anything the index needs to be filled with current data. Information about a page's content is added and updated when a page is viewed by a user. Each page includes an invisible image (webbug) which calls the index update process if needed.2) (That is, if the timestamp of the page is newer than the timestamp of the index file.)

The index consists of files called page.idx, w[n].idx and i[n].idx located in the index directory. w[n].idx contains a list of all words (except stopwords) with a length of n that appear on the wiki pages. For every line in w[n].idx there is a line in the corresponding i[n].idx file that contains page references in the form of pn*freq. pn is a line number for page.idx, freq denotes how often the word appears on the page. Multiple page references are separated with a colon.

The indexer uses a language specific stopword file which contains a list of very common words which will never be indexed (e.g. the word the in English). Searching for such a word will not return any hits. This stopword file is located in language folder of the DokuWiki installation, that is <dokuwiki>/inc/lang/<language>/stopwords.txt so you can edit the file in proper folder for adding or removing words not indexed for that language.

If you upgraded your wiki from an older version without an index, your search won't return anything until the index is built. You can either wait until this happens by browsing your wiki or use the provided commandline script for updating the index.

1)
It might be named different if your Wiki is named different
2)
Note that the webbug is used for other tasks, too. See http://forum.dokuwiki.org/post/3116
search.1304693511.txt.gz · Last modified: 2011-05-06 16:51 by 65.167.211.139

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki