Search Engine
커머스 검색엔진 구축, OpenSearch 운영, Qdrant 벡터 검색, Rust 검색 API, 하이브리드 검색 품질 개선 경험을 모은 영역입니다.
OpenSearch · Qdrant · Hybrid Search
학습 경로
-
Step 1
검색엔진 기본기
OpenSearch 인덱스, BM25, 분석기, 검색 API 구조를 정리합니다.
- 01
OpenSearch & Dashboards 3.1.0 릴리즈 노트
OpenSearch 3.1의 주요 변경사항을 정리한다. GPU 가속 인덱싱 정식 적용, 검색 품질 향상, AI 에이전트 지원, Observability 개선 등 성능과 기능 양면의 업그레이드를 다룬다.
- 02
OpenSearch Hybrid Search — 키워드와 시맨틱 검색 결합 가이드
OpenSearch 2.11의 Hybrid Search 기능을 정리한다. Search Pipeline을 통해 키워드 검색(BM25)과 Neural Search 결과를 결합하고 normalization/combination processor로 점수를 조정하는 방법을 다룬다.
- 03
Axum + OpenSearch: Rust 검색 API 아키텍처 설계
Axum 웹 프레임워크와 OpenSearch를 결합하여 커머스 검색 API를 설계한 과정. Handlebars 템플릿 기반 동적 쿼리, 필드 가중치 시스템, Aggregation 처리까지.
- 01
-
Step 2
벡터 검색과 RAG
Qdrant, 벡터 인덱싱, 시맨틱 검색 품질을 연결합니다.
- 01
Qdrant Capacity Planning — RAM, 디스크, CPU 산정 가이드
Qdrant 벡터 데이터베이스의 용량 계획을 정리한다. 벡터 수와 차원에 따른 RAM 산정 공식, HNSW 오버헤드, 디스크/mmap 전략, CPU 코어 수 결정 기준을 다룬다.
- 02
Qdrant Indexing — 벡터 인덱스와 페이로드 인덱스 구성 가이드
Qdrant의 인덱싱 구조를 정리한다. HNSW 기반 벡터 인덱스, 페이로드 필드별 인덱스 타입, 인덱싱 임계값 설정, 필터링 성능 최적화를 위한 인덱스 구축 전략을 다룬다.
- 03
벡터 기반 시맨틱 검색 구현기
Python FastAPI와 OpenSearch를 활용해 Dense Vector 기반 시맨틱 검색을 구현한 과정. 임베딩 모델 선택, 벡터 인덱스 설계, 하이브리드 검색까지.
- 01
-
Step 3
프로덕션 검색 품질
커머스 검색, 하이브리드 전략, 랭킹 개선 사례로 마무리합니다.
- 01
Rust로 커머스 검색 엔진을 처음부터 만들기
NestJS 기반 검색 서비스의 한계를 넘어, Rust로 이커머스 검색 엔진을 처음부터 설계하고 구현한 과정을 다룬다.
- 02
시맨틱 검색과 키워드 검색의 하이브리드 전략
x2bee-nest-search에서 OpenSearch의 query_string 기반 키워드 검색과 kNN 벡터 검색을 결합한 하이브리드 검색 전략과 부스트 점수 설계를 정리한다.
- 03
검색 결과 랭킹 스코어링 시스템 설계
x2bee-nest-search와 search-rust에서 구축한 3계층 랭킹 아키텍처 — OpenSearch function_score, Cross-Encoder Reranker, Redis 캐싱을 결합한 검색 결과 스코어링 시스템 설계와 진화 과정을 정리한다.
- 01
대표 글
- Search
Rust로 커머스 검색 엔진을 처음부터 만들기
NestJS 기반 검색 서비스의 한계를 넘어, Rust로 이커머스 검색 엔진을 처음부터 설계하고 구현한 과정을 다룬다.
Rust검색엔진 - Search
Axum + OpenSearch: Rust 검색 API 아키텍처 설계
Axum 웹 프레임워크와 OpenSearch를 결합하여 커머스 검색 API를 설계한 과정. Handlebars 템플릿 기반 동적 쿼리, 필드 가중치 시스템, Aggregation 처리까지.
RustAxum - Search
시맨틱 검색과 키워드 검색의 하이브리드 전략
x2bee-nest-search에서 OpenSearch의 query_string 기반 키워드 검색과 kNN 벡터 검색을 결합한 하이브리드 검색 전략과 부스트 점수 설계를 정리한다.
OpenSearch하이브리드검색 - Search
벡터 기반 시맨틱 검색 구현기
Python FastAPI와 OpenSearch를 활용해 Dense Vector 기반 시맨틱 검색을 구현한 과정. 임베딩 모델 선택, 벡터 인덱스 설계, 하이브리드 검색까지.
시맨틱검색벡터검색
핵심 태그
시리즈
- Rust 커머스 검색 엔진 · 13 posts
- AI 시맨틱 검색 · 2 posts
- XGEN 개발기 · 2 posts
- LLM 파인튜닝 · 1 posts
최신 글
전체 글884만 문서에서 알게 된 것: 검색보다 어려운 건 검색을 시키는 일
synaptic-memory를 884만 MS MARCO passage 위에서 평가하며, 검색 정확도보다 agent loop의 도구 선택, query rewrite, 증거 누적, 실패 기억이 더 큰 병목으로 드러난 과정을 정리한다.
Pagefind + synaptic-memory 하이브리드 검색: 블로그 검색을 검색엔진 포트폴리오로 만들기
SON BLOG 검색을 Pagefind 정적 전문 검색, synaptic-memory 의미 검색, 한국어 형태소 분석, alias 사전, confidence gate, 평가셋과 blue/green 배포까지 갖춘 하이브리드 검색 구조로 고도화한 과정을 정리한다.
문서를 외우지 않아도 찾을 수 있게: XGEN 하이브리드 검색 소개
XGEN에서 키워드 검색과 의미 기반 추천을 함께 사용해 정확한 문서명을 몰라도 필요한 지식과 관련 문서를 찾는 검색 경험을 소개한다.
검색 품질은 감으로 고치면 끝이 없다: synaptic-memory 평가 루프 만들기
블로그 semantic search를 감으로 고치지 않기 위해 검색 문제지, 정답 URL, top1/recall/MRR/latency 지표, 실패 유형 backlog를 만든 과정을 정리한다.
XGEN 데스크톱 앱 고도화: Tauri에서 로컬 Ollama, 백엔드 자동기동, MCP/RAG를 한 번에 연결하기
기존 웹 기반 XGEN 프론트엔드를 Tauri 데스크톱 앱으로 감싸는 수준을 넘어, 로컬 Ollama 자동 기동, Docker Compose 백엔드 자동 시작, MCP 라이브러리 UX, 로컬 모델 서빙 패널, RAG 문서 API 절대경로화를 하나의 앱 경험으로 묶은 과정을 정리한다.
Cosine Similarity 직접 구현으로 검색 재순위화
OpenSearch Painless 스크립트가 아닌 NestJS 서버 측에서 cosine similarity를 직접 구현하여, 검색어의 성별/색상/계절 의도를 분석하고 동적 임계값으로 필터링하는 과정을 정리한다.
이미지 기반 상품 검색: NestJS 통합 구현기
OWL-ViT 객체 탐지 + ViT 벡터화로 만든 이미지 검색을 NestJS 검색 엔진에 통합한 과정 — KNN 이중 벡터 검색, 성별 벡터 필터링, 상위 15% 전략, 전용 랭킹 쿼리까지의 구현과 시행착오를 정리한다.
OpenSearch Nori 분석기 커스터마이징 및 형태소 분석
x2bee-nest-search에서 OpenSearch Nori 토크나이저를 직접 커스터마이징한 과정 — decompound_mode 선택, stoptags 튜닝, 동사 판별, 동의어 확장, 사용자 사전 동적 로딩까지의 시행착오를 정리한다.