====== Поиск ====== Поиск осуществляется через форму, которая расположена сверху справа (при использовании стандартного [[template|шаблона]] она размещается именно там). ===== Синтаксис ===== Обычно «[[dokuwiki|ДокуВики]]» использует поиск с логическим «И». То есть будут использоваться все слова, которые вы введёте в запросе. Поиск всегда регистронезависим. Ниже описан расширенный поисковый синтаксис «ДокуВики». Все варианты могут комбинироваться друг с другом. Далее по тексту мы будем использовать квадратные скобки ''[ %%...%% ]'', чтобы выделить поисковый запрос. ==== Слова, которые нужно исключить (-) ==== Вы можете поставить минус «-» непосредственно перед словом, чтобы исключить из поиска страницы, содержащие это слово. Например запрос ''[ 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. ===== Быстрый поиск ===== Вы также можете ввести начало [[pagename|имени страницы]] в поле поиска и подождать пару секунд. В большинстве современных браузеров вы получите всплывающее окно со всеми найденными названиями страниц. ===== OpenSearch ===== {{ :opensearch.png|OpenSearch в «Файрфоксе»}} [[http://www.opensearch.org/|OpenSearch]] --- это стандарт, облегчающий интеграцию поиска сайта в свой браузер. Он поддерживается всеми современными браузерами. В «ДокуВики» он также поддерживается. Ниже приведена инструкция по добавлению поискового плагина в «Файрфокс» (в других браузерах это скорее всего делается примерно также): - откройте страницу вашей вики в браузере; - кликните на маленькую стрелку в левой части строки поиска; - Выберите «Добавить „DokuWiki“»((Название может отличаться, если вы переименовали свою вики.)). ===== Справочная информация о поисковом индексе ===== «ДокуВики» использует индексацию, что позволяет быстро осуществлять поиск даже по большим вики-справочникам. Для того, чтобы можно было что-то найти, индекс должен содержать актуальную информацию. Информация о содержимом страницы добавляется и обновляется, когда страница просматривается пользователем. Каждая страница содержит маленькую невидимую картинку ([[wp>webbug]]), обращение к которой, при необходимости, инициирует обновление индекса.((Помните, что т. н. [[wp>webbug]] используется также и для других целей. См. [[http://forum.dokuwiki.org/post/3116|forum.dokuwiki.org/post/3116]].)) (Т. е., если дата последнего изменения страницы меньше даты последнего обновления индекса.) Индекс состоит из файлов с названиями ''page.idx'', ''w//[n]//.idx'' и ''i//[n]//.idx'', размещённых в папке ''index''. ''w//[n]//.idx'' содержит список всех слов (кроме слов-исключений) длинны //n// байт((В кодировке UTF-8, используемой «ДокуВики», символ может занимать более одного байта.)), встречающихся на страницах вики. Для каждой строки из ''w//[n]//.idx'' есть соответствующая запись в ''i//[n]//.idx'' файле, которая содержит ссылки на страницы в формате ''pn*freq''. ''pn'' --- это номер строки в файле ''page.idx'', а ''freq'' показывает количество вхождений. Ссылки на разные страницы разделяются двоеточием. [[indexer|Индексатор]] использует файлы слов-исключений, по одному для каждого языка, содержащие списки особо употребительных слов, которые не следует индексировать (например «the» в английском). Поиск по таким словам не вернёт ничего. Эти файлы размещаются в языковой папке «ДокуВики» по адресу ''/inc/lang//stopwords.txt'' и вы можете самостоятельно их редактировать. Если вы обновляете вашу «ДокуВики» со старой версии, которая не поддерживала индексацию, поиск не будет работать до построения индекса. Вы можете либо подождать, пока кто-либо просмотрит все страницы вашей вики, либо использовать идущий в комплекте [[cli#indexer.php|скрипт]] для обновления индекса. //Перевод соответствует оригинальной статье от [[doku>search?rev=1257166350|02.11.2009 13:52]]//