검색엔진 적용을 위해 풀 텍스트 검색 및 벡터 검색 관련한 가이드 및 참고자료
- 작성자
- 관리자
- 작성일자
- 2025-10-23
- 조회수
- 26
Q 흔히 사용하는 Database like 검색을 대체할 검색엔진 기반으로 풀 텍스트 검색 및 최근 AI 모델 기반의 벡터 검색 기능을 지원
A
MSA 공통컴포넌트에 EgovSearch 어플리케이션은 Open Search (Elelastic Search의 Fork 버전) 기반으로 Full Text 검색 및 Vector 검색 기능을 지원 합니다.
■ 기본환경
프로젝트에서 사용된 환경 프로그램 정보는 다음과 같다.
■ 사용 AI 모델
* 허깅페이스에서 배포하는 ko-sroberta-multitask 모델 사용
* Onnx (Open Neural Network Exchange)로 변환 후 사용
* Onnx 포맷으로 익스포트시 Python 환경 필요
■ 연동 아키텍처
* 게시판 컴포넌트와 메시지 서버 연동 하여 검색 데이터를 동기화 한다.

■ 검색 결과 화면
* 통합 검색 : Open Search의 풀텍스트 검색을 기반으로 검색을 수행한다.
* 벡터 검색 : AI 모델에 의해 차원 벡터 데이터로 처리된 값의 거리를 비교하여 근접한 데이터를 유사도 수치순으로 검색을 수행한다.

* 정확도 순으로 정렬하여 결과를 출력한다.

■ 세부 내용 참조
검색엔진 관련하여 세부 내용은 다음 가이드 문서를 참조 한다.
https://github.com/eGovFramework/egovframe-common-components-msa-krds/tree/main/EgovSearch at main · eGovFramework/egovframe-common-components-msa-krds · GitHub
■ 기본환경
프로젝트에서 사용된 환경 프로그램 정보는 다음과 같다.
| 프로그램 명 | 버전 명 |
|---|---|
| Java | 11 이상 |
| Spring Boot | 2.7.18 |
| Spring Cloud | 2021.0.9 |
| Docker Desktop | 4.39.0 |
| Open Search | 2.15.0 |
| Python | 3.11.5 (Embedding 용 Model export 시 사용) |
■ 사용 AI 모델
* 허깅페이스에서 배포하는 ko-sroberta-multitask 모델 사용
* Onnx (Open Neural Network Exchange)로 변환 후 사용
* Onnx 포맷으로 익스포트시 Python 환경 필요
■ 연동 아키텍처
* 게시판 컴포넌트와 메시지 서버 연동 하여 검색 데이터를 동기화 한다.
■ 검색 결과 화면
* 통합 검색 : Open Search의 풀텍스트 검색을 기반으로 검색을 수행한다.
* 벡터 검색 : AI 모델에 의해 차원 벡터 데이터로 처리된 값의 거리를 비교하여 근접한 데이터를 유사도 수치순으로 검색을 수행한다.
* 정확도 순으로 정렬하여 결과를 출력한다.
■ 세부 내용 참조
검색엔진 관련하여 세부 내용은 다음 가이드 문서를 참조 한다.
https://github.com/eGovFramework/egovframe-common-components-msa-krds/tree/main/EgovSearch at main · eGovFramework/egovframe-common-components-msa-krds · GitHub
