Fess
SHA-256Fess는 배포가 쉬운 엔터프라이즈급 검색 서버로, 크롤러와 관리 인터페이스를 내장하고 있으며, OpenSearch 기반이지만 관련 경험이 필요하지 않습니다.
즉시 사용 가능한 엔터프라이즈 검색 서버, 크롤러와 관리 백엔드 내장
주요 기능
- 바로 사용 가능한 검색 서비스: 다운로드 후 압축만 풀면 실행되며, 복잡한 검색 엔진 설정이 필요 없습니다
- 웹 페이지, 파일 시스템, 데이터베이스 크롤러를 내장하여 문서를 자동으로 색인합니다
- Office, PDF, 압축 파일 등 일반적인 형식 지원
- 시각적 관리 백엔드: 브라우저에서 크롤러 대상 설정, 작업 스케줄링, 인덱스 관리
- Docker 배포 지원, 원클릭 시작
할 수 없는 것
- •기본적으로 OpenSearch를 백엔드로 사용하며, 최초 시작 시 관련 플러그인이 자동으로 다운로드되므로 네트워크 연결이 필요할 수 있습니다.
- •프로덕션 환경에서는 기본 관리자 비밀번호를 변경하고 TLS 암호화 전송을 구성하는 것이 좋습니다.
- •크롤러로 대량의 문서를 수집할 때는 스케줄 간격과 리소스 제한을 적절히 설정하여 비즈니스 시스템에 영향을 주지 않도록 하세요.
- •중국어 형태소 분석은 추가 구성이 필요하며, 공식 문서에서 lang_zh 분석기에 대한 설명을 참조하세요.
사용 사례
- 기업 내부 문서 검색(예: 공유 폴더의 Word, PDF)
- 웹사이트 내부 검색(Google Site Search 대체)
- 지식 베이스 또는 Wiki의 콘텐츠 검색(Confluence/Jira 등 데이터 소스와 연동)
상세 설명
Fess는 강력한 기능을 갖추고 있으며 매우 쉽게 배포할 수 있는 엔터프라이즈급 검색 엔진 서버입니다. Java 실행 환경을 지원하는 모든 플랫폼에서 빠르게 설치하고 실행할 수 있습니다. Fess는 OpenSearch를 기반으로 구축되었지만, 사용자는 OpenSearch에 대해 전혀 알지 못해도 바로 사용을 시작할 수 있습니다. 직관적인 브라우저 관리 인터페이스와 내장 크롤러 시스템을 제공하여 웹 서버, 파일 시스템 및 데이터 스토어(CSV 파일, 데이터베이스 등)에 있는 문서를 크롤링할 수 있습니다. Microsoft Office 문서, PDF, 압축 파일 등 다양한 파일 형식을 지원합니다. 또한 Fess Site Search 컴포넌트는 Google Site Search를 무료로 대체할 수 있습니다. Fess는 Apache License 2.0 오픈 소스 라이선스를 채택하고 있으며, CodeLibs 커뮤니티에서 지속적으로 유지 관리하고 있습니다.
문제 해결 & FAQ (2)
문제 해결AI 검색 챗봇이 토큰 제한으로 LLM 응답이 잘렸을 때 왜 계속 명확하지 않은 의도(UNCLEAR intent)에 대해 확인을 요청하나요?
fess에서 AbstractLlmClient의 의도 탐지는 LLM 응답이 잘렸을 때 잘못된 UNCLEAR를 반환할 수 있습니다. 종료 이유 확인이 "length"(OpenAI)만 인식하고 "MAX_TOKENS"(Gemini) 또는 "max_tokens"(Anthropic)는 인식하지 않기 때문입니다. 또한 부분적으로 파싱 가능한 잘린 JSON이 폴백 검색을 트리거하는 대신 유효한 불명확 응답으로 처리될 수 있습니다. 이를 수정하려면 isEmptyContentWithLengthFinish를 업데이트하여 모든 절단 종료 이유(예: Set.of("length", "MAX_TOKENS", "max_tokens", "model_length");)를 감지하도록 합니다. 또한 detectIntent를 수정하여 내용이 비어 있지 않더라도 잘린 응답에 대해 강제로 폴백 검색을 수행하도록 합니다. 임시 해결 방법으로 LLM 클라이언트의 max_tokens 설정을 늘려 절단을 방지하십시오.
문제 해결Fess 채팅 오류 사전에서 작은따옴표가 JavaScript 문자열을 깨뜨리는 문제를 해결하는 방법은?
이것은 fess_label_en.properties에서 이스케이프되지 않은 아포스트로피로 인해 발생한 Fess 버그이며, PR #3126에서 수정되었습니다. 해당 수정이 포함된 릴리스로 Fess를 업그레이드하세요. 해결 방법으로는 src/main/resources/fess_label_en.properties의 1155번째 줄 부근에 있는 해당 레이블을 편집하여 ASCII 아포스트로피(')를 타이포그래픽 아포스트로피(')로 교체하거나 제거한 다음 다시 빌드/배포하세요. 소스 수정을 위해서는 JS 사전이 생성될 때 속성 값이 JavaScript 이스케이프 처리되어 '가 \'가 되도록 하세요.
태그
시작하기
소프트웨어 설치
배포판에 맞는 패키지를 설치 (dpkg / rpm / AppImage)
최신 버전의 zip 패키지를 다운로드하여 압축을 해제합니다
디렉터리로 이동한 후 ./bin/fess 를 실행하여 서비스를 시작합니다
브라우저에서 http://localhost:8080/ 에 접속하여 검색 화면을 사용하거나, http://localhost:8080/admin/ 으로 관리 화면에 접속합니다(기본 계정 admin/admin)
- 최신 버전의 zip 패키지를 다운로드하여 압축을 해제합니다
- 디렉터리로 이동한 후 ./bin/fess 를 실행하여 서비스를 시작합니다
- 브라우저에서 http://localhost:8080/ 에 접속하여 검색 화면을 사용하거나, http://localhost:8080/admin/ 으로 관리 화면에 접속합니다(기본 계정 admin/admin)
SHA-256 체크섬 확인됨
GitHub 공식 Release 페이지에서 추출된 체크섬
SHA256 체크섬
4f3aa5255d79c257bc97c7b828309666b9116d6712eff658d78aee26da4a2e59이 체크섬은 GitHub Release 페이지에서 추출되었습니다. 다운로드 후 파일 무결성을 확인하세요.
이 플랫폼의 모든 SHA-256 체크섬은 프로젝트의 공식 GitHub Release 페이지에서 추출되었으며, 어떠한 변경도 없습니다. GitHub Releases 페이지에서 직접 검증할 수 있습니다.
오픈소스 투명성
GitHub 소스 보기제거 정보
Fess 프로세스를 중지하고 압축 해제 디렉토리를 삭제하면 됩니다. Docker를 사용하는 경우 docker-compose down을 실행하고 컨테이너 이미지를 삭제하십시오. 인덱스 데이터는 기본적으로 fess 디렉토리에 저장되므로, 완전히 제거하려면 수동으로 삭제하십시오.
추가 의존성 없음
다운로드 후 바로 사용 가능. 추가 런타임이 필요하지 않습니다.
문제 발생? 아래 FAQ 확인
2 FAQs