개요
Fess 는 강력한 전문 검색 기능을 제공합니다. 본 섹션에서는 검색 기능의 상세 설정과 사용 방법에 대해 설명합니다.
검색 결과 건수 표시
기본 동작
query.track.total.hits 의 기본값은 10000 입니다. 따라서 검색 결과가 10,000건을 초과하는 경우, 검색 결과 화면의 건수 표시는「약 10,000건 이상」으로 표시됩니다. 이는 OpenSearch 가 정확한 총 히트 건수를 계산하는 상한을 query.track.total.hits 의 값으로 제한함으로써, 대규모 검색 시 성능 영향을 억제하기 위한 기본 설정입니다.
검색 예제

정확한 히트 건수 표시
더 많은 건수까지 정확한 히트 건수를 표시하려면 fess_config.properties 에서 query.track.total.hits 의 값을 변경합니다.
위 예제에서는 최대 100,000건까지의 정확한 히트 건수를 가져올 수 있습니다. 건수 표시가「약 N건 이상」으로 표시되는 임계값도 이 설정값에 연동하여 변경됩니다. 단, 큰 값을 설정하면 성능에 영향을 줄 수 있습니다.
경고
값을 너무 크게 설정하면 검색 성능이 저하될 수 있습니다. 실제 사용 상황에 맞게 적절한 값을 설정하십시오.
검색 옵션
기본 검색
Fess 에서는 검색 상자에 키워드를 입력하기만 하면 전문 검색이 실행됩니다. 여러 키워드를 입력하면 AND 검색이 실행됩니다.
위 예제에서는「검색」과「엔진」두 키워드를 모두 포함하는 문서가 검색됩니다.
OR 검색
OR 검색을 실행하려면 키워드 사이에 OR 을 삽입합니다.
NOT 검색
특정 키워드를 제외하려면 키워드 앞에 - (마이너스 기호)를 붙입니다.
구문 검색
완전 일치 구문을 검색하려면 큰따옴표로 묶습니다.
필드 지정 검색
특정 필드를 지정하여 검색할 수 있습니다.
주요 필드:
title: 문서 제목content: 문서 본문url: 문서 URLfiletype: 파일 유형(예: pdf, html, doc)label: 레이블(분류)mimetype: MIME 타입(예: text/html, application/pdf)filename: 파일명host: 호스트명site: 사이트(호스트명과 경로의 조합)lang: 언어
검색 대상 필드는 fess_config.properties 의 query.additional.search.fields 에서 추가할 수 있습니다.
와일드카드 검색
와일드카드를 사용한 검색이 가능합니다.
*: 0개 이상의 임의 문자열?: 임의의 1개 문자
퍼지 검색
철자 오류나 표기 차이에 대응하는 퍼지 검색을 사용할 수 있습니다. 기본적으로 4자 이상의 키워드에 대해 일반 검색과 함께 퍼지 검색 쿼리가 추가로 실행됩니다.
~ 뒤에 숫자를 지정하여 편집 거리를 지정할 수 있습니다.
검색 결과 정렬
검색 결과는 기본적으로 관련도 순으로 정렬됩니다. 관리 화면의 설정이나 API 매개변수로 다음과 같은 정렬 순서를 지정할 수 있습니다.
관련도 순(
score, 기본값)업데이트 일시 순(
last_modified)생성 일시 순(
created)파일 크기 순(
content_length)파일명 순(
filename)클릭 수 순(
click_count)즐겨찾기 수 순(
favorite_count)
정렬 대상 필드는 fess_config.properties 의 query.additional.sort.fields 에서 추가할 수 있습니다.
패싯 검색
패싯 검색을 사용하면 검색 결과를 카테고리별로 필터링할 수 있습니다. 기본적으로 레이블(label) 필드가 패싯으로 설정되어 있습니다.
검색 화면 왼쪽에 표시되는 패싯을 클릭하여 검색 결과를 필터링할 수 있습니다.
검색 결과 하이라이트
검색 키워드는 검색 결과의 제목과 요약 부분에서 하이라이트 표시됩니다. 하이라이트 설정은 fess_config.properties 에서 사용자 정의할 수 있습니다.
query.highlight.tag.pre/query.highlight.tag.post: 하이라이트 부분을 감싸는 태그(기본값:<strong>/</strong>)query.highlight.fragment.size: 하이라이트할 단편(프래그먼트)의 문자 수(기본값:60)query.highlight.number.of.fragments: 표시할 프래그먼트의 최대 수(기본값:2)
요약(스니펫)으로 하이라이트 대상이 되는 필드는 query.highlight.content.description.fields (기본값: hl_content,digest)에서 지정합니다.
추천 기능
검색 상자에 문자를 입력하면 추천(입력 자동완성)이 표시됩니다. 추천은 과거 검색 키워드나 인기 있는 검색 키워드를 기반으로 생성됩니다.
추천 기능은 관리 화면의「일반」설정에서 활성화/비활성화를 전환할 수 있습니다.
검색 로그
Fess 는 모든 검색 쿼리와 클릭 로그를 기록합니다. 이러한 로그는 다음 목적으로 사용할 수 있습니다.
검색 품질 분석 및 개선
사용자 행동 분석
인기 검색 키워드 파악
검색 결과가 0건인 키워드 특정
검색 로그와 클릭 로그는 OpenSearch 의 fess_log 프리픽스를 가진 인덱스에 저장됩니다 (검색 쿼리는 fess_log.search_log, 클릭 로그는 fess_log.click_log 인덱스). 이러한 로그는 OpenSearch Dashboards 를 통해 시각화 및 분석할 수 있습니다. Fess 에는 시각화용 대시보드 정의 파일이 동봉되어 있습니다. 자세한 내용은 검색 로그 시각화 설정 를 참조하십시오.
성능 튜닝
검색 타임아웃 설정
검색 타임아웃 시간을 설정할 수 있습니다. 기본값은 10초입니다.
검색 쿼리 최대 문자 수
보안과 성능을 위해 검색 쿼리의 최대 문자 수를 제한할 수 있습니다.
캐시 활용
Fess 자체에는 검색 결과(검색 응답)를 캐시하는 기능이 없습니다. 다만, 백엔드의 OpenSearch 가 샤드 요청 캐시 및 쿼리 캐시를 엔진 레벨에서 제공하며, 동일 조건의 검색에 대한 응답 시간 단축에 기여합니다. 이는 OpenSearch 측의 기능이므로, 필요에 따라 OpenSearch 의 설정에서 조정하십시오.
문제 해결
검색 결과가 표시되지 않음
인덱스가 올바르게 생성되었는지 확인하십시오.
크롤링이 정상적으로 완료되었는지 확인하십시오.
롤/권한 기반의 검색 필터링으로 인해 현재 사용자(게스트 포함)에 대해 대상 문서가 제외되지 않는지 확인하십시오.
OpenSearch 가 정상적으로 작동하는지 확인하십시오.
검색 속도가 느림
OpenSearch 의 힙 메모리 크기를 확인하십시오.
인덱스의 샤드 수와 복제본 수를 최적화하십시오.
검색 쿼리의 복잡도를 확인하십시오.
하드웨어 리소스(CPU, 메모리, 디스크 I/O)를 확인하십시오.
관련성 낮은 결과가 표시됨
부스트 설정을 조정하십시오(
query.boost.title,query.boost.content등).퍼지 검색 설정을 재검토하십시오.
Analyzer 설정을 확인하십시오.
필요한 경우 상용 지원에 문의하십시오.
Rank Fusion 을 활용하여 검색 정확도를 향상시킬 수도 있습니다. 자세한 내용은 Rank Fusion 설정 을 참조하십시오.