본문 바로가기
반응형

 

 

 

POSTGRES의 임베딩 의미검색을 위해 PgVector를 설치해봄니다.

 

 

1. 아래의 깃허브에 접속하여 

https://github.com/pgvector/pgvector?tab=readme-ov-file#windows

 

GitHub - pgvector/pgvector: Open-source vector similarity search for Postgres

Open-source vector similarity search for Postgres. Contribute to pgvector/pgvector development by creating an account on GitHub.

github.com

 

윈도우에 pgvector를 설치하기전 visual basic의 C++워크로드를 설치하라고 하니 설치해줍니다.

 

 

비쥬얼베이직 다운로드 페이지입니다.

https://visualstudio.microsoft.com/ko/downloads/

 

 

 

2. 설치 : C++을 사용한 데스크톱 개발, MSVC v143 빌드 도구

 

3.설치가 끝난 후 아래의 명령어를 관리자모드로 실행시켜 줍니다.(환경변수 자동설정처리)

C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build>call vcvars64.bat

 

 

 

4. 그런 다음 nmake을 사용하여 빌드합니다. (git이 없다면 설치해주세요)

  4-1 Windows 검색에서 "x64 Native Tools Command Prompt for VS" 또는 "Developer Command Prompt for VS" 검색 후 실행.

set "PGROOT=C:\Program Files\PostgreSQL\17"
cd %TEMP%
git clone --branch v0.8.0 https://github.com/pgvector/pgvector.git
cd pgvector
nmake /F Makefile.win
nmake /F Makefile.win install

 

결과 : 

 

 

 

5.DBeaver 에서 L2거리로 가장 가까운 데이터 조회

CREATE EXTENSION vector;

CREATE TABLE items (id bigserial PRIMARY KEY, embedding vector(3));

INSERT INTO items (embedding) VALUES ('[1,2,3]'), ('[4,5,6]');

SELECT * FROM items ORDER BY embedding <-> '[3,1,2]' LIMIT 5;

 

내적( <#>), 코사인 거리( <=>), L1 거리( <+>),   L2 거리(<->)
참고: Postgres는 연산자에 대한 순서 인덱스 스캔 <#>만 지원하므로 음의 내적을 반환합니다.ASC

 

 

 

 

반응형