Nextcloud에 Elasticsearch 전문 검색 기능을 추가하세요

Nextcloud에서 파일 내용을 검색하려면 전체 텍스트 검색 프레임워크, Elasticsearch 플랫폼 앱, 그리고 파일 공급자를 설치한 다음, 이러한 앱들을 호환되는 Elasticsearch 8 서버에 연결하고 인덱스를 구축해야 합니다. 이렇게 하면 문서 텍스트를 검색할 수 있게 되지만, 보안, 모니터링 및 유지 관리가 필요한 별도의 서비스가 추가됩니다. 현재 커넥터 README에서는 Elasticsearch 8을 지원하는 주요 버전으로 명시하고 있으므로, 특정 Elasticsearch 버전을 선택하기 전에 설치된 앱 릴리스와의 호환성을 확인하십시오.

서버에 맞는 설정을 선택하세요

Elasticsearch는 파일 이름과 기본 메타데이터를 넘어 문서 내에서 단어를 찾는 데 도움을 줍니다. 하지만 그만큼 보안 및 유지 관리가 필요한 서비스가 하나 더 늘어나고, 인덱싱 과정에서 메모리, 디스크, CPU 사용량이 증가합니다. 소규모 클라우드 환경에서는 이러한 추가 비용을 감당하기 어려울 수 있지만, 문서 작업이 많은 팀이라면 콘텐츠 검색 기능을 활용하는 것이 비용 대비 효과적일 수 있습니다.

이 통합은 세 가지 앱으로 구성됩니다. 전체 텍스트 검색은 공급자와 플랫폼을 연결하고, Elasticsearch는 프레임워크를 검색 엔진에 연결하며, Files는 파일 콘텐츠를 제공합니다. 한 번에 하나의 플랫폼 앱만 선택할 수 있습니다. 프레임워크 README 와 Files 공급자 README를 참조하십시오 .

이 Linux 예제는 Debian 또는 Ubuntu 경로와 www-data계정을 사용합니다. 컨테이너 또는 다른 배포판에 맞게 경로와 서비스 사용자를 조정하십시오.

1. 호환성을 확인하고 Elasticsearch를 준비합니다.

Elasticsearch를 설치하기 전에 Nextcloud 및 앱 버전을 확인하십시오. 커넥터 README에 따르면 앱 버전 26.0.0부터 Elasticsearch 8을 지원합니다. Elasticsearch 9이 더 최신 버전이라고 해서 호환된다고 가정하지 마십시오. 사용 중인 릴리스에 맞는 커넥터 README 및 설치 위키를 확인하십시오.

Elasticsearch는 사용 중인 운영 체제 및 호환되는 주요 버전에 맞는 Elasticsearch 설치 지침을 따르세요. Elasticsearch의 Debian 패키지에는 OpenJDK가 포함되어 있으므로 일반적으로 별도의 Java 설치는 필요하지 않습니다. 자세한 내용은 Elasticsearch의 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 플랫폼 및 전체 텍스트 검색 - 파일을 설치하고 활성화하세요 . Nextcloud 설치 디렉터리에서 Nextcloud의 명령줄 관리 도구를 사용할 수도 있습니다 occ. 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일반적으로 Elasticsearch 컨테이너가 아닌 Nextcloud 컨테이너 자체를 가리키므로, Elasticsearch 서비스 이름 또는 내부 호스트 이름을 사용해야 합니다.

인덱스 이름은 소문자로 작성하고 nextcloud, 클라우드들이 동일한 서비스를 공유하는 경우 각 클라우드마다 별도의 인덱스를 지정하십시오. 별도의 이름은 관리 효율성을 높여주지만, 접근 제어를 대체하는 것은 아닙니다. 자격 증명은 스크린샷, 티켓, 셸 기록에 포함시키지 마십시오.

