검색 기능

개요

Fess 는 강력한 전문 검색 기능을 제공합니다. 본 섹션에서는 검색 기능의 상세 설정과 사용 방법에 대해 설명합니다.

검색 결과 건수 표시

기본 동작

검색 결과가 10,000건을 초과하는 경우 검색 결과 화면의 건수 표시는「약 10,000건 이상」으로 표시됩니다. 이는 OpenSearch의 성능을 고려한 기본 설정입니다.

검색 예제

image0

정확한 히트 건수 표시

10,000건 이상의 정확한 히트 건수를 표시하려면 fess_config.properties 에서 다음 설정을 변경합니다.

query.track.total.hits=100000

이 설정을 통해 최대 100,000건까지의 정확한 히트 건수를 가져올 수 있습니다. 단, 큰 값을 설정하면 성능에 영향을 줄 수 있습니다.

경고

값을 너무 크게 설정하면 검색 성능이 저하될 수 있습니다. 실제 사용 상황에 맞게 적절한 값을 설정하십시오.

검색 옵션

기본 검색

Fess 에서는 검색 상자에 키워드를 입력하기만 하면 전문 검색이 실행됩니다. 여러 키워드를 입력하면 AND 검색이 실행됩니다.

검색 엔진

위 예제에서는「검색」과「엔진」두 키워드를 모두 포함하는 문서가 검색됩니다.

OR 검색

OR 검색을 실행하려면 키워드 사이에 OR 을 삽입합니다.

검색 OR 엔진

NOT 검색

특정 키워드를 제외하려면 키워드 앞에 - (마이너스 기호)를 붙입니다.

검색 -엔진

구문 검색

완전 일치 구문을 검색하려면 큰따옴표로 묶습니다.

"검색엔진"

필드 지정 검색

특정 필드를 지정하여 검색할 수 있습니다.

title:검색엔진
url:https://fess.codelibs.org/

주요 필드:

  • title: 문서 제목

  • content: 문서 본문

  • url: 문서 URL

  • filetype: 파일 유형(예: pdf, html, doc)

  • label: 레이블(분류)

와일드카드 검색

와일드카드를 사용한 검색이 가능합니다.

  • *: 0개 이상의 임의 문자열

  • ?: 임의의 1개 문자

검색*
검색?진

퍼지 검색

철자 오류나 표기 차이에 대응하는 퍼지 검색을 사용할 수 있습니다. 기본적으로 4자 이상의 키워드에 대해 자동으로 퍼지 검색이 적용됩니다.

검색엔진~

~ 뒤에 숫자를 지정하여 편집 거리를 지정할 수 있습니다.

검색 결과 정렬

검색 결과는 기본적으로 관련도 순으로 정렬됩니다. 관리 화면의 설정이나 API 매개변수로 다음과 같은 정렬 순서를 지정할 수 있습니다.

  • 관련도 순(기본값)

  • 업데이트 일시 순

  • 생성 일시 순

  • 파일 크기 순

패싯 검색

패싯 검색을 사용하면 검색 결과를 카테고리별로 필터링할 수 있습니다. 기본적으로 레이블(label) 필드가 패싯으로 설정되어 있습니다.

검색 화면 왼쪽에 표시되는 패싯을 클릭하여 검색 결과를 필터링할 수 있습니다.

검색 결과 하이라이트

검색 키워드는 검색 결과의 제목과 요약 부분에서 하이라이트 표시됩니다. 하이라이트 설정은 fess_config.properties 에서 사용자 정의할 수 있습니다.

query.highlight.tag.pre=<strong>
query.highlight.tag.post=</strong>
query.highlight.fragment.size=60
query.highlight.number.of.fragments=2

추천 기능

검색 상자에 문자를 입력하면 추천(입력 자동완성)이 표시됩니다. 추천은 과거 검색 키워드나 인기 있는 검색 키워드를 기반으로 생성됩니다.

추천 기능은 관리 화면의「일반」설정에서 활성화/비활성화를 전환할 수 있습니다.

검색 로그

Fess 는 모든 검색 쿼리와 클릭 로그를 기록합니다. 이러한 로그는 다음 목적으로 사용할 수 있습니다.

  • 검색 품질 분석 및 개선

  • 사용자 행동 분석

  • 인기 검색 키워드 파악

  • 검색 결과가 0건인 키워드 특정

검색 로그는 OpenSearch의 fess_log 인덱스에 저장되며, OpenSearch Dashboards에서 시각화하고 분석할 수 있습니다. 자세한 내용은 kibana 를 참조하십시오.

성능 튜닝

검색 타임아웃 설정

검색 타임아웃 시간을 설정할 수 있습니다. 기본값은 10초입니다.

query.timeout=10000

검색 쿼리 최대 문자 수

보안과 성능을 위해 검색 쿼리의 최대 문자 수를 제한할 수 있습니다.

query.max.length=1000

캐시 활용

검색 결과 캐시를 활성화하여 동일한 검색 쿼리에 대한 응답 시간을 단축할 수 있습니다. 캐시 설정은 시스템 요구 사항에 맞게 조정하십시오.

문제 해결

검색 결과가 표시되지 않음

  1. 인덱스가 올바르게 생성되었는지 확인하십시오.

  2. 크롤링이 정상적으로 완료되었는지 확인하십시오.

  3. 검색 대상 문서에 접근 권한이 설정되어 있지 않은지 확인하십시오.

  4. OpenSearch가 정상적으로 작동하는지 확인하십시오.

검색 속도가 느림

  1. OpenSearch의 힙 메모리 크기를 확인하십시오.

  2. 인덱스의 샤드 수와 복제본 수를 최적화하십시오.

  3. 검색 쿼리의 복잡도를 확인하십시오.

  4. 하드웨어 리소스(CPU, 메모리, 디스크 I/O)를 확인하십시오.

관련성 낮은 결과가 표시됨

  1. 부스트 설정을 조정하십시오(query.boost.title, query.boost.content 등).

  2. 퍼지 검색 설정을 재검토하십시오.

  3. Analyzer 설정을 확인하십시오.

  4. 필요한 경우 상용 지원에 문의하십시오.