# 검색 품질 한계 및 개선 방향

**작성일:** 2026-03-05  
**피드백 반영:** Codex돌쇠, 키엔봇 (머슴닷컴)

---

## 🎯 목적

Eidolon Search는 **90%+ 토큰 절감 (10배 이상)**을 달성하지만, FTS5 기반 검색이기에 한계가 있습니다. 이 문서는 **품질 하락 구간**을 투명하게 공개하고, 개선 방향을 제시합니다.

---

## ❌ 알려진 한계

### 1. 오타 허용 범위 제한

**문제:**
- FTS5는 정확한 키워드 매칭 기반
- 오타가 있으면 검색 실패

**예시:**
```
쿼리: "Phisical AI"  → 실패
올바른: "Physical AI" → 성공
```

**회피 방법:**
- AI Agent가 검색어 자동 수정 (Spelling correction)
- 또는 검색 실패 시 유사 단어로 재시도

**개선 계획 (Future):**
- Trigram 기반 fuzzy matching 추가 (Codex돌쇠 제안)
- Typo tolerance: 1-2글자 차이 허용

---

### 2. 동의어 미인식

**문제:**
- "자동차" ≠ "차량" (다른 단어로 인식)
- "AI" ≠ "인공지능" (동의어 인식 안 됨)

**예시:**
```
문서: "자동차 판매량 증가"
쿼리: "차량"  → 검색 실패
```

**회피 방법:**
- AI Agent가 검색어에 동의어 포함
  - 예: "자동차 OR 차량"
  - 예: "AI OR 인공지능 OR artificial intelligence"

**개선 계획 (Future):**
- 동의어 사전 구축 (한/영)
- Query expansion (검색어 자동 확장)

---

### 3. 의미론적 검색 불가

**문제:**
- FTS5는 키워드 기반 (의미 유사도 못 잡음)
- "좋은 책 추천" ≠ "재미있는 도서 제안"

**예시:**
```
문서: "이 책은 흥미진진하고 재미있다"
쿼리: "좋은 책"  → 검색 실패 (키워드 없음)
```

**회피 방법:**
- 검색어를 구체적으로 조정
  - 나쁨: "좋은 책"
  - 좋음: "흥미진진", "재미", "추천"

**개선 계획 (Future):**
- **하이브리드 검색** (키엔봇 제안):
  1. FTS5로 1차 필터링 (빠르고 저렴)
  2. 벡터 임베딩으로 재랭킹 (의미 유사도)
- 비용 vs 정확도 균형

---

### 4. 복합 쿼리 정확도

**문제:**
- "A이면서 B인 것" 같은 복잡한 조건 처리 약함

**예시:**
```
문서 1: "Physical AI는 중요하다"
문서 2: "Jetson Orin Nano는 저렴하다"
쿼리: "Physical AI AND 저렴"  → 부정확
```

**회피 방법:**
- 쿼리를 단순화
  - 나쁨: "Physical AI AND 저렴"
  - 좋음: "Jetson Orin Nano"

**개선 계획:**
- Boolean 연산 강화
- Phrase matching 정확도 향상

---

### 5. 고유명사 오타

**문제:**
- "Jetson Orin Nano" → "Jetson Orin Nono" (한 글자 차이)
- FTS5 prefix matching 사용 중 → 오타 못 잡음

**예시:**
```
문서: "Jetson Orin Nano Super"
쿼리: "Orin Nono"  → 실패
```

**개선 계획 (Codex돌쇠 경험):**
- Trigram fallback 추가
- 고유명사 오타 허용 범위 1-2글자

---

## 📊 Recall 벤치마크 (투명성)

**현재 측정값:**
- Recall@5: 측정 예정
- Recall@10: 측정 예정

**방법:**
- 5-10개 쿼리 + 정답 문서 수동 표시
- FTS5 결과와 비교 (얼마나 찾았나?)
- 투명하게 공개

**스크립트:** `scripts/benchmark-recall.py`

---

## 🚀 개선 로드맵

### Phase 1: 현재 (v0.0.1)
- ✅ FTS5 기반 검색
- ✅ 90%+ 토큰 절감
- ✅ 15배 속도 향상

### Phase 2: 오타/동의어 대응 (v0.1.0)
- [ ] Trigram fuzzy matching
- [ ] 동의어 사전
- [ ] Query expansion

### Phase 3: 하이브리드 검색 (v0.2.0)
- [ ] FTS5 (1차 필터링)
- [ ] 벡터 임베딩 (재랭킹)
- [ ] Recall@10 > 90% 목표

### Phase 4: 고급 기능 (v1.0.0)
- [ ] Phrase matching
- [ ] Boolean 연산 강화
- [ ] 다국어 지원

---

## 💡 현실적인 사용 가이드

### ✅ FTS5가 잘 작동하는 경우

1. **정확한 키워드**
   - "Jetson", "Orin", "Physical AI"

2. **고유명사**
   - "Triangle", "Eidolon", "OpenClaw"

3. **기술 용어**
   - "FTS5", "Qdrant", "벡터 임베딩"

4. **날짜/숫자**
   - "2026-03-05", "90%", "15배"

### ⚠️ FTS5가 약한 경우

1. **오타**
   - "Phisical" (X) → "Physical" (O)

2. **동의어**
   - "자동차" (X) → "자동차 OR 차량" (O)

3. **의미론적 유사성**
   - "좋은 책" (X) → "흥미진진", "재미" (O)

4. **복합 조건**
   - "A AND B" (약함) → 구체적 단어 (O)

---

## 🔥 투명성 원칙

> **"완벽하지 않지만 정직하게."**

- 90%+ 토큰 절감 = 사실 (실측 93-98.9%)
- 의미론적 검색 불가 = 명시
- Recall 벤치마크 = 공개 예정
- 개선 계획 = 투명하게 공유

---

**피드백 출처:**
- Codex돌쇠: Trigram fallback, warm/cold cache 분리
- 키엔봇: 하이브리드 검색 (FTS + 벡터)
- 개미: Recall 벤치마크 지지

**문의:** jslee7518+openclaw@gmail.com
