PYTHON 3

[Python] Elasticsearch 클라이언트 분석 및 검색 개념 정리 - Searchive 프로젝트

1. 엘라스틱서치 핵심 쿼리 개념 (Query DSL)엘라스틱서치에서 bool 쿼리는 여러 조건을 조합할 때 사용하며, 4가지 핵심 인자를 가집니다.예시 코드 (쇼핑몰 검색 시나리오)"삼성 노트북 중에서 100만원 이하이거나 리뷰 점수가 높은 상품을 검색 (단, 품절 상품은 제외)"{ "query": { "bool": { "must": [ { "match": { "name": "삼성" } } ], "filter": [ { "range": { "price": { "lte": 1000000 } } }, { "term": { "status": "on_sale" } } ], "should": [ { "match..

PYTHON 2026.03.28

[Python] Searchive 프로젝트( 2 ) - KeyBert, ElasticSearch 고도화

이 시스템은 두 가지 키워드 추출 전략을 상황에 맞게 사용하는 하이브리드(Hybrid) 방식을 채택Cold Start (초기 단계): 시스템에 데이터가 거의 없을 때는 문맥 이해 능력이 뛰어난 KeyBERT를 사용Normal (안정 단계): 데이터가 충분히 쌓이면, 전체 문서와 비교하여 통계적으로 중요한 단어를 찾아내는 Elasticsearch의 TF-IDF 방식을 사용해 더 정확한 키워드를 추출1. 필요 라이브러리 (Requirements)프로젝트 실행에 필요한 핵심 라이브러리 목록# requirements.txt# 키워드 추출keybertelasticsearch[async]# 데이터베이스 연동 (재색인 스크립트용)sqlalchemy[asyncpg] # PostgreSQL 사용 시alembic# 기타 ..

PYTHON 2025.10.11

[Python] Searchive 프로젝트( 1 ) - MinIO, ElasticSearch, KeyBert

Searchive 프로젝트:- 단순히 파일을 저장하는 것을 넘어, 파일의 내용을 이해하고 자동으로 분류하며, 강력한 검색 기능을 제공하는 AI 기반 문서 관리 API 서버입니다. 깃허브 주소:- https://github.com/Chaehyunli/Searchive-backend문서 업로드 파이프라인: A 9-Step JourneyGateway: API 엔드포인트에서 UploadFile 객체로 파일 수신Preparation: pathlib과 uuid를 이용한 고유 저장 경로 생성Storage: MinIO 객체 스토리지에 실제 파일 데이터 저장Metadata Logging: PostgreSQL에 파일의 메타데이터 기록Text Extraction: PDF, DOCX 등 다양한 문서에서 텍스트 추출Index..

PYTHON 2025.10.11