## Please edit system and help pages ONLY in the master wiki!
## For more information, please see MoinMoin:MoinDev/Translation.
##master-page:HelpOnXapian
##master-date:2010-01-10T15:22:06Z
#acl -All:write Default
#format wiki
#language ru

Использование библиотеки Xapian позволяет значительно увеличить скорость работы поиска и даёт ряд дополнительных функциональных преимуществ, недоступных при использовании встроенного механизма поиска.

<<TableOfContents>>

= Настройка =

== Зависимости ==

Для работы поиска необходимо иметь установленными в системе собственно библиотеку Xapian и биндинги для языка Python (пакеты `xapian-core` и `xapian-bindings`), доступные на сайте http://www.xapian.org/, версии не ниже 1.0.6. Кроме того, пользователям Windows также придётся установить pywin32, доступный на сайте http://sourceforge.net/projects/pywin32/.

Для обработки прикреплённых файлов МойнМойн использует дополнения-фильтры (filter plugins). Ниже представлен список включённых в дистрибутив МойнМойн фильтров:
||<tablewidth="100%"rowbgcolor="#ffffcc"25%> '''Тип файла'''    || '''Зависимость'''                || '''Примечания''' ||
|| Текстовые файлы (.txt)                                       || —                                || Фильтр пытается использовать кодировки UTF-8 и ISO-8859-1 (или ASCII в случае, если предыдущие попытки оказались неудачны) ||
|| Изображение JPEG (.jpg)                                      || —                                || Извлекаются данные EXIF ||
|| Файлы !OpenOffice.org 1.x (.sx?)                             || —                                || Формат файлов, использовавшийся в старых версиях `OpenOffice.org/StarOffice` ||
|| Файлы в формате Open Document Format (.odt, .ods, .odp, ...) || —                                || Формат файлов, использующийся в новых версиях `OpenOffice.org/StarOffice` ||
|| Бинарные файлы                                               || —                                || При обработке используется алгоритм, аналогичный реализованному в утилите `strings` и чёрный список для сущностей, которые нет желания искать. ||
|| Файлы MS Word (.doc)                                         || `antiword`                       || Фильтр вызывает `antiword` ||
|| Файлы MS Excel  (.xls)                                       || `catdoc`                         || Фильтр вызывает `xls2csv` ||
|| Файлы MS Powerpoint (.ppt)                                   || `catdoc`                         || Фильтр вызывает `catppt` ||
|| Файлы PDF (.pdf)                                             || `xpdf-utils` или `poppler-utils` || Фильтр вызывает `pdftotext` ||

После установки дополнительных фильтров (или зависимостей) необходимо (повторно) создать индекс. Xapian будет использовать новые фильтры или вспомогательные библиотеки автоматически. При очередном поисковом запросе поисковая выдача может содержать результаты, ссылающиеся напрямую на прикреплённые файлы.

== Конфигурация ==

В [[КакНастраивать|конфигурации вики]] имеется ряд параметров, отвечающих за конфигурацию Xapian (в комментариях доступен перевод данной таблицы):

<<WikiConfigHelp(section=xapian)>>
{{{#!wiki comment
||<tablewidth="100%"rowbgcolor="#ffffcc"> '''Параметр''' || '''Значение по умолчанию''' || '''Описание''' ||
|| `xapian_search`                                       || `False` — отключено         || При установке значения данного параметра в `True` («включено») поиск с использованием Xapian будет разрешен на вики.<<BR>> (!) МойнМойн автоматически отключает xapian_search (и использует встроенный поиск) если не может найти рабочий индекс. Проверить, используется ли Xapian, можно на странице SystemInfo («системная информация») ||
|| `xapian_index_history`                                || `False` — отключено         || Если данная значение данного параметра равно `True` («включено»), индексируются все ревизии всех страниц (за исключением системных, коих доступная только одна версия). Это позволяет пользователям при необходимости искать по старым версиям страниц (если соответствующая опция в <<GetText(FindPage)>> была включена).<<BR>> /!\ Перестройка индекса необходима при изменении данного параметра. Кроме того, рекомендуется проверить размер индекса после повторной его генерации, так как включение данной функции может потребовать большое количество дискового пространства для хранения индекса большой вики. Перестройка может занять длительное время в случае индексирования истории версий страниц. ||
|| `xapian_index_dir`                                    || `None` — отсутствует        || Данный параметр позволяет указать нестандартную директорию для сохранения индекса. По умолчанию индекс хранится в каталоге ''`data_dir`''`/cache/xapian`.<<BR>> /!\ После изменения данного параметра необходимо повторно сгенерировать индекс. ||
|| `xapian_stemming`                                     || `False` — отключено         || При установке значения данного параметра в `True` («включено») будет производиться морфологический поиск: слова будут индексироваться в исходном и нормализованном виде и слова запроса будут нормализованы при поиске. Это означает, что при поиске слова «тесты» также будут найдены вхождения слов «тестовый», «тестом», «тестер» и т. д.<<BR>> /!\ После изменения значения данного параметра необходимо перестроить индекс. ||
}}}

== (Повторная) генерация индекса ==

Для начальной, повторной и инкрементальной генерации индекса можно использовать поставляемую в дистрибутиве утилиту командной строки `moin`.

Для (повторной) генерации индекса достаточно выполнить
{{{
moin --config-dir=/путь/к/каталогу/конфигурации/вики --wiki-url=url-вики/ index build --mode=rebuild
}}}
Подробнее о команде {{{moin index}}} см. на странице [[ПомощьПоКомандамМойн#index-build|ПомощьПоКомандамМойн]].

/!\ Перестройка индекса '''обязательна''' в случае изменения значения хотя бы одного из параметров `xapian_index_history`, `xapian_index_dir` или `xapian_stemming` конфигурации.

== Тестирование ==

Проверить возможность использования Xapian и доступность индекса можно на странице SystemInfo. Для проверки, выполняется ли поиск с использованием Xapian, достаточно включить параметр `show_timings` («показывать время выполнения») в конфигурации вики, выполнить поисковой запрос и проверить наличие записи `_xapianSearch` в нижней части страницы.

= Использование =

Поиск с использованием Xapian аналогичен использованию других поисковых серверов. В связи с наличием развитых поисковых возможностей у Xapian, добавлен ряд новых элементов синтаксиса поисковых запросов, на данный момент не поддерживаемых встроенным поисковым движком (обычно называемым «moin search» — поиском Мойн). Для дополнительной информации см. КакИскать и/или новый расширенный диалог поиска, доступный на странице <<GetText(FindPage)>>, чтобы узреть, что стало доступно и возможно.
