Поиск осуществляется через форму, которая расположена сверху справа (при использовании стандартного шаблона она размещается именно там).
Обычно «ДокуВики» использует поиск с логическим «И». То есть будут использоваться все слова, которые вы введёте в запросе. Поиск всегда регистронезависим.
Ниже описан расширенный поисковый синтаксис «ДокуВики». Все варианты могут комбинироваться друг с другом. Далее по тексту мы будем использовать квадратные скобки [ ... ]
, чтобы выделить поисковый запрос.
Вы можете поставить минус «-» непосредственно перед словом, чтобы исключить из поиска страницы, содержащие это слово. Например запрос [ dokuwiki -plugin ]
вернёт страницы, содержащие слово «dokuwiki», но не содержащие слово «plugin».
Вы можете использовать минус не только для слова, а также и при частичном поиске, поиске целой фразы или при поиске с использованием пространства имён, как описано ниже. Например, вы можете использовать следующий запрос: [ -"эту фразу не нужно искать" ]
, чтобы исключить из поиска эту фразу.
Вы можете осуществлять поиск по части слова, добавив для этого символ «*» в начале или в конце слова. Например запрос [ wiki ]
вернёт только «wiki», но [ *wiki ]
также соответствует и «DokuWiki» (совпадение по суффиксу). а также можно использовать [ doku* ]
(совпадение префикса) и [ *okuwik* ]
(частичное совпадение).
Помните, что «*» не является шаблонным символом. Нельзя использовать его внутри слова, т. е. [ doku*iki ]
ничего вам не найдёт (даже эту статью).
Вы можете искать целую фразу, просто поместив её в двойные кавычки. Например: [ "installing dokuwiki" ]
.
Также вы можете искать нужную вам информацию в заданном пространстве имён. Используйте префикс «@» («собака») или «ns:» перед ним. Чтобы исключить из поиска пространство имён — «^» («крышечка») или «-ns:».
Например, [ dokuwiki @wiki ^wiki:docs ]
будет искать слово «DokuWiki» внутри пространства имён «wiki», но не «wiki:docs». Аналогично будет действовать запрос [ dokuwiki ns:wiki -ns:wiki:docs ]
.
По умолчанию «ДокуВики» использует логическое И, но можно использовать и логическое ИЛИ, вставив «|» (вертикальную черту) или «or» (английское «или») в качестве разделителя частей запроса. Например, запрос [ plugin | template ]
найдёт страницы, которые содержат хотя бы одно из двух слов: «plugin» или «template». Аналогично действует запрос [ plugin or template ]
Помните, что логическое ИЛИ имеет более низкий приоритет? чем И (используемое по умолчанию). Поэтому запрос [ dokuwiki plugin | template ]
соответствует запросу с группировкой [ (dokuwiki plugin) | template ]
, а не [ dokuwiki (plugin | template) ]
. Группировка описана ниже.
Можно группировать части поискового запроса, используя круглые скобки «()». Скобки используются для повышения приоритета операций внутри них.
Например, запрос [ dokuwiki -(plugin | @plugin) ]
будет искать страницы, содержащие слово DokuWiki, но не содержащие слова plugin и не находящиеся в пространстве имён plugin.
Вы также можете ввести начало имени страницы в поле поиска и подождать пару секунд. В большинстве современных браузеров вы получите всплывающее окно со всеми найденными названиями страниц.
OpenSearch — это стандарт, облегчающий интеграцию поиска сайта в свой браузер. Он поддерживается всеми современными браузерами. В «ДокуВики» он также поддерживается.
Ниже приведена инструкция по добавлению поискового плагина в «Файрфокс» (в других браузерах это скорее всего делается примерно также):
«ДокуВики» использует индексацию, что позволяет быстро осуществлять поиск даже по большим вики-справочникам. Для того, чтобы можно было что-то найти, индекс должен содержать актуальную информацию. Информация о содержимом страницы добавляется и обновляется, когда страница просматривается пользователем.
Каждая страница содержит маленькую невидимую картинку (webbug), обращение к которой, при необходимости, инициирует обновление индекса.2) (Т. е., если дата последнего изменения страницы меньше даты последнего обновления индекса.)
Индекс состоит из файлов с названиями page.idx
, w[n].idx
и i[n].idx
, размещённых в папке index
. w[n].idx
содержит список всех слов (кроме слов-исключений) длинны n байт3), встречающихся на страницах вики. Для каждой строки из w[n].idx
есть соответствующая запись в i[n].idx
файле, которая содержит ссылки на страницы в формате pn*freq
. pn
— это номер строки в файле page.idx
, а freq
показывает количество вхождений. Ссылки на разные страницы разделяются двоеточием.
Индексатор использует файлы слов-исключений, по одному для каждого языка, содержащие списки особо употребительных слов, которые не следует индексировать (например «the» в английском). Поиск по таким словам не вернёт ничего. Эти файлы размещаются в языковой папке «ДокуВики» по адресу <dokuwiki>/inc/lang/<language>/stopwords.txt
и вы можете самостоятельно их редактировать.
Если вы обновляете вашу «ДокуВики» со старой версии, которая не поддерживала индексацию, поиск не будет работать до построения индекса. Вы можете либо подождать, пока кто-либо просмотрит все страницы вашей вики, либо использовать идущий в комплекте скрипт для обновления индекса.
Перевод соответствует оригинальной статье от 02.11.2009 13:52