Перейти к основному содержимому

Глобальный поиск

Что такое Глобальный поиск?

  • Глобальный поиск позволяет искать информацию на всём сайте Moodle, к которой у вас есть доступ. Например, студент может искать определённые лекционные заметки в своих курсах, а преподаватель — элементы курса, связанные с предметом.
  • Эту функцию необходимо включить в разделе «Расширенные возможности» администратором, а затем на странице «Управление глобальным поиском» выбрать поисковую машину.

Когда глобальный поиск включён, появляется окно поиска рядом с меню пользователя.

Поиск по сайту (когда глобальный поиск включён)
  • Также можно добавить блок «Глобальный поиск» на страницы курса.

Что я могу искать?

Вы можете искать курсы, информацию об элементах курса и некоторые их содержимое, например, сообщения форума, главы книги, записи глоссария или страницы совместной Вики.

Можно искать содержимое HTML-блоков, а если администратор установит параметр «Курсы» как «Искать во всех курсах, к которым пользователь имеет доступ», то можно будет искать и курсы, которые видны пользователям, но в которых они не записаны (это курсы с гостевым доступом или если у пользователя есть возможность просматривать все курсы).

Как это работает?

  • Нажмите на значок поиска рядом с меню пользователя и введите поисковый запрос в появившееся окно или введите запрос в окно в блоке «Глобальный поиск», если он включён.
  • На следующем экране вы можете просто нажать кнопку поиска, чтобы выполнить поиск везде, или развернуть фильтр для поиска в определённых областях:
Фильтрация поиска
  • Затем вы увидите результаты, полученные из всех областей Moodle, к которым у вас есть доступ:
Результаты поиска

Специфические функции Solr

Эти функции доступны, только если вы используете Solr в качестве поисковой машины.

Функции поискового запроса

Вы можете улучшить поиск, используя любую из следующих функций поискового запроса:

  • Указание поля для поиска путём добавления префикса к поисковому запросу: 'title:', 'content:', 'name:', или 'intro:', например, 'title:news' возвращает результаты со словом 'news' в заголовке.
  • Булевы операторы ('AND', 'OR', 'NOT') для объединения или исключения ключевых слов.
  • Символы подстановки ('*' или '?') для представления символов в поисковом запросе.
  • Поиск по близости (''), например, mood2 возвращает "moodle" (на расстоянии 2 букв от "mood"), Moodle Australia~3 возвращает результаты, содержащие "Moodle HQ in Perth, Australia" (заданные термины находились в пределах 3 слов друг от друга).
  • Повышение релевантности ('^') для повышения значимости определённых слов или фраз, например, "Perth Australia"^5 "Australia" вернёт результаты с фразой "Perth Australia" как более релевантные.

Индексация содержимого файлов

Solr имеет возможность индексировать содержимое файлов, таких как файловые ресурсы и приложения к сообщениям форума.

Дополнительные фильтры

Вы также можете фильтровать по идентификатору пользователя и искать по группам.

Как это настроить?

Примечание: для глобального поиска нужна поисковая машина. Рекомендуется сначала всё настроить, проиндексировать содержимое сайта и только затем включить глобальный поиск.

В Moodle core включены две поисковые машины: Простой глобальный поиск и Solr. См. документацию для разработчиков по плагинам поисковых машин, если вы хотите написать свой собственный.

Настройка простого поиска

Простой глобальный поиск предоставляет функции глобального поиска без необходимости установки внешней поисковой машины.

Ссылка на видео: Простой глобальный поиск

Настройка Solr

  • Рекомендуется использовать последнюю доступную версию Solr 5.
  • Moodle поддерживает сервер Solr начиная с версии 4.0, хотя вы можете использовать только скрипт настройки схемы Solr, который мы предоставляем с Moodle, начиная с Solr 5. Рекомендуется использовать последнюю доступную версию Solr 5; то же самое будет применяться к Solr 6 после его выпуска.

