제22회 검색 데이터로 조직의 지식 지도를 그리다 – 분석 대시보드로 보는 정보 활용의 실태

들어가며

검색 시스템은 정보를 “찾기” 위한 도구이지만, 검색 로그 자체도 귀중한 정보원입니다. “무엇이 검색되고 있는가”, “무엇을 찾을 수 없는가”, “어떤 정보가 자주 열람되는가” – 이러한 데이터는 조직의 정보 니즈와 지식 격차를 비추는 거울입니다.

이 글에서는 Fess의 검색 로그와 OpenSearch Dashboards를 결합하여, 조직의 지식 활용 현황을 시각화하는 분석 대시보드를 구축합니다.

대상 독자

  • 검색 시스템의 이용 현황을 정량적으로 파악하고 싶은 분

  • 정보 활용 전략을 위한 데이터를 수집하고 싶은 분

  • OpenSearch Dashboards의 기본 조작을 배우고 싶은 분

검색 데이터의 가치

검색 로그에서 읽어낼 수 있는 것

검색 로그는 조직의 정보 니즈를 정량적으로 파악할 수 있는 희소한 데이터입니다.

검색 데이터에서 얻을 수 있는 인사이트
데이터 인사이트
검색 키워드 직원이 무엇을 찾고 있는가 (정보 니즈)
제로 히트 쿼리 조직에 부족한 정보 (지식 격차)
클릭 로그 어떤 검색 결과가 유용했는가 (콘텐츠 가치)
검색 빈도의 시계열 정보 니즈의 변화 (트렌드)
인기 워드 조직 전체의 관심사

Fess가 수집하는 데이터

Fess는 다음 데이터를 자동으로 수집 및 축적합니다.

검색 로그 (fess_log.search_log)

관리 화면의 [시스템 정보] > [검색 로그]에서 확인할 수 있습니다. OpenSearch의 인덱스 fess_log.search_log 에 저장됩니다.

주요 필드:

필드명 타입 설명
searchWord keyword 검색 키워드
requestedAt date 검색 일시
hitCount long 검색 결과 건수 (0인 경우 제로 히트)
queryTime long 쿼리 실행 시간 (밀리초)
responseTime long 총 응답 시간 (밀리초)
userAgent keyword 사용자 에이전트
clientIp keyword 클라이언트 IP 주소
accessType keyword 접근 유형 (web, json, gsa, admin 등)
queryId keyword 쿼리 ID (클릭 로그와의 연결에 사용)

클릭 로그 (fess_log.click_log)

검색 결과의 링크가 클릭된 기록입니다. OpenSearch의 인덱스 fess_log.click_log 에 저장됩니다.

필드명 타입 설명
url keyword 클릭된 URL
queryId keyword 검색 로그의 queryId (어떤 검색에서 클릭되었는지 식별)
order integer 검색 결과 내 표시 순위
requestedAt date 클릭 일시
docId keyword 문서 ID

인기 워드

검색 화면에 표시되는 인기 워드는 검색 로그를 기반으로 Fess의 suggest 인덱스에 집계됩니다. 일정 검색 히트 수를 초과한 쿼리가 검색 횟수에 따라 순위가 매겨집니다.

OpenSearch Dashboards를 활용한 시각화

Fess의 검색 로그는 OpenSearch에 저장되므로 OpenSearch Dashboards를 사용한 고급 시각화가 가능합니다.

OpenSearch Dashboards 설정

Docker Compose 구성에 OpenSearch Dashboards를 추가합니다.

services:
  opensearch-dashboards:
    image: opensearchproject/opensearch-dashboards:3.6.0
    ports:
      - "5601:5601"
    environment:
      OPENSEARCH_HOSTS: '["http://opensearch:9200"]'
      DISABLE_SECURITY_DASHBOARDS_PLUGIN: "true"

http://localhost:5601 에 접속하여 Dashboards UI를 사용합니다.

인덱스 패턴 생성

OpenSearch Dashboards에서 Fess의 로그 데이터를 시각화하려면 먼저 인덱스 패턴을 생성해야 합니다.

  1. Dashboards에 접속하여 왼쪽 메뉴에서 [Stack Management] > [Index Patterns]을 선택

  2. [Create index pattern]을 클릭

  3. 다음 인덱스 패턴을 생성

인덱스 패턴 시간 필드 용도
fess_log.search_log requestedAt 검색 로그 분석
fess_log.click_log requestedAt 클릭 로그 분석

대시보드 설계

다음 분석 관점으로 대시보드를 설계합니다. 왼쪽 메뉴의 [Visualize]에서 각 시각화를 생성하고 [Dashboard]에 모읍니다.

검색 이용 현황 개요

일별 검색 횟수 추이

검색 이용량이 어떻게 변화하고 있는지 파악합니다.

  • 인덱스 패턴: fess_log.search_log

  • 시각화: Line (꺾은선 그래프)

  • X축: Date Histogram (필드: requestedAt, 간격: 1d)

  • Y축: Count

