Добавьте полнотекстовый поиск Elasticsearch в Nextcloud.

Для поиска внутри содержимого файлов в Nextcloud установите фреймворк полнотекстового поиска, приложение платформы Elasticsearch и поставщик файлов; затем подключите приложения к совместимому серверу Elasticsearch 8 и создайте индекс. Это добавит возможность поиска текста в документах, но также добавит отдельную службу для обеспечения безопасности, мониторинга и обслуживания. В текущем файле README коннектора указана поддерживаемая основная версия Elasticsearch 8, поэтому перед выбором конкретной версии Elasticsearch проверьте совместимость с установленным приложением.

Выберите конфигурацию, подходящую для вашего сервера.

Elasticsearch помогает пользователям находить слова внутри документов, выходя за рамки имен файлов и основных метаданных. Компромисс заключается в необходимости обеспечения безопасности и обслуживания еще одной службы, а также в использовании памяти, диска и процессора во время индексирования. Для небольшого облака такие накладные расходы могут быть неоправданными; команда, работающая с большим объемом документов, может счесть поиск контента оправданным вложением средств.

Интеграция включает три приложения: полнотекстовый поиск координирует работу поставщика и платформы, Elasticsearch связывает фреймворк с поисковым движком, а Files предоставляет содержимое файлов. Одновременно можно выбрать только одно приложение платформы. См. README фреймворка и README поставщика Files .

В этих примерах для Linux используются пути и учетная запись Debian или Ubuntu www-data. Для контейнеров или других дистрибутивов пути и учетные записи служб следует настроить.

1. Подтвердите совместимость и подготовьте Elasticsearch.

Перед установкой Elasticsearch проверьте версии Nextcloud и приложения. В файле README коннектора указано, что начиная с версии приложения 26.0.0 он поддерживает Elasticsearch 8. Не следует предполагать совместимость с Elasticsearch 9 только потому, что это более новая версия; проверьте файл README коннектора и вики-страницу установки для вашей версии.

Установите Elasticsearch, следуя инструкциям Elastic для вашей операционной системы и совместимой основной версии. Пакет Elastic для Debian включает в себя OpenJDK, поэтому отдельная установка Java для этого пакета обычно не требуется. См. документацию Elastic по установке пакетов Debian . Elasticsearch должен быть доступен только с хоста Nextcloud или частной сети приложений, если ваша архитектура не требует иного. Elasticsearch 8 включает функции безопасности во время установки пакета; сохраняйте аутентификацию и TLS для сетевых развертываний и никогда не предоставляйте неаутентифицированный конечный пункт поиска в общедоступный интернет.

После запуска службы протестируйте её конечную точку локально, используя схему и учетные данные, установленные во время установки. Для локального защищенного экземпляра запрос может выглядеть следующим образом curl --cacert /path/to/http_ca.crt -u elastic https://localhost:9200: введите пароль при появлении запроса, а не сохраняйте его в истории командной строки. Используйте сертификат CA, сгенерированный для вашей установки, а не путь-заполнитель. В успешном ответе должен быть указан узел Elasticsearch и его версия. Если эта проверка не пройдена, исправьте службу, доверие к сертификату или учетные данные, прежде чем настраивать Nextcloud.

2. Установите поисковые приложения Nextcloud.

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

cd /var/www/nextcloud
sudo -E -u www-data php occ app:install fulltextsearch
sudo -E -u www-data php occ app:install fulltextsearch_elasticsearch
sudo -E -u www-data php occ app:install files_fulltextsearch