Общая настройка

  1. Настройте функцию в Администрирование > Плагины > Поиск > Управление глобальным поиском, выбрав Solr в качестве поисковой машины и отметив необходимые области поиска.
  2. В Администрирование > Плагины > Поиск > Solr, установите Имя хоста как localhost, Порт как 8983 и Название индекса как 'moodle' (название индекса в Solr).
  3. Если вы используете Solr с шифрованием SSL и базовой аутентификацией (см. ниже, если вы хотите использовать клиентские сертификаты вместо этого), вам необходимо настроить это. Это важно, если Solr не установлен на сервере веб-сервера.
    1. Перейдите в Администрирование > Плагины > Поиск > Solr.
    2. Установите Режим безопасности как Да.
    3. При необходимости установите номер порта (иногда установки SSL используют порт 443).
    4. Введите имя пользователя и пароль.
  4. Если вы используете Solr с шифрованием SSL через клиентские сертификаты, вам необходимо настроить Moodle соответствующим образом. Это важно, если Solr не установлен на сервере веб-сервера.
    1. Вам понадобятся отдельный ключевой файл и файл cacert в формате pem, расположенные на вашем сервере Moodle и доступные для процесса PHP.
    2. Перейдите в Администрирование > Плагины > Поиск > Solr.
    3. Установите Режим безопасности как Да.
    4. Сертификат SSL как /path/to/certs/solr-ssl.cacert.pem.
    5. SSL ключ как /path/to/certs/solr-ssl.key.pem.
    6. Пароль SSL ключа как Пароль, используемый для блокировки SSL ключа.
    7. Имя SSL CA сертификатов как /path/to/certs/solr-ssl.cacert.pem.
  5. Теперь вам нужно заполнить созданный индекс Solr данными вашего сайта. Вы можете сделать это через веб-интерфейс, перейдя в Администрирование > Отчёты > Информация о глобальном поиске, или из командной строки, запустив скрипт search/cli/indexer.php. Скрипт CLI — рекомендуемый вариант для крупных сайтов. # sudo -u www-run php search/cli/indexer.php --force
  6. Включите глобальный поиск в Администрирование > Расширенные возможности.

Индексация файлов

Solr имеет возможность индексировать содержимое файлов, таких как файловые ресурсы и приложения к сообщениям форума. Для этого используется движок Tika, который поставляется в комплекте с Solr. Чтобы включить эту функцию:

  1. В Администрирование > Плагины > Поиск > Solr включите флажок Включить индексацию файлов.
  2. Установите Максимальный размер файла для индексации (КБ) на некоторое значение — по умолчанию это 2097152 (2 ГБ).
    • Файлы большего размера не будут отправляться в Solr для индексации, но имя файла всё равно будет проиндексировано.

Новое в версии 34: Индексация файлов теперь работает ретроактивно — т. е., если вы настроили глобальный поиск без включённой индексации файлов, а позже включили индексацию файлов, файлы, связанные с существующими объектами, будут включены.

Как установить Solr

Вам необходимо установить расширение PHP Solr. Вы можете скачать официальные последние версии с PECL: Package: solr. Минимальная требуемая версия — PECL Solr 2.1 для ветки PHP 5 и PECL Solr 2.4 для ветки PHP 7.

Основные шаги по установке (с использованием Apache веб-сервера):

Linux (Debian/Ubuntu)

Используя APT:

sudo apt install php-solr
sudo service apache2 restart

Если вы не можете установить модуль SOLR PHP через APT, попробуйте следующее:

С PHP5.x

sudo apt-get install libpcre3-dev libxml2-dev libcurl4-openssl-dev
sudo apt-get install php5-dev
sudo apt-get install php-pear
sudo pecl install solr
sudo sh -c "echo 'extension=solr.so' > /etc/php5/apache2/conf.d/solr.ini"
sudo sh -c "echo 'extension=solr.so' > /etc/php5/cli/conf.d/solr.ini"