Full-text Search, 전문 검색
full-text search refers to techniques for
searching a single computer-stored
document or a collection in a full-text database
전체 텍스트를 대상으로 검색하는 방법
::인덱싱
- 검색 대상의 양에 따라 전략을 택한다
- serial scanning:
- grep이 활용하는 방식
- 문서량이 적을 때 적합
- 검색엔진이 개별 문서에 직접 접근하여 쿼리에 맞는 내용을 스캔
- 2-stage task:
- 문서량이 많거나 쿼리 종류가 방대해지면 택하는 방식
- 인덱싱: 모든 문서를 스캔하여 검색어 목록을 만든다(형태소 분석 등 다양한 전략 가능 ex. drive ⇒ drives, drove, driven)
- 검색: 문서에 접근하지 않고 인덱스에만 접근한다
트레이드오프: 정밀도 vs 응답률
- 정밀도는 검색 결과의 질을 측정.
- 응답률은 검색 결과의 양을 측정. 모든 연관 결과 대비 반환된 결과의 비율.
- 정밀도를 높이면 응답률이 낮아지고 응답률을 높이면 정밀도가 낮아진다
False-positive 문제
- FTS는 검색 의도와 관련없는 검색 결과가 섞이기 쉽다
- 자연어가 모호하기 때문인데 클러스터링으로 완화
성능 개선
- 사용자에게 검색을 보다 정확하게 표현할 도구 제공
- keyword 검색
- phrase 검색
- concept 검색
- concordance 검색
- proximity 검색
- Regex 검색
- Fuzzy 검색
- Wildcard 검색
- 검색 정밀도를 향상시키는 알고리즘 개발
Javascript
React
- useEffect는 마운트 직후, 의존성 배열에 정의된 값의 변화 때 작동한다