Starter · Client-side Korean search

한글 검색

같은 질의를 네 가지 검색 엔진에 동시에 넣고 몇 건을 찾는지 비교한다. 한글은 조사가 어근에 붙어 한 덩어리가 되므로 — 기준금리를 안에 금리가 있다 — 공백 기준 토크나이저는 이것을 놓친다.

검색어를 입력하세요.

왜 갈리는가

영어는 공백이 단어 경계라 공백으로 자르면 된다. 한글은 조사·어미가 어근에 붙어 한 토큰이 되므로, 같은 방식으로는 기준금리를이 통째로 하나의 단어가 되고 금리로는 절대 걸리지 않는다.

Fuse.js토큰화를 아예 안 함 (근사 문자열 매칭) → 조사와 무관하게 동작
FlexSearch full모든 부분문자열을 색인 → 동작하지만 색인이 약 12배
MiniSearch공백 토크나이저 → 합성어 안의 어근을 놓침
Lunr기본 트리머 정규식 [^\w]가 한글을 구두점으로 보고 전부 지움

고를 때

수천 건 규모의 한국어 산문이라면 Fuse.js가 설정 없이 맞는 결과를 낸다. 더 큰 규모로 가야 하고 색인 크기를 감당할 수 있으면 FlexSearch를 tokenize:"full"로 쓴다.

Fuse.js색인 없음 · 질의마다 원문 재탐색 · 수천~1만 건이 실용 한계
FlexSearch full5천 건 503KB 원문 → 색인 약 6MB
Lunr · Orama한국어에는 커스텀 토크나이저 없이는 쓸 수 없다
라이선스Fuse.js Apache-2.0 · FlexSearch Apache-2.0 · MiniSearch MIT · Lunr MIT