понедельник, 11 марта 2013 г.

MoinMoin2. Документация. Индексы

Общая информация

MoinMoin полагается на индексы, которые ускоряют доступ к  метаданным элемента и данным; кроме того, он позволяет иметь более простые бэкэенды, так как самую тяжёлую работу делает слой индекса.
Внутри индексы используются для многих операций, таких как поиск элемента, история, итерирование по элементам, поиск, интерактивный поиск и т.д.
MoinMoin не сможет стартовать с повреждённым, недоступным или несуществующим индексом. Поэтому Вы должны сперва настроить и корректно инициализировать индексы.
moin автоматически обновляет индексы при создании, обновлении, удалении, разрушении или переименовании элементов посредством api хранилища moin, слоя индесов или выше.

Настройка

В вашем конфиге вики должен быть элемент index_storage.
Мы используем whoosh для индексирования, и, так как whoosh поддерживает различные бэкэнды хранилища, этот элемент обеспечивает потенциальную поддержку всех этих бэкэндов.
В общем эта запись имеет такую форму:
index_storage=kind,(p1,p2,...),{kw1=...,kw2=...,...}
На данный момент мы поддерживаем только тип FileStorage хранилища индесов, который имеет только один параметр - каталог индекса:
index_storage='FileStorage',("/path/to/moin-2.0/wiki/index",),{}
Примечания для FileStorage:
  • путь должен быть абсолютным, доступным для записи и должен бытьна быстрой, локальной файловой системе
  • Moin будет использовать каталог index.temp, если Вы строите индекс во "временном месте" (temporary location)

Руководство по moin index скрипту

Вы можете исользовать группу скриптов "moin index-*" для управления индексами.
Большая часть скриптов для управления индексами поддерживает опцию --tmp для использования временного расположения индексов. Это полезно в случае, если Вы хотите проводить операции с индексами параллельно с работающей вики, которая использует нормальное расположение индексов.

moin index-create

Создаёт пустой валидный индекс.
Примечание: приложению WSGI moin требуется индекс для успешного запуска. Так как скрипты moin index-* тоже базируются на приложении WSGI moin, это приводит к пробеме курицы и яйца. Для решения этой проблемы команда moin имеет опцию -i (--index-create), которая создаёт индекс при запуске.
Кроме того, если ещё не существует хранилище, Вам может понадобиться опция -s (--storage-create) для создания при запуске пустого хранилища.

moin index-build

Обрабатывает все ревизии вики и добавляет индексируемые документы в индекс.
Примечание:
  • Для больших вики, это может занять много времени. Подумайте об использовании --tmp
  • index-build НЕ очищает сперва индекс
  • index-build не проверяет текущее содержимое вики. Поэтому Вы не должны запускать index-build несколько раз для тех же данных или той же вики

moin index-update

Сравнивает индекс с текущим содержимым хранилища и обновляет по необходимости индекс (добавляет, удаляет, обновляет) для соответствия текущему содержимому.
Примечание: Вы можете использовать это после создания индекса во временной локации для добавления изменений, которые произошли в процессе построения индекса. index-update можно запускать несколько раз для обработки новых данных.

moin index-destroy

Уничтожает индекс так, что от него ничего не остаётся

moin index-move

Перемещает индекс из временной локации в место постоянного расположения

moin index-optimize

Оптимизирует индекс. См документацию whoosh.

moin index-dump

Выводит содержимое индекса в читаемом виде, например, для отладки.
Примечание: только поля с атрибутом stored=True могут быть отображены.

Создание индекса для единичной вики

Если ваша вики свеженькая и пустая

Использование:
moin index-create --storage-create --index-create
moin index-create -s -i # тоже, но короче
Теперь хранилище и индексы инициализированы и пусты.
Если Вы добавите информацию в вики, индекс будет автоматически обновлён.

Если ваша вики уже содержит данные и выключена

Если индекс по какой-то причине должен быть пересроен, например, он потерян или повреждён, используйте:
moin index-create -i
moin index-build # может занять много времени

Если ваша вики уже содержит данные и должна оставаться включённой

Используйте:
moin index-create -i --tmp
moin index-build --tmp # может занять время
# должно работать быстро, у нас уже готово почти 99.x%
moin index-update --tmp
# теперь лучше выключить вики или, по крайней мере,
# убедиться, что она не изменяется
# убеждаемся, что у нас проиндексирован весь контект,
# должно быть очень быстрым
moin index-update --tmp
moin index-move # мгновенно
# снова запускаем вики или разрешаем измененеия
Примечание: индексированиеа загружает ваш сервер, так что если Вы регулярно перестраиваете индекс, запланируйте это на то время, когда ваш сервер не очень занят.

Создаём индекс для фермы вики

Если Вы запускаете ферму вики (несколько связанных вики), Вы можете разделить индекс между разными вики, так что пользователи могут искать в одной вики, а видеть результаты и из других.
До того, как Вы начнёте, Вы должны подготовить конфиг вашей вики. Например, для компании, использующей две вики, например Sales и Engineering, то их конфиги будут выглядеть соответсвтенно так:
Sales:
interwikiname = u"Sales"
index_storage = 'FileStorage', ("/path/to/moin-2.0/wiki/index",),{}
Engineering:
interwikiname = u"Engineering"
index_storage = 'FileStorage', ("/path/to/moin-2.0/wiki/index",),{}
Теперь  построим индекс:
moin index-create -i # создаём пустой индекс
# теперь добавляем индексы в обе вики
moin index-build # c конфигурацией для вики Sales
moin index-build # c конфигурацией для вики Engineering
Теперь у Вас должны быть общие индексы для всех вики.
Примечание: не стройте индексы для нескольких вики параллельно. Это не поддерживается.

Комментариев нет:

Отправить комментарий