fess

Web Scraping & CrawlingDevOpsJava

★ 1,131주당 +3조회 4

무엇인가

Fess는 Java 런타임이 있는 플랫폼이면 설치해 돌릴 수 있는 자체 호스팅 엔터프라이즈 검색 서버다. 사내 문서와 웹 사이트를 하나의 색인으로 모아 검색하게 하는 서버 계열에 속하며, Google Site Search가 사라진 자리를 대신하는 Fess Site Search를 같은 코드베이스에서 제공한다.

어떻게 동작하나

검색 엔진 백엔드는 OpenSearch이고, Fess 자체는 브라우저 관리 UI로 설정한다. 내장 크롤러가 웹 사이트, 파일 시스템, 데이터베이스·CSV 같은 데이터 스토어에서 문서를 수집해 OpenSearch에 색인한다. 수집 대상은 관리 UI의 Web, File, Data Store 설정 페이지에 등록하고 Scheduler 페이지에서 크롤러를 시작한다. 색인된 문서는 전문 검색, 패싯, 정렬, 검색 제안으로 조회되고 REST API로도 노출된다. 확장은 데이터 스토어, 인제스트, 스크립트, 테마 플러그인 단위로 이루어지고, UI와 텍스트 분석은 20개 이상 언어를 다룬다.

무엇과 다른가

외부 SaaS 검색과 달리 색인과 원본 문서가 자기 서버 안에 남는다. OpenSearch를 직접 다룰 필요 없이 관리 UI에서 설정이 끝나고, LDAP·OpenID Connect·SAML·SPNEGO·Microsoft Entra ID로 SSO를 붙일 수 있다. 검색 결과는 역할과 권한 기준으로 필터링된다. 웹 사이트에 삽입하는 사이트 검색은 FSS JS Generator가 만든 스크립트로 같은 색인을 조회한다.

어떻게 쓰나

배포 형식은 ZIP, RPM, DEB 세 가지다. ZIP은 압축을 풀고 bin/fess를 실행한다. Docker 이미지는 ghcr.io에 게시되어 있고 docker-fess 저장소의 Compose 파일로 OpenSearch까지 함께 띄운다. 실행 후 검색 UI는 http://localhost:8080/, 관리 UI는 http://localhost:8080/admin/이며 기본 계정은 admin/admin이다.

전제와 한계

ZIP, RPM, DEB 패키지는 Java 21 이상을 요구한다. Docker 이미지는 OpenSearch를 포함하지만 그 외 설치 방식에서는 OpenSearch를 별도로 준비해야 한다. 지원 버전과 설정 세부는 설치 가이드를 따른다. 통합 테스트는 OpenSearch와 함께 실행 중인 Fess 서버, 그리고 fess-testdata 저장소를 전제로 한다.

유사 도구