이용이 증가하고 있다면 검색 시스템이 정착되고 있다는 증거이며, 감소하고 있다면 개선이 필요합니다.

시간대별 검색 횟수

검색이 많은 시간대를 파악합니다.

  • 시각화: Vertical Bar (막대 그래프)

  • X축: Date Histogram (필드: requestedAt, 간격: 1h)

  • Y축: Count

업무 시작 시간이나 점심 식사 후에 검색이 많다면, 정보 수집이 업무의 일부로 정착되어 있음을 알 수 있습니다.

검색 품질 분석

제로 히트율 추이

제로 히트율은 검색 품질의 중요한 지표입니다. 검색 로그의 hitCount 필드가 0 인 레코드가 제로 히트 쿼리에 해당합니다.

  • 인덱스 패턴: fess_log.search_log

  • 필터: hitCount: 0 을 추가하여 제로 히트 쿼리를 추출

  • 시각화: Line (꺾은선 그래프)

  • X축: Date Histogram (필드: requestedAt, 간격: 1d)

  • Y축: Count

제로 히트율이 높다면 동의어 추가나 크롤 범위 확대가 필요합니다 (제8회 참조).

참고로 관리 화면의 [시스템 정보] > [검색 로그]에서도 제로 히트 쿼리 목록을 확인할 수 있습니다.

제로 히트 쿼리의 워드 클라우드

제로 히트 쿼리를 워드 클라우드로 표시하면, 어떤 정보가 부족한지 한눈에 파악할 수 있습니다.

  • 필터: hitCount: 0

  • 시각화: Tag Cloud

  • 필드: Terms Aggregation (필드: searchWord, 크기: 50)

콘텐츠 가치 분석

클릭 수가 많은 검색 결과

자주 클릭되는 검색 결과는 조직에 있어 가치가 높은 콘텐츠입니다.

  • 인덱스 패턴: fess_log.click_log

  • 시각화: Data Table

  • 필드: Terms Aggregation (필드: url, 크기: 20, 정렬: Count 내림차순)

이러한 콘텐츠의 업데이트와 유지보수를 우선적으로 진행합시다.

클릭 위치 분포

검색 결과의 몇 번째가 클릭되고 있는지 분포를 확인합니다.

  • 인덱스 패턴: fess_log.click_log

  • 시각화: Vertical Bar (막대 그래프)

  • X축: Histogram (필드: order, 간격: 1)

  • Y축: Count

1~3위의 클릭이 많으면 검색 품질이 양호하고, 10위 이후의 클릭이 많으면 랭킹 개선이 필요합니다.

정보 니즈의 경향 분석

인기 키워드 랭킹

조직 전체가 무엇에 관심이 있는지 파악합니다.

  • 인덱스 패턴: fess_log.search_log

  • 시각화: Data Table

  • 필드: Terms Aggregation (필드: searchWord, 크기: 20, 정렬: Count 내림차순)

인기 키워드의 변화는 조직의 과제와 관심사의 변화를 반영합니다.

분석 결과의 활용

검색 데이터 분석 결과는 다음과 같은 시책에 활용할 수 있습니다.

콘텐츠 전략

  • 제로 히트 쿼리: 부족한 콘텐츠를 특정하고 작성을 의뢰

  • 인기 키워드: 자주 검색되는 토픽의 정보를 충실히 함

  • 클릭률이 낮은 결과: 콘텐츠 개선 또는 삭제를 검토

검색 품질 개선

  • 동의어 추가: 제로 히트 쿼리에서 동의어 후보를 발견

  • Key Match 설정: 인기 쿼리에 대한 최적의 결과를 설정

  • Boost 조정: 클릭률을 기반으로 랭킹을 개선

IT 투자 판단

  • 이용량 증가: 서버 리소스 증강 계획

  • 새로운 정보 니즈: 추가 데이터 소스 연계 검토

  • AI 기능 니즈: AI 검색 모드 도입 판단 (제19회 참조)

정기 리포트 작성

분석 결과를 정기적으로 리포트로 정리하여 관계자에게 공유합시다.

월간 리포트 항목 예시

  1. 검색 이용 현황 요약 (총 검색 횟수, 전월 대비)

  2. 제로 히트율 추이와 개선 상황

  3. 인기 키워드 Top 10

  4. 새로 발견된 지식 격차

  5. 실시한 개선책과 그 효과

  6. 다음 달 개선 계획

정리

이 글에서는 검색 로그를 활용한 조직의 지식 시각화에 대해 설명했습니다.

  • 검색 로그에서 얻을 수 있는 인사이트 (정보 니즈, 지식 격차, 콘텐츠 가치)

  • OpenSearch Dashboards를 활용한 시각화 대시보드 구축

  • 분석 결과의 콘텐츠 전략, 검색 품질 개선, IT 투자에의 활용

  • 정기 리포트를 통한 지속적 개선

검색 데이터는 “조직의 지식 지도”를 그리기 위한 귀중한 자산입니다. AI 및 차세대 검색편은 여기까지입니다. 다음 회는 최종회로서 시리즈 전체를 총괄합니다.

참고 자료