Используйте HTTP-аккаунт вашего дистрибутива и следуйте рекомендациям Nextcloud по настройке OCC . Если приложение установлено, но отключено, используйте команду ` occ app:enable APP_ID. Обеспечьте совместимость всех трех приложений с вашей версией Nextcloud.

3. Настройте платформу и поставщика файлов.

Откройте настройки администратора и выберите раздел «Полнотекстовый поиск». Выберите Elasticsearch в качестве платформы поиска, затем введите адрес сервлета Elasticsearch, имя индекса и любые необходимые учетные данные для подключения или параметры сертификата, предоставляемые установленным коннектором. Адрес должен быть доступен из процесса сервера Nextcloud. Если обе службы работают в одной контейнерной сети, localhostобычно указывается сам контейнер Nextcloud, а не контейнер Elasticsearch; используйте вместо этого имя службы Elasticsearch или внутреннее имя хоста.

Используйте имена индексов в нижнем регистре, например nextcloud, ; создайте отдельный индекс для каждого облака, если они используют общую службу. Раздельные имена упрощают администрирование, но не заменяют контроль доступа. Не размещайте учетные данные на скриншотах, в заявках и истории командной строки.

В настройках поставщика файлов включите индексирование для типов файлов и диапазона размеров, необходимых вашим пользователям. Возможность поиска содержимого зависит от поставщика и поддержки извлечения; индексирование только имен файлов не сделает текст внутри PDF-файла доступным для поиска. Обработчик вложений Elasticsearch извлекает текст из распространенных форматов файлов, таких как PDF и документы Office, но при этом действуют ограничения на извлечение и поддерживаются определенные форматы. В Elasticsearch 8 функция загрузки вложений включена в дистрибутив; см. справочник по обработчику вложений Elastic . Для сканированных файлов или изображений обычное извлечение текста из документов не осуществляется с помощью OCR: добавляйте поставщик OCR только в том случае, если вам необходима эта возможность и вы проверили его требования. На сервере с ограниченными ресурсами следует устанавливать консервативные ограничения на размер файлов.

4. Создайте индекс и поддерживайте его в актуальном состоянии.

Перед индексированием выполните проверку работоспособности. Из каталога Nextcloud используйте:

sudo -E -u www-data php occ fulltextsearch:check

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

sudo -E -u www-data php occ fulltextsearch:index

Первый запуск выполняет обход файлов выбранных пользователей и может занять много времени. Поддерживайте стабильную работу SSH-сессии или запускайте команду в терминале, например tmux, и отслеживайте загрузку ЦП, памяти и дискового пространства. Индексирование копирует извлеченный текст и метаданные файлов в Elasticsearch; оно не заменяет резервные копии Nextcloud. Запланируйте защиту поискового индекса и его учетных данных, и помните, что удаление или перестроение индекса может потребовать еще одного полного прохода индексирования.

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

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

После завершения индексирования выполните поиск уникальной фразы, которая встречается в небольшом тестовом документе, но отсутствует в его имени файла. Убедитесь, что Nextcloud возвращает ожидаемый файл для пользователя, имеющего разрешение на его чтение. Затем загрузите или отредактируйте второй тестовый документ, разрешите запуск настроенного фонового задания или рабочей задачи и повторите поиск. Успешная проверка статуса сама по себе не доказывает, что содержимое файла было проиндексировано.

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

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

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

Удалите предупреждение Nextcloud о блокировке файлов с помощью Redis.

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

Что нужно, чтобы получить рейтинг безопасности Nextcloud A+

Что нужно, чтобы получить рейтинг безопасности Nextcloud A+

Устраните распространенные ошибки сканирования Nextcloud с помощью текущих обновлений, HTTPS и HSTS, точного доверия к обратному прокси-серверу и проверок на общедоступном сервере.

Внедрите серверное шифрование Nextcloud с измеримым эффектом.

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

Добавьте полнотекстовый поиск Elasticsearch в Nextcloud.

Подключите поиск файлов Nextcloud к Elasticsearch, проиндексируйте содержимое документов и выберите конфигурацию, соответствующую вашим потребностям в отношении сервера и безопасности.

Настройте надежную политику истечения срока действия для удаленных файлов в Nextcloud.

Настройте надежную политику истечения срока действия для удаленных файлов в Nextcloud.

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

Удалите предупреждение Nextcloud об отсутствии индексов в базе данных.

Удалите предупреждение Nextcloud об отсутствии индексов в базе данных.

Запустите функцию восстановления OCC в Nextcloud в безопасных условиях, просмотрите изменения в базе данных и выясните, почему предупреждение может оставаться.

Увеличьте лимит загрузки веб-страниц в Nextcloud до более чем 2 ГБ.

Увеличьте лимит загрузки веб-страниц в Nextcloud до более чем 2 ГБ.

Разрешите загрузку файлов больших размеров через браузер Nextcloud, согласовав параметры PHP, Nginx или Apache, временного хранилища и тайм-аута, а также проверьте, какое ограничение блокирует файл.

Устранить предупреждение Nextcloud о нехватке памяти PHP на веб-сервере.

Установите ограничение на объем памяти, фактически используемый Nextcloud для PHP, перезапустите нужную службу и подтвердите значение 512 МБ в разделе «Обзор администратора».

Подключите совместимое с S3 хранилище к внешнему хранилищу Nextcloud.

Подключите совместимый сегмент объектного хранилища в Nextcloud, используя его бэкэнд S3, с указанием правильной конечной точки, учетных данных, области доступа и этапов проверки.

Переместите данные Nextcloud на внешний диск, не повреждая хранилище.

Переместите данные Nextcloud на внешний диск, не повреждая хранилище.

Безопасное перемещение каталога данных Linux Nextcloud на внешний диск с использованием постоянного монтирования UUID, режима обслуживания, проверенной копии и символической ссылки на исходный путь.