JSCODE Logo
프로그래밍 과외블로그후기멘토진
회사명 : JSCODE대표 : 박재성사업자 등록번호 : 244-22-01557통신판매업 : 제 2023-인천미추홀-0381 호
학원 명칭 : 제이에스코드(JSCODE)원격학원학원설립ㆍ운영 등록번호 : 제6063호

서울특별시 구로구 경인로 20가길 11(오류동, 아델리아)

Copyright ⓒ 2025 JSCODE - 최상위 현업 개발자들의 프로그래밍 교육 All rights reserved.

이용약관개인정보처리방침
← 블로그 목록으로 돌아가기

[실습] 역인덱스(Inverted Index)를 활용한 데이터 조회

JSCODE 박재성
JSCODE 박재성
2025-12-06
author
JSCODE 박재성
category
Elasticsearch
createdAt
Dec 6, 2025
series
실전에서 바로 써먹는 Elasticsearch 입문 (검색 최적화편)
slug
exercise-search-using-inverted-index
type
post
updatedAt
Dec 6, 2025 04:48 AM

✅ 역인덱스(Inverted Index)를 활용한 데이터 조회

  1. 기존 products 인덱스 삭제
    1. # 기존 products 인덱스 삭제 DELETE /products
 
  1. 인덱스 생성
    1. [기존에 배웠던 방법]
      # 인덱스 생성 PUT /products # 매핑 정의 PUT /products/_mappings { "properties": { "name": { "type": "text" } } }
       
      [조금 더 편리한 방법]
      # 인덱스 생성 + 매핑 정의 (자주 쓰이니 정리해두자!) PUT /products { "mappings": { "properties": { "name": { "type": "text" } } } }
       
  1. 인덱스 잘 생성됐는 지 확인
    1. # 인덱스 잘 생성됐는 지 확인 GET /products
       
  1. 도큐먼트 삽입
    1. # 데이터 넣기 POST /products/_create/1 { "name": "Apple 2025 맥북 에어 13 M4 10코어" } POST /products/_create/2 { "name": "Apple 2024 에어팟 4세대" } POST /products/_create/3 { "name": "Apple 2024 아이패드 mini A17 Pro" }
       
  1. 도큐먼트 조회
    1. # 'Apple 2024 아이패드'로 검색 GET /products/_search { "query": { "match": { "name": "Apple 2024 아이패드" } } }
응답값
{ "took": 7, "timed_out": false, "_shards": { "total": 1, "successful": 1, "skipped": 0, "failed": 0 }, "hits": { "total": { "value": 3, "relation": "eq" }, "max_score": 1.5471337, "hits": [ { "_index": "products", "_id": "3", "_score": 1.5471337, "_source": { "name": "Apple 2024 아이패드 mini A17 Pro" } }, { "_index": "products", "_id": "2", "_score": 0.6860854, "_source": { "name": "Apple 2024 에어팟 4세대" } }, { "_index": "products", "_id": "1", "_score": 0.12180668, "_source": { "name": "Apple 2025 맥북 에어 13 M4 10코어" } } ] } }
score가 높은 순으로 도큐먼트가 조회됐다. score가 대략적으로 어떻게 계산됐는 지 이전 강의의 내용을 다시 떠올려보자.
 
[복습]
Apple 2024 아이패드라고 검색하면 역인덱스를 활용해 일치하는 단어가 많은 도큐먼트를 우선적으로 조회한다.
토큰(token)
도큐먼트 id
Apple
[1, 2, 3]
2025
[1]
맥북
[1]
에어
[1]
13
[1]
M4
[1]
10코어
[1]
2024
[2, 3]
에어팟
[2]
4세대
[2]
아이패드
[3]
mini
[3]
A17
[3]
Pro
[3]
  • id가 1인 도큐먼트 : 단어 1개 일치
  • id가 2인 도큐먼트 : 단어 2개 일치
  • id가 3인 도큐먼트 : 단어 3개 일치
 
이와 같은 Elasticsearch의 자체적인 로직으로 score(점수)를 매겨 score가 높은 순(id=3 → id=2 → id=1)으로 도큐먼트를 조회한다.
 
참고) 대략적인 score 계산 로직
  1. Term Frequency (TF)
    1. 문서 내에서 검색어가 얼마나 자주 등장하냐
      → 많이 등장할수록 점수↑
  1. Inverse Document Frequency (IDF)
    1. 검색어가 전체 문서 중 얼마나 희귀하냐
      → 희귀할수록 점수↑ (흔한 단어일수록 점수↓)
  1. Field Length Normalization
    1. 문서(필드)가 짧을수록 점수↑
      → 검색어가 짧은 문서에서 등장하면 더 관련성 높다고 판단
 
👨🏻‍🏫
다음 강의에서는 역인덱스를 생성하는 과정을 조금 더 깊이 파헤쳐보자.
author
JSCODE 박재성
category
Elasticsearch
createdAt
Dec 6, 2025
series
실전에서 바로 써먹는 Elasticsearch 입문 (검색 최적화편)
slug
type
series-footer
updatedAt
Dec 6, 2025 05:12 AM
📎
이 글은 실전에서 바로 써먹는 Elasticsearch 입문 (검색 최적화편) 강의의 수업 자료 중 일부입니다.