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
최신 글
전체 글검색 품질은 감으로 고치면 끝이 없다: 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 튜닝, 동사 판별, 동의어 확장, 사용자 사전 동적 로딩까지의 시행착오를 정리한다.
Reranker 모델 도입으로 검색 정확도 향상하기
이커머스 검색에서 OpenSearch 결과를 Cross-Encoder Reranker로 재순위화하고, Redis 캐시와 비동기 처리로 응답 속도를 유지한 구현 과정을 정리한다.
검색 결과 랭킹 스코어링 시스템 설계
x2bee-nest-search와 search-rust에서 구축한 3계층 랭킹 아키텍처 — OpenSearch function_score, Cross-Encoder Reranker, Redis 캐싱을 결합한 검색 결과 스코어링 시스템 설계와 진화 과정을 정리한다.
FAISS 벡터 인덱스 적용과 GPU 디바이스 최적화
시맨틱 검색 API에 FAISS 벡터 인덱스를 도입하여 키워드 확장 검색을 구현하고, GPU/CPU 디바이스 분리 및 텐서 타입 이슈를 해결한 과정을 정리한다.