Elasticsearch - Transformers 임베딩 입력 저장 (Local Mode)
개요 엘라스틱서치에서 밀집 벡터 위한 매핑 구성 방법 살펴보기 밀집 벡터가 저장될 embedding 이라는 필드 정의 Python 코드로 엘라스틱서치 코드 구현 코드 전체 시나리오 Elasticsearch에 연결 및 인덱스 초기화 dense_vector 타입으로 매핑 정의 문서 배열 정의 BERT 모델을 이용해 각 문서를 벡터 임베딩 벡터 포함 문서를 Elasticsearch에 색인 Elasticsearch 클라이언트 연결 로컬에서 실행 중인 Elasticsearch 서버에 접속 basic_auth: 로그인 자격 (ID: elastic, PW: 123456) verify_certs=False: 인증서 검증 생략 (로컬에서 SSL 없이 사용 시 편의용) es_admin = Elasticsearch("http://localhost:9200", basic_auth=("elastic", "123456"), verify_certs=False) Mapping 정의 및 인덱스 생성 dense_vector: 벡터 검색용 필드 (벡터 유사도 기반 검색 가능) dims: BERT의 출력 벡터는 기본적으로 768차원이므로 그에 맞춤 mapping = { "properties": { "embedding": { "type": "dense_vector", "dims": 768 # BERT의 출력 벡터 차원 수 } } } 기존 인덱스 삭제 후 새로 생성 기존에 있던 chapter-2 인덱스를 삭제 (중복 방지) 새로운 인덱스를 위에서 정의한 벡터 매핑으로 생성 try: es_admin.