{"id":46301,"date":"2026-09-20T07:56:50","date_gmt":"2026-09-19T22:56:50","guid":{"rendered":"https:\/\/jore2.com\/?p=46301"},"modified":"2026-09-20T07:56:50","modified_gmt":"2026-09-19T22:56:50","slug":"news-20333-tin-full-text-search-for-postgres","status":"publish","type":"post","link":"https:\/\/jore2.com\/?p=46301","title":{"rendered":"\ud50c\ub798\ub2db\uc2a4\ucf00\uc77c, Postgres\uc6a9 \uc804\ubb38 \uc804\ubb38 \uac80\uc0c9 \ud655\uc7a5 \ud504\ub85c\uadf8\ub7a8 TIN \uc815\uc2dd \ucd9c\uc2dc"},"content":{"rendered":"<div class=\"jore2-editor-byline\">\n<p><strong>JORE2 \ud3b8\uc9d1\ud300<\/strong> <span>\uacf5\uac1c \uc790\ub8cc\ub97c \ubc14\ud0d5\uc73c\ub85c \uc791\uc131\ud588\uc73c\uba70, \ud655\uc778 \uc790\ub8cc\ub97c \ud568\uaed8 \uc81c\uacf5\ud569\ub2c8\ub2e4.<\/span><\/p>\n<\/div>\n<p>\ud50c\ub798\ub2db\uc2a4\ucf00\uc77c\uc774 2026\ub144 9\uc6d4 16\uc77c Postgres \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc6a9 \uc804\ubb38 \uac80\uc0c9 \ud655\uc7a5 \ud504\ub85c\uadf8\ub7a8 TIN\uc744 \uc815\uc2dd \ucd9c\uc2dc\ud588\ub2e4. TIN\uc740 Text INdex\uc758 \uc57d\uc790\ub85c, BM25 \uc54c\uace0\ub9ac\uc998 \uae30\ubc18\uc758 \ub7ad\ud0b9 \uae30\ub2a5\uc744 \ub0b4\uc7a5\ud558\uace0 \uc788\ub2e4. \uc774 \ud655\uc7a5 \ud504\ub85c\uadf8\ub7a8\uc740 \ud2b8\ub79c\uc7ad\uc158\uc774 \ucee4\ubc0b\ub418\ub294 \uc989\uc2dc \uac80\uc0c9 \uc778\ub371\uc2a4\uc5d0 \ubc18\uc601\ub418\uc5b4 \uc2e4\uc2dc\uac04 \uac80\uc0c9\uc774 \uac00\ub2a5\ud558\ub2e4.<\/p>\n<p>\ud50c\ub798\ub2db\uc2a4\ucf00\uc77c\uc758 \uc5d0\ub9ad \ub9ac\uc9c0\uc640 \ud328\ud2b8\ub9ad \ub808\uc774\ub180\uc988\uac00 \uc8fc\ub3c4\ud55c \uc774\ubc88 \uac1c\ubc1c\uc740 \uace0\uac1d\ub4e4\uc758 \ub192\uc740 \uc218\uc694\uc5d0 \ub300\uc751\ud558\uae30 \uc704\ud55c \uc870\uce58\ub2e4. TIN\uc740 \ubd80\uc6b8 \ud45c\ud604\uc2dd, \uad6c\ubb38 \uac80\uc0c9, \uc2a4\ud32c \uac80\uc0c9\uc744 \uc9c0\uc6d0\ud55c\ub2e4. \ub610\ud55c \ud37c\uc9c0 \ub9e4\uce6d, \uc640\uc77c\ub4dc\uce74\ub4dc, \uc815\uaddc\uc2dd \ub9e4\uce6d \uae30\ub2a5\ub3c4 \ud3ec\ud568\ub410\ub2e4.<\/p>\n<p>COUNT(*) \ucffc\ub9ac\uc640 BM25 \uc810\uc218 \uae30\ubc18\uc758 \uc0c1\uc704 k\uac1c \uacb0\uacfc \uc870\ud68c\ub3c4 \ucc98\ub9ac\ud560 \uc218 \uc788\ub2e4.<\/p>\n<p>\uae30\uc874 Postgres\uc758 tsvector \uae30\ubc18 \uac80\uc0c9 \uae30\ub2a5\uacfc \ub2ec\ub9ac TIN\uc740 \uc870\uc778, \ubcf5\uc7a1\ud55c WHERE \uc808, \uc5f0\uc18d\uc801\uc778 \uc5c5\ub370\uc774\ud2b8, \ubcf5\uc81c, \ubc31\uc5c5 \uae30\ub2a5\uacfc \ud638\ud658\ub41c\ub2e4. \ud2b9\ud788 \ud2b8\ub79c\uc7ad\uc158 \uac00\uc2dc\uc131\uc744 \uc815\ud655\ud788 \ubcf4\uc7a5\ud558\ub294 \uc810\uc774 \uac15\uc870\ub410\ub2e4. \ud50c\ub798\ub2db\uc2a4\ucf00\uc77c\uc740 \uae30\uc874 \uc138 \uac00\uc9c0 \uc774\uc0c1\uc758 \ud14d\uc2a4\ud2b8 \uac80\uc0c9 \uc778\ub371\uc2a4\uac00 \uc788\uc5c8\uc73c\ub098, \uc774\ub7ec\ud55c \uc694\uad6c\uc0ac\ud56d\uc744 \ubaa8\ub450 \ucda9\uc871\ud558\uc9c0 \ubabb\ud588\ub2e4\uace0 \ubc1d\ud614\ub2e4.<\/p>\n<p>TIN\uc758 \uc131\ub2a5\uc740 \ubca4\uce58\ub9c8\ud06c\ub97c \ud1b5\ud574 \uac80\uc99d\ub410\ub2e4. \uc778\ub371\uc2a4 \ube4c\ub4dc \uc2dc\uac04\uacfc \ud06c\uae30, \ud63c\ud569 \ucffc\ub9ac, \uc811\uc18d \ubc0f \uad6c\ubb38 \ucffc\ub9ac \ucc98\ub9ac \ub2a5\ub825\uc774 \uce21\uc815\ub410\ub2e4. \ub3d9\uc2dc \uc4f0\uae30 \ud658\uacbd\uc5d0\uc11c\uc758 \ubd84\uc0b0 \ucffc\ub9ac \uc131\ub2a5\ub3c4 \ud3c9\uac00 \ub300\uc0c1\uc774\uc5c8\ub2e4.<\/p>\n<p>\uba54\ubaa8\ub9ac\uc5d0 \uc778\ub371\uc2a4\uac00 \uc644\uc804\ud788 \ub85c\ub4dc\ub420 \uacbd\uc6b0\uc758 \uc131\ub2a5 \ub370\uc774\ud130\ub3c4 \uacf5\uac1c\ub410\ub2e4.<\/p>\n<p>\ud558\uc9c0\ub9cc \ub85c\uceec \ud658\uacbd \uc0ac\uc6a9\uc790\uc5d0\uac8c\ub294 \uc8fc\uc758\uac00 \ud544\uc694\ud558\ub2e4. \ud604\uc7ac TIN\uc758 \ub85c\uceec \ubc84\uc804\uc740 \uad6c\ubb38 \ud14c\uc2a4\ud2b8 \uc6a9\ub3c4\ub85c\ub9cc \uc81c\uacf5\ub41c\ub2e4. \ud50c\ub798\ub2db\uc2a4\ucf00\uc77c \ud074\ub77c\uc6b0\ub4dc \uc11c\ube44\uc2a4\uc5d0\uc11c\ub9cc \ub3d9\uc77c\ud55c \uc131\ub2a5\uc744 \ubcf4\uc7a5\ubc1b\uc744 \uc218 \uc788\ub2e4.<\/p>\n<p>\ub85c\uceec \ud655\uc7a5 \ud504\ub85c\uadf8\ub7a8\uc740 \uc2e4\uc81c \uc6b4\uc601 \ud658\uacbd\uc758 \uc131\ub2a5 \ud2b9\uc131\uc744 \ubc18\uc601\ud558\uc9c0 \ubabb\ud55c\ub2e4.<\/p>\n<p>\ub2e4\uad6d\uc5b4 \uc9c0\uc6d0 \uce21\uba74\uc5d0\uc11c\ub3c4 \ud55c\uacc4\uac00 \uc9c0\uc801\ub41c\ub2e4. \ud2b9\ud788 CJK \uc5b8\uc5b4\uc5d0 \ub300\ud55c \ud1a0\ud070\ud654 \uc9c0\uc6d0 \uc5ec\ubd80\uac00 \uba85\ud655\ud558\uc9c0 \uc54a\ub2e4. \uc911\uad6d\uc5b4 \ub4f1\uc758 \uacbd\uc6b0 \ubb38\uc790 \ub2e8\uc704\ub85c \ud1a0\ud070\uc774 \uc0dd\uc131\ub420 \uc218 \uc788\uc5b4 \uac80\uc0c9 \uc815\ud655\ub3c4\uc5d0 \uc601\ud5a5\uc744 \uc904 \uc218 \uc788\ub2e4.<\/p>\n<p>\uc774\ub294 Postgres\uc758 \uae30\uc874 \uac80\uc0c9 \uae30\ub2a5\uc774 \uac00\uc9c4 \ubcf5\uc7a1\ud55c \uc5b8\uc5b4 \ucc98\ub9ac \uae30\ub2a5\uacfc \ube44\uad50\ub418\ub294 \ubd80\ubd84\uc774\ub2e4.<\/p>\n<p>TIN\uc740 \ud604\uc7ac \ud50c\ub798\ub2db\uc2a4\ucf00\uc77c\uc758 Postgres \ubc0f Neki \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc81c\ud488\uad70\uc5d0\uc11c \uc989\uc2dc \uc0ac\uc6a9 \uac00\ub2a5\ud558\ub2e4. \ub85c\uceec \ud14c\uc2a4\ud2b8\ub97c \uc6d0\ud558\ub294 \uac1c\ubc1c\uc790\ub294 GitHub\uc5d0\uc11c \uad00\ub828 \ucf54\ub4dc\ub97c \ud655\uc778\ud560 \uc218 \uc788\uc73c\ub098, \uc131\ub2a5 \ube44\uad50\ub294 \ud074\ub77c\uc6b0\ub4dc \ud658\uacbd\uc5d0\uc11c \uc9c4\ud589\ud574\uc57c \ud55c\ub2e4. \ud5a5\ud6c4 \ub85c\uceec \ubc84\uc804\uc758 \uc131\ub2a5 \uac1c\uc120 \uc5ec\ubd80\ub294 \uc544\uc9c1 \ud655\uc778\ub418\uc9c0 \uc54a\uc558\ub2e4.<\/p>\n<aside class=\"jore2-source-notes\" aria-label=\"\uae30\uc0ac \ud655\uc778 \uc790\ub8cc\">\n<h2>\ud655\uc778\ud55c \uc790\ub8cc<\/h2>\n<ul>\n<li><a href=\"https:\/\/news.ycombinator.com\/item?id=49766611\" target=\"_blank\" rel=\"noopener noreferrer\">news.ycombinator.com<\/a><\/li>\n<li><a href=\"https:\/\/planetscale.com\/blog\/introducing-tin\" target=\"_blank\" rel=\"noopener noreferrer\">planetscale.com<\/a><\/li>\n<li><a href=\"https:\/\/runtimewire.com\/article\/planetscale-tin-full-text-search-postgres\" target=\"_blank\" rel=\"noopener noreferrer\">runtimewire.com<\/a><\/li>\n<\/ul>\n<\/aside>\n","protected":false},"excerpt":{"rendered":"<p>\ud50c\ub798\ub2db\uc2a4\ucf00\uc77c\uc774 2026\ub144 9\uc6d4 16\uc77c BM25 \ub7ad\ud0b9\uc744 \uc9c0\uc6d0\ud558\ub294 Postgres \uc804\ubb38 \uac80\uc0c9 \ud655\uc7a5 \ud504\ub85c\uadf8\ub7a8 TIN\uc744 \uc815\uc2dd \uacf5\uac1c\ud588\ub2e4. \ub85c\uceec \ubc84\uc804\uc740 \uc131\ub2a5 \uac80\uc99d\uc6a9\uc774\uba70 \ud074\ub77c\uc6b0\ub4dc \ud658\uacbd\uc5d0 \ucd5c\uc801\ud654\ub410\ub2e4.<\/p>\n","protected":false},"author":1,"featured_media":46300,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jore2_quality_policy":"people-first-v2","footnotes":""},"categories":[405],"tags":[30005,30001,30002,16474,30004,30003],"class_list":["post-46301","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-405","tag-bm25","tag-postgres","tag-tin","tag-16474","tag-30004","tag-30003"],"featured_image_urls":{"full":["https:\/\/jore2.com\/wp-content\/uploads\/2026\/09\/news-20333-tin-full-text-search-for-postgres.png",1200,630,false],"thumbnail":["https:\/\/jore2.com\/wp-content\/uploads\/2026\/09\/news-20333-tin-full-text-search-for-postgres-150x150.png",150,150,true],"medium":["https:\/\/jore2.com\/wp-content\/uploads\/2026\/09\/news-20333-tin-full-text-search-for-postgres-300x158.png",300,158,true],"medium_large":["https:\/\/jore2.com\/wp-content\/uploads\/2026\/09\/news-20333-tin-full-text-search-for-postgres-768x403.png",640,336,true],"large":["https:\/\/jore2.com\/wp-content\/uploads\/2026\/09\/news-20333-tin-full-text-search-for-postgres-1024x538.png",640,336,true],"1536x1536":["https:\/\/jore2.com\/wp-content\/uploads\/2026\/09\/news-20333-tin-full-text-search-for-postgres.png",1200,630,false],"2048x2048":["https:\/\/jore2.com\/wp-content\/uploads\/2026\/09\/news-20333-tin-full-text-search-for-postgres.png",1200,630,false],"morenews-large":["https:\/\/jore2.com\/wp-content\/uploads\/2026\/09\/news-20333-tin-full-text-search-for-postgres-825x575.png",825,575,true],"morenews-medium":["https:\/\/jore2.com\/wp-content\/uploads\/2026\/09\/news-20333-tin-full-text-search-for-postgres-590x410.png",590,410,true]},"author_info":{"info":["jore"]},"category_info":"<a href=\"https:\/\/jore2.com\/?cat=405\" rel=\"category\">\ub274\uc2a4<\/a>","tag_info":"\ub274\uc2a4","comment_count":"0","_links":{"self":[{"href":"https:\/\/jore2.com\/index.php?rest_route=\/wp\/v2\/posts\/46301","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jore2.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jore2.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jore2.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jore2.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=46301"}],"version-history":[{"count":0,"href":"https:\/\/jore2.com\/index.php?rest_route=\/wp\/v2\/posts\/46301\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jore2.com\/index.php?rest_route=\/wp\/v2\/media\/46300"}],"wp:attachment":[{"href":"https:\/\/jore2.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=46301"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jore2.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=46301"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jore2.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=46301"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}