파일 공급자 설정에서 사용자가 필요로 하는 파일 형식 및 크기 범위에 대한 인덱싱을 활성화하십시오. 검색 가능한 콘텐츠는 공급자와 추출 지원 여부에 따라 달라집니다. 파일 이름만 인덱싱한다고 해서 PDF 파일 내의 텍스트를 검색할 수 있는 것은 아닙니다. Elasticsearch의 첨부 파일 처리기는 PDF 및 Office 문서와 같은 일반적인 파일 형식에서 텍스트를 추출하지만, 추출 제한 및 지원 형식이 적용됩니다. Elasticsearch 8에서는 첨부 파일 수집 기능이 배포판에 포함되어 있습니다. 자세한 내용은 Elasticsearch의 첨부 파일 처리기 참조를 확인하십시오 . 스캔 파일이나 이미지의 경우 일반 문서 텍스트 추출은 OCR을 사용하지 않습니다. OCR 기능이 필요하고 요구 사항을 확인한 경우에만 OCR 공급자를 추가하십시오. 리소스가 제한된 서버에서는 파일 크기 제한을 보수적으로 설정하십시오.

4. 인덱스를 구축하고 최신 상태로 유지하십시오.

색인 생성 전에 상태 점검을 실행하세요. Nextcloud 디렉터리에서 다음 명령어를 사용하세요.

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

보고된 연결, 플랫폼 또는 공급자 오류를 먼저 해결하십시오. 그런 다음 초기 인덱싱을 시작하십시오.

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

첫 실행 시 선택한 사용자의 파일을 검색하므로 시간이 오래 걸릴 수 있습니다. SSH 세션을 안정적으로 유지하거나 터미널 멀티플렉서(예: `lsbsl-config`)를 사용하여 명령을 실행하고 tmuxCPU, 메모리 및 디스크 공간을 모니터링하십시오. 인덱싱은 추출된 텍스트와 파일 메타데이터를 Elasticsearch에 복사하는 작업이며, Nextcloud 백업을 대체하는 것은 아닙니다. 검색 인덱스와 자격 증명을 보호하고, 인덱스를 삭제하거나 재구축하면 전체 인덱싱을 다시 수행해야 할 수 있다는 점을 유념하십시오.

지속적인 업데이트를 위해서는 Nextcloud 백그라운드 작업이 안정적으로 실행되는지 확인하십시오. 이 프로젝트는 fulltextsearch:live거의 즉각적인 인덱싱을 위한 워커도 제공합니다. 워커를 사용하면 업데이트 지연 시간을 줄일 수 있지만, 관리해야 할 서비스가 추가됩니다. 우선 예약된 작업을 사용하고, 지연 시간이 중요한 경우에만 워커를 추가하십시오. 상위 서비스 예제를 사용자의 경로, 계정 및 데이터베이스 시작 순서에 맞게 수정하십시오.

결과를 확인하고 절충안을 선택하세요.

인덱싱이 완료되면 파일 이름에는 없지만 문서 내용에 포함된 특정 구문을 검색합니다. 읽기 권한이 있는 사용자가 Nextcloud에서 예상 파일을 반환하는지 확인합니다. 그런 다음 두 번째 테스트 문서를 업로드하거나 편집하고, 구성된 백그라운드 작업 또는 라이브 워커를 실행한 후 검색을 반복합니다. 상태 확인이 성공했다고 해서 파일 내용이 인덱싱되었다는 것을 보장하는 것은 아닙니다.

파일 이름만 표시되는 경우 파일 공급자, 파일 형식 및 크기 설정, 압축 해제 지원, 인덱스 로그를 확인하십시오. 연결 실패의 경우 Nextcloud 네트워크의 엔드포인트, TLS 신뢰도 및 자격 증명을 확인하십시오.

콘텐츠 검색이 또 다른 상태 저장 서비스를 유지 관리할 만큼 중요한 경우 Elasticsearch를 선택하십시오. 파일 이름 검색만으로 충분하다면 추가적인 리소스 및 보안 오버헤드를 감수할 필요가 없습니다. 프로덕션 환경으로 업그레이드하기 전에 Nextcloud, 앱 및 Elasticsearch의 정확한 조합을 확인하십시오. 이 설정은 모든 배포 방식을 지원하는 것은 아닙니다.

댓글 남기기

Nextcloud에 Elasticsearch 전문 검색 기능을 추가하세요

Nextcloud의 파일 검색 기능을 Elasticsearch에 연결하고, 문서 콘텐츠를 색인화하고, 서버 및 보안 요구 사항에 맞는 설정을 선택하세요.

Nextcloud에서 삭제된 파일에 대한 신뢰할 수 있는 만료 정책을 설정하세요

Nextcloud에서 삭제된 파일에 대한 신뢰할 수 있는 만료 정책을 설정하세요

Nextcloud에서 지정된 보존 기간이 지나면 삭제된 파일을 제거하도록 설정하고, 백그라운드 작업을 안정적으로 예약하며, 모든 사용자의 휴지통을 비우는 명령을 사용하지 않도록 구성하십시오.

Nextcloud의 누락된 데이터베이스 인덱스 경고를 지우세요

Nextcloud의 누락된 데이터베이스 인덱스 경고를 지우세요

Nextcloud의 OCC 복구 기능을 안전하게 실행하고, 데이터베이스 변경 사항을 미리 보고, 경고가 계속 표시되는 이유를 확인하십시오.

Nextcloud의 웹 업로드 제한을 2GB 이상으로 상향 조정하세요

Nextcloud의 웹 업로드 제한을 2GB 이상으로 상향 조정하세요

PHP, Nginx 또는 Apache, 임시 저장소 및 시간 초과 설정을 조정하여 Nextcloud 브라우저의 대용량 파일 업로드를 허용하고, 어떤 제한 사항이 파일 업로드를 차단하는지 확인하십시오.

Nextcloud 웹 서버의 PHP 메모리 경고를 해결하는 방법

Nextcloud에서 실제로 사용하는 PHP 메모리 제한을 설정하고, 해당 서비스를 재시작한 다음, 관리자 개요에서 512MB 설정이 제대로 되었는지 확인하십시오.

S3 호환 버킷을 Nextcloud 외부 스토리지에 연결하기

Nextcloud의 S3 백엔드를 사용하여 호환되는 객체 스토리지 버킷을 마운트하고, 올바른 엔드포인트, 자격 증명, 액세스 범위 및 검증 단계를 설정하십시오.

기존 스토리지를 손상시키지 않고 Nextcloud 데이터를 외장 드라이브로 옮기기

기존 스토리지를 손상시키지 않고 Nextcloud 데이터를 외장 드라이브로 옮기기

영구 UUID 마운트, 유지 관리 모드, 검증된 복사본 및 원본 경로 심볼릭 링크를 사용하여 Linux Nextcloud 데이터 디렉터리를 외부 드라이브로 안전하게 이동합니다.

Nextcloud 데이터베이스 업데이트 후 오류 발생 시 우선 확인 사항

SQL 오류를 진단하고, 데이터베이스 연결을 확인하고, 중단된 마이그레이션을 안전하게 완료하여 업데이트 후 Nextcloud 액세스를 복원하세요.

OCC를 사용하여 분실한 Nextcloud 관리자 암호를 재설정하세요

Nextcloud의 OCC 명령어를 사용하여 서버 셸에서 관리자 암호를 재설정하는 방법을 안내합니다. 사용자 이름, 권한 및 외부 로그인 공급자에 대한 지침도 제공됩니다.

Nextcloud를 제공하는 HTTPS 엔드포인트에 HSTS 헤더를 추가하세요.

Apache, NGINX 또는 TLS 프록시에서 헤더를 설정하여 Nextcloud의 HSTS 경고를 해제한 다음 공개 HTTPS 응답을 안전하게 확인하십시오.