Использование библиотеки Xapian позволяет значительно увеличить скорость работы поиска и даёт ряд дополнительных функциональных преимуществ, недоступных при использовании встроенного механизма поиска.
Содержание
Настройка
Зависимости
Для работы поиска необходимо иметь установленными в системе собственно библиотеку Xapian и биндинги для языка Python (пакеты xapian-core и xapian-bindings), доступные на сайте http://www.xapian.org/, версии не ниже 1.0.6. Кроме того, пользователям Windows также придётся установить pywin32, доступный на сайте http://sourceforge.net/projects/pywin32/.
Для обработки прикреплённых файлов МойнМойн использует дополнения-фильтры (filter plugins). Ниже представлен список включённых в дистрибутив МойнМойн фильтров:
Тип файла |
Зависимость |
Примечания |
Текстовые файлы (.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 (в комментариях доступен перевод данной таблицы):
Xapian search
Configuration of the Xapian based indexed search, see HelpOnXapian.
Имя переменной | По умолчанию | Описание |
xapian_index_dir | None | Directory where the Xapian search index is stored (None = auto-configure wiki local storage) |
xapian_index_history | False | True to enable indexing of non-current page revisions. |
xapian_search | False | True to enable the fast, indexed search (based on the Xapian search library) |
xapian_stemming | False | True to enable Xapian word stemmer usage for indexing / searching. |
(Повторная) генерация индекса
Для начальной, повторной и инкрементальной генерации индекса можно использовать поставляемую в дистрибутиве утилиту командной строки moin.
Для (повторной) генерации индекса достаточно выполнить
moin --config-dir=/путь/к/каталогу/конфигурации/вики --wiki-url=url-вики/ index build --mode=rebuild
Подробнее о команде moin index см. на странице ПомощьПоКомандамМойн.
Перестройка индекса обязательна в случае изменения значения хотя бы одного из параметров xapian_index_history, xapian_index_dir или xapian_stemming конфигурации.
Тестирование
Проверить возможность использования Xapian и доступность индекса можно на странице SystemInfo. Для проверки, выполняется ли поиск с использованием Xapian, достаточно включить параметр show_timings («показывать время выполнения») в конфигурации вики, выполнить поисковой запрос и проверить наличие записи _xapianSearch в нижней части страницы.
Использование
Поиск с использованием Xapian аналогичен использованию других поисковых серверов. В связи с наличием развитых поисковых возможностей у Xapian, добавлен ряд новых элементов синтаксиса поисковых запросов, на данный момент не поддерживаемых встроенным поисковым движком (обычно называемым «moin search» — поиском Мойн). Для дополнительной информации см. КакИскать и/или новый расширенный диалог поиска, доступный на странице НайтиСтраницу, чтобы узреть, что стало доступно и возможно.
Параметр
Значение по умолчанию
Описание
xapian_search
False — отключено
При установке значения данного параметра в True («включено») поиск с использованием Xapian будет разрешен на вики.
МойнМойн автоматически отключает xapian_search (и использует встроенный поиск) если не может найти рабочий индекс. Проверить, используется ли Xapian, можно на странице SystemInfo («системная информация»)
xapian_index_history
False — отключено
Если данная значение данного параметра равно True («включено»), индексируются все ревизии всех страниц (за исключением системных, коих доступная только одна версия). Это позволяет пользователям при необходимости искать по старым версиям страниц (если соответствующая опция в НайтиСтраницу была включена).
Перестройка индекса необходима при изменении данного параметра. Кроме того, рекомендуется проверить размер индекса после повторной его генерации, так как включение данной функции может потребовать большое количество дискового пространства для хранения индекса большой вики. Перестройка может занять длительное время в случае индексирования истории версий страниц.
xapian_index_dir
None — отсутствует
Данный параметр позволяет указать нестандартную директорию для сохранения индекса. По умолчанию индекс хранится в каталоге data_dir/cache/xapian.
После изменения данного параметра необходимо повторно сгенерировать индекс.
xapian_stemming
False — отключено
При установке значения данного параметра в True («включено») будет производиться морфологический поиск: слова будут индексироваться в исходном и нормализованном виде и слова запроса будут нормализованы при поиске. Это означает, что при поиске слова «тесты» также будут найдены вхождения слов «тестовый», «тестом», «тестер» и т. д.
После изменения значения данного параметра необходимо перестроить индекс.