{"id":961,"date":"2024-11-19T05:37:53","date_gmt":"2024-11-19T05:37:53","guid":{"rendered":"https:\/\/realstudy.net\/?p=961"},"modified":"2024-12-05T00:52:20","modified_gmt":"2024-12-05T00:52:20","slug":"postgresql-vector-%ec%82%ac%ec%9a%a9-pgvector-extension","status":"publish","type":"post","link":"https:\/\/realstudy.net\/?p=961&lang=ko","title":{"rendered":"PostgreSQL Vector \uc0ac\uc6a9 &#8211; pgvector extension"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"961\" class=\"elementor elementor-961\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-26a2fce2 e-flex e-con-boxed e-con e-parent\" data-id=\"26a2fce2\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7e63dae6 elementor-widget elementor-widget-text-editor\" data-id=\"7e63dae6\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div>\ucd5c\uadfc \ub370\uc774\ud130 \uae30\uc220\uc740 \ube60\ub974\uac8c \ubc1c\uc804\ud558\uace0 \uc788\uc73c\uba70, \ubca1\ud130 \uae30\ubc18 \ub370\uc774\ud130 \ud45c\ud604\uc774 \ud604\ub300 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \ud575\uc2ec \uc694\uc18c\ub85c \uc790\ub9ac \uc7a1\uace0 \uc788\uc2b5\ub2c8\ub2e4. \ud14d\uc2a4\ud2b8, \uc774\ubbf8\uc9c0, \uc624\ub514\uc624\uc640 \uac19\uc740 \ube44\uc815\ud615 \ub370\uc774\ud130\ub97c \ubca1\ud130\ub85c \ud45c\ud604\ud558\uba74 \ucd94\ucc9c \uc2dc\uc2a4\ud15c, \uc758\ubbf8\uc801 \uac80\uc0c9, \uc774\uc0c1 \ud0d0\uc9c0\uc640 \uac19\uc740 \ub2e4\uc591\ud55c \uc791\uc5c5\uc5d0\uc11c \ub6f0\uc5b4\ub09c \uc131\ub2a5\uc744 \ubc1c\ud718\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ubc88 \uae00\uc5d0\uc11c\ub294 PostgreSQL\uacfc pgvector \ud655\uc7a5\uc744 \ud65c\uc6a9\ud574 \ubca1\ud130 \uc5f0\uc0b0\uc744 \uad6c\ud604\ud558\ub294 \ubc29\ubc95\uc744 \uc0b4\ud3b4 \ubcf4\ub824\uace0 \ud569\ub2c8\ub2e4.<\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6b0c5cc elementor-widget elementor-widget-text-editor\" data-id=\"6b0c5cc\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div><strong>PostgreSQL: \uc2e0\ub8b0\ubc1b\ub294 \uac15\ub825\ud55c \uad00\uacc4\ud615 \ub370\uc774\ud130\ubca0\uc774\uc2a4<br \/><\/strong>PostgreSQL\uc740 \uace0\uc131\ub2a5 \uc624\ud508\uc18c\uc2a4 \uad00\uacc4\ud615 \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub85c, \ub370\uc774\ud130 \uad00\ub9ac\ub97c \uc704\ud55c \uac15\ub825\ud55c \ub3c4\uad6c\ub85c \ub110\ub9ac \uc0ac\uc6a9\ub418\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uc2e0\ub8b0\uc131, \ud655\uc7a5\uc131, \uadf8\ub9ac\uace0 SQL \ud45c\uc900 \uc900\uc218\ub97c \ud2b9\uc9d5\uc73c\ub85c \ud558\uba70, \ub2e4\uc591\ud55c \ub370\uc774\ud130 \ud0c0\uc785\uacfc \uace0\uae09 \ucffc\ub9ac \uae30\ub2a5\uc744 \uc9c0\uc6d0\ud569\ub2c8\ub2e4. \uc774\ub7ec\ud55c \uc720\uc5f0\uc131 \ub355\ubd84\uc5d0 PostgreSQL\uc740 \ubca1\ud130 \uac80\uc0c9\uacfc \uac19\uc740 \ucd5c\uc2e0 \ub370\uc774\ud130 \ucc98\ub9ac \uae30\ub2a5\uc744 \ud1b5\ud569\ud558\uae30\uc5d0 \uc774\uc0c1\uc801\uc778 \uc120\ud0dd\uc785\ub2c8\ub2e4.<\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5196a7d elementor-widget elementor-widget-text-editor\" data-id=\"5196a7d\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div><strong>pgvector: PostgreSQL\uc5d0 \ubca1\ud130 \uae30\ub2a5 \ucd94\uac00<br \/><\/strong>pgvector\ub294 PostgreSQL\uc5d0 \ubca1\ud130 \uc800\uc7a5, \uad00\ub9ac, \uadf8\ub9ac\uace0 \ucffc\ub9ac \uae30\ub2a5\uc744 \ucd94\uac00\ud558\ub294 \uc624\ud508\uc18c\uc2a4 \ud655\uc7a5\uc785\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574 PostgreSQL\uc758 \uac15\ub825\ud55c \uc778\ub371\uc2f1\uacfc \ucffc\ub9ac \uba54\ucee4\ub2c8\uc998\uc744 \ud65c\uc6a9\ud574 \uace0\ucc28\uc6d0 \ubca1\ud130\ub97c \ucc98\ub9ac\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. pgvector\ub97c \uc0ac\uc6a9\ud558\uba74 \ub2e4\uc74c\uacfc \uac19\uc740 \uc791\uc5c5\uc774 \uac00\ub2a5\ud569\ub2c8\ub2e4.<\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-41334cf elementor-widget elementor-widget-text-editor\" data-id=\"41334cf\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ol style=\"margin-left: 0em;\"><li><strong>\ubca1\ud130 \uc800\uc7a5:<\/strong> \ubca1\ud130\ub97c \ub124\uc774\ud2f0\ube0c \ub370\uc774\ud130 \ud0c0\uc785\uc73c\ub85c \uc800\uc7a5.<\/li><li><strong>\ubca1\ud130 \uc720\uc0ac\ub3c4 \uacc4\uc0b0:<\/strong> L2(\uc720\ud074\ub9ac\ub4dc \uac70\ub9ac) \ubc0f \ucf54\uc0ac\uc778 \uc720\uc0ac\ub3c4\uc640 \uac19\uc740 \uc9c0\ud45c\ub97c \ud65c\uc6a9.<\/li><li><strong>\uc778\ub371\uc2f1 \ud65c\uc6a9:<\/strong> **HNSW(Hierarchical Navigable Small World)**\uc640 \uac19\uc740 \uc778\ub371\uc2a4\ub97c \uc0ac\uc6a9\ud574 \ube60\ub978 \uc720\uc0ac\ub3c4 \uac80\uc0c9 \uad6c\ud604.<\/li><\/ol>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-145e8b6e elementor-widget elementor-widget-text-editor\" data-id=\"145e8b6e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3><strong>\uc804\uccb4 \ub0b4\uc6a9<\/strong>:<\/h3><ol style=\"margin-left: 0em;\"><li><strong>pgvector \ud655\uc7a5 \ud65c\uc131\ud654<\/strong>:<br \/><ul style=\"margin-left: 0em;\"><li>pgvector extension\uc73c\ub85c vector \uae30\ub2a5 \ud65c\uc131\ud654<\/li><\/ul><\/li><li><strong>NVIDIA \ub4dc\ub77c\uc774\ubc84 \uc124\uce58<\/strong>:<br \/><ul style=\"margin-left: 0em;\"><li>Linux Mint\uc5d0\uc11c NVIDIA \uadf8\ub798\ud53d \ub4dc\ub77c\uc774\ubc84\ub97c \uc124\uce58\ud558\uace0 CUDA\uc640 \uac19\uc740 GPU \uac00\uc18d \uc6cc\ud06c\ud50c\ub85c\ub97c \uc704\ud55c \uc900\ube44.<\/li><\/ul><\/li><li><strong>Chrome \uc124\uce58<\/strong>:<br \/><ul style=\"margin-left: 0em;\"><li>\uc6f9\ube0c\ub77c\uc6b0\uc800\ub85c Chrome\uc744 apt repository\ub97c \uc774\uc6a9\ud558\uc5ec \uc124\uce58(\ud5a5\ud6c4 \uc5c5\uadf8\ub808\uc774\ub4dc\uac00 \uc6a9\uc774\ud558\uac8c \ud558\uae30 \uc704\ud574).<\/li><\/ul><\/li><li><strong>Docker \ubc0f Docker Compose \uc124\uce58<\/strong>:<br \/><ul style=\"margin-left: 0em;\"><li>\ucee8\ud14c\uc774\ub108\ud654\ub41c \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uac1c\ubc1c \ubc0f \uad00\ub9ac\ub97c \uc704\ud55c Docker \uc124\uce58 \ubc29\ubc95.<\/li><li>Docker Compose\ub97c \ud65c\uc6a9\ud558\uc5ec \ub2e4\uc911 \ucee8\ud14c\uc774\ub108 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc124\uc815\ud558\ub294 \ubc29\ubc95.<\/li><\/ul><\/li><li><strong>\bNvidia Docker \uc124\uce58<\/strong>:<br \/><ul style=\"margin-left: 0em;\"><li>GPU\ub97c \uc774\uc6a9\ud55c \uba38\uc2e0\ub7ec\ub2dd \ud559\uc2b5 \uc2dc\uc2a4\ud15c \uad6c\ud604\uc744 \uc27d\uac8c \ud558\uae30 \uc704\ud574 Nvidia Docker \uc124\uce58.<\/li><\/ul><\/li><li><strong>Visual Studio Code \uc124\uce58<\/strong>:<br \/><ul style=\"margin-left: 0em;\"><li>\uc778\uae30 \uc788\ub294 \ucf54\ub4dc \ud3b8\uc9d1\uae30 VS Code\ub97c \uc124\uce58\ud558\uace0 \ud50c\ub7ec\uadf8\uc778\uc744 \uc124\uc815\ud558\ub294 \ubc29\ubc95.<\/li><li>\ud504\ub85c\uadf8\ub798\ubc0d \ubc0f \ud504\ub85c\uc81d\ud2b8 \uad00\ub9ac \ud658\uacbd \uad6c\uc131.<\/li><\/ul><\/li><li><strong>\bMiniconda \uc124\uce58<\/strong>:<br \/><ul style=\"margin-left: 0em;\"><li>Localhost\uc5d0\uc11c Python \uac1c\ubc1c \ubc0f \uc2e4\ud589\ud658\uacbd \uad6c\uc131\uc744 \uc704\ud574 \uc124\uce58.<\/li><\/ul><\/li><li><strong>VirtualBox \uc124\uce58<\/strong>:<br \/><ul style=\"margin-left: 0em;\"><li>Linux Mint 22\uc5d0 VirtualBox\ub97c \uc124\uce58\ud558\ub294 \uacfc\uc815.<\/li><li>\uac00\uc0c1 \uba38\uc2e0\uc744 \ud65c\uc6a9\ud558\uc5ec \ub2e4\uc591\ud55c \ud658\uacbd\uc5d0\uc11c \uc791\uc5c5\ud558\ub294 \ubc29\ubc95.<\/li><\/ul><\/li><\/ol>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-a103b7f e-flex e-con-boxed e-con e-parent\" data-id=\"a103b7f\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-53cf1f8 elementor-widget elementor-widget-heading\" data-id=\"53cf1f8\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">* pgvector \ud655\uc7a5 \ud65c\uc131\ud654<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3040318 elementor-widget elementor-widget-text-editor\" data-id=\"3040318\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div>PostgreSQL\uc740 \ub2e4\uc591\ud55c \ud655\uc7a5\uc744 \ud1b5\ud574 \uae30\ubcf8 \uae30\ub2a5\uc744 \ud655\uc7a5\ud560 \uc218 \uc788\uc73c\uba70, pgvector\ub294 \ubca1\ud130 \ub370\uc774\ud130\ub97c \ud6a8\uc728\uc801\uc73c\ub85c \uc800\uc7a5\ud558\uace0 \uac80\uc0c9\ud560 \uc218 \uc788\ub3c4\ub85d \uc9c0\uc6d0\ud558\ub294 \uac15\ub825\ud55c \ub3c4\uad6c\uc785\ub2c8\ub2e4.<br \/>pgvector\ud655\uc7a5 \uc774 \uc124\uce58\ub418\uc5b4 \uc788\ub294 PostgreSQL\uc744 \uc124\uce58 \ud558\ub294 \ubc29\ubc95\uc740 \uc774\ubbf8 \uc791\uc131\ud574 \ub450\uc5c8\uc73c\ub2c8 \ud544\uc694\ud558\uba74 \uc77d\uc5b4 \ubcf4\uc138\uc694. <a title=\"PostgreSQL \uc124\uce58 \u2013 Docker, Kubernetes\" href=\"https:\/\/realstudy.net\/?p=531&amp;lang=ko\" target=\"_blank\" rel=\"noopener\">PostgreSQL \uc124\uce58<\/a><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e5b572b elementor-widget elementor-widget-text-editor\" data-id=\"e5b572b\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div>pgvector \ud655\uc7a5 \ud65c\uc131\ud654 \ubc29\ubc95 : sql \uc2e4\ud589<\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-77d26c2 elementor-widget elementor-widget-code-highlight\" data-id=\"77d26c2\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard word-wrap\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-sql line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-sql\">\n\t\t\t\t\t<xmp># Create\nCREATE EXTENSION vectors;\n\n# Drop\nDROP EXTENSION IF EXISTS vectors;<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-4809e14 e-flex e-con-boxed e-con e-parent\" data-id=\"4809e14\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e732759 elementor-widget elementor-widget-heading\" data-id=\"e732759\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">* vector \ud0c0\uc785 \ud14c\uc774\ube14 \uc0dd\uc131<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7f39d5a elementor-widget elementor-widget-text-editor\" data-id=\"7f39d5a\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div>pgvector\ub97c \ud65c\uc131\ud654\ud55c \ud6c4 \ubca1\ud130 \ub370\uc774\ud130\ub97c \uc800\uc7a5\ud560 \ud14c\uc774\ube14\uc744 \uc0dd\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, 3\ucc28\uc6d0 \ubca1\ud130\ub97c \uc800\uc7a5\ud558\ub294 \ud14c\uc774\ube14\uc744 \uc0dd\uc131\ud558\ub824\uba74 \ub2e4\uc74c SQL \uba85\ub839\uc744 \uc2e4\ud589\ud569\ub2c8\ub2e4.<\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-70d5568 elementor-widget elementor-widget-code-highlight\" data-id=\"70d5568\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard word-wrap\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-sql line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-sql\">\n\t\t\t\t\t<xmp>CREATE TABLE items (\n    id serial PRIMARY KEY, -- Unique identifier\n    embedding vector(3)    -- 3-dimensional vector\n);<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-df4710f e-flex e-con-boxed e-con e-parent\" data-id=\"df4710f\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ee7a517 elementor-widget elementor-widget-heading\" data-id=\"ee7a517\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">* vector \ub370\uc774\ud130 \uc0bd\uc785<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-59f616d elementor-widget elementor-widget-text-editor\" data-id=\"59f616d\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div>\ud14c\uc774\ube14 \uc0dd\uc131 \ud6c4, \ubca1\ud130 \ub370\uc774\ud130\ub97c \uc0bd\uc785\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ubca1\ud130 \ub370\uc774\ud130\ub294 [\uc22b\uc7901, \uc22b\uc7902, \uc22b\uc7903] \ud615\ud0dc\ub85c \ud45c\ud604\ub41c \ubb38\uc790\uc5f4\ub85c \uc785\ub825 \ud560\uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f0c87c8 elementor-widget elementor-widget-code-highlight\" data-id=\"f0c87c8\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard word-wrap\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-sql line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-sql\">\n\t\t\t\t\t<xmp>INSERT INTO items (embedding) VALUES\n('[1, 2, 3]'),\n('[4, 5, 6]'),\n('[7, 8, 9]'),\n('[1, 0, 0]'),\n('[0, 1, 0]'),\n('[0, 0, 1]');<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4a3b26d elementor-widget elementor-widget-text-editor\" data-id=\"4a3b26d\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div>\ud639\uc740 [\uc22b\uc7901, \uc22b\uc7902, \uc22b\uc7903] \ud615\ud0dc\ub85c \ud45c\ud604\ub41c array\ub85c \uc785\ub825 \ud560\uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6d1c55d elementor-widget elementor-widget-code-highlight\" data-id=\"6d1c55d\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard word-wrap\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-sql line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-sql\">\n\t\t\t\t\t<xmp>INSERT INTO items(embedding) VALUES\n(ARRAY[1, 2, 3]::real[]),\n(ARRAY[4, 5, 6]::real[]),\n(ARRAY[7, 8, 9]::real[]),\n(ARRAY[1, 0, 0]::real[]),\n(ARRAY[0, 1, 0]::real[]),\n(ARRAY[0, 0, 1]::real[]);<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-51bdaee e-flex e-con-boxed e-con e-parent\" data-id=\"51bdaee\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-593e4a8 elementor-widget elementor-widget-heading\" data-id=\"593e4a8\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">* \uae30\ubcf8 \ucffc\ub9ac - slicing<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9145cd3 elementor-widget elementor-widget-text-editor\" data-id=\"9145cd3\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div>\uae30\ubcf8\uc801\uc778 \ucffc\ub9ac\ub294 \uae30\uc874 postgresql\uacfc \ub3d9\uc77c\ud55c sql\ubb38\uc744 \uc0ac\uc6a9\ud558\uba74 \ub429\ub2c8\ub2e4.<\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2688fbd elementor-widget elementor-widget-code-highlight\" data-id=\"2688fbd\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard word-wrap\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-sql line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-sql\">\n\t\t\t\t\t<xmp>-- Basic Query\nSELECT embedding\n  FROM items<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-19c7c75 elementor-widget elementor-widget-text-editor\" data-id=\"19c7c75\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div>column\uc5d0 \uc800\uc7a5\ub41c vector\ub97c slicing\ud574\uc11c \ud2b9\uc815 \ucc28\uc6d0\uc758 \uac12\ub9cc\uc744 \uac00\uc9c0\uace0 \uc624\ub294 \uac83\uc740 \uc9c0\uc6d0\uc744 \ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \uc2e4\uc81c \uc11c\ube44\uc2a4\ub97c \ub9cc\ub4e4\uc5b4 \ubcf4\uba74 \ud2b9\uc815 \ucc28\uc6d0\uc758 \uac12\ub9cc\uc744 \uac00\uc838\uc640\uc57c \ud558\ub294 \uacbd\uc6b0\uac00 \ub9ce\uc774 \uc788\uc2b5\ub2c8\ub2e4. \uba3c\uc800 \uc544\ub798\uc5d0 query\ub294 \uc624\ub958\uac00 \ubc1c\uc0dd\ud569\ub2c8\ub2e4.<\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c81c21e elementor-widget elementor-widget-code-highlight\" data-id=\"c81c21e\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard word-wrap\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-sql line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-sql\">\n\t\t\t\t\t<xmp>-- Get first dimension\nSELECT embedding[1]\n  FROM items\n\n-- Result\nSQL Error [42804]: ERROR: cannot subscript type vector because it does not support subscripting<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0d246dd elementor-widget elementor-widget-text-editor\" data-id=\"0d246dd\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div>slicing\uc744 \uc9c0\uc6d0\ud558\uae30 \uc704\ud574 Query \uae30\ubc18\uc758 \ud568\uc218\ub97c \ub9cc\ub4e4\uc5b4 \uc0ac\uc6a9\ud558\ub294 \ubc29\ubc95\uc774 \uc788\uc2b5\ub2c8\ub2e4. \ub300\uc6a9\ub7c9 \ub370\uc774\ud130\uc758 \uacbd\uc6b0 \uc18d\ub3c4\ub97c \uc0dd\uac01\ud574\uc57c \ud55c\ub2e4\uba74 \ucc28\uc6d0\ubcc4\ub85c \ub530\ub85c \uceec\ub7fc\uc744 \ub9cc\ub4e4\uc5b4 \uc800\uc7a5 \ud558\ub294 \uac83\uc744 \uad8c\uc7a5 \ud558\uc9c0\ub9cc, index\uac00 \uac78\ub824 \uc788\ub294 \uceec\ub7fc\uc73c\ub85c \uc870\uac74\uc774 \uac78\ub9ac\ub294 \uac04\ub2e8\ud55c \uc11c\ube44\uc2a4\uc758 \uacbd\uc6b0\ub294 \uc544\ub798\uc640 \uac19\uc740 \ud568\uc218\ub97c \ub9cc\ub4e4\uc5b4 \uc0ac\uc6a9\ud558\uba74 \ub429\ub2c8\ub2e4.<\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d531bd5 elementor-widget elementor-widget-code-highlight\" data-id=\"d531bd5\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard word-wrap\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-sql line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-sql\">\n\t\t\t\t\t<xmp>-- slice function : return float\nCREATE OR REPLACE FUNCTION slice(vec vector, index integer)\nRETURNS float AS $$\n    SELECT (string_to_array(trim(both '[]' from vec::text), ','))[index]::float\n$$ LANGUAGE SQL IMMUTABLE;\n\n-- slice function : return int\nCREATE OR REPLACE FUNCTION slice_int(vec vector, index integer)\nRETURNS int AS $$\n    SELECT (string_to_array(trim(both '[]' from vec::text), ','))[index]::int\n$$ LANGUAGE SQL IMMUTABLE;<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-50a30f2 elementor-widget elementor-widget-text-editor\" data-id=\"50a30f2\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div>\uc9c1\uc811 \ub9cc\ub4e0 slice\ud568\uc218\ub85c \ucffc\ub9ac\ud558\ub294 \uc608\uc81c<\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-481595a elementor-widget elementor-widget-code-highlight\" data-id=\"481595a\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard word-wrap\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-sql line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-sql\">\n\t\t\t\t\t<xmp>-- Querying the First Dimension\nSELECT slice(embedding, 1)\n  FROM items\n\n-- Query the first dimension and retrieve it as an integer\nSELECT slice_int(embedding, 1)\n  FROM items\n<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\ucd5c\uadfc \ub370\uc774\ud130 \uae30\uc220\uc740 \ube60\ub974\uac8c \ubc1c\uc804\ud558\uace0 \uc788\uc73c\uba70, \ubca1\ud130 \uae30\ubc18 \ub370\uc774\ud130 \ud45c\ud604\uc774 \ud604\ub300 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \ud575\uc2ec \uc694\uc18c\ub85c \uc790\ub9ac \uc7a1\uace0 \uc788\uc2b5\ub2c8\ub2e4. \ud14d\uc2a4\ud2b8, \uc774\ubbf8\uc9c0, \uc624\ub514\uc624\uc640&hellip;<\/p>\n","protected":false},"author":1,"featured_media":962,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[28],"tags":[],"class_list":["post-961","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-computer_kr"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/realstudy.net\/wp-content\/uploads\/2024\/11\/pgvector.jpeg","_links":{"self":[{"href":"https:\/\/realstudy.net\/index.php?rest_route=\/wp\/v2\/posts\/961","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/realstudy.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/realstudy.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/realstudy.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/realstudy.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=961"}],"version-history":[{"count":28,"href":"https:\/\/realstudy.net\/index.php?rest_route=\/wp\/v2\/posts\/961\/revisions"}],"predecessor-version":[{"id":1052,"href":"https:\/\/realstudy.net\/index.php?rest_route=\/wp\/v2\/posts\/961\/revisions\/1052"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/realstudy.net\/index.php?rest_route=\/wp\/v2\/media\/962"}],"wp:attachment":[{"href":"https:\/\/realstudy.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=961"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/realstudy.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=961"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/realstudy.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=961"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}