{"id":9628,"date":"2020-11-04T15:51:31","date_gmt":"2020-11-04T23:51:31","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=9628"},"modified":"2024-03-01T09:18:35","modified_gmt":"2024-03-01T17:18:35","slug":"taming-the-gerrymander-with-geospatial-search","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/ko\/taming-the-gerrymander-with-geospatial-search\/","title":{"rendered":"\uc9c0\ub9ac\uacf5\uac04 \uac80\uc0c9\uc73c\ub85c \uac8c\ub9ac\ub9e8\ub354 \uae38\ub4e4\uc774\uae30"},"content":{"rendered":"<h4>\uae30\ubcf8 \uc0ac\ud56d<\/h4>\n<p>\ub354 \uc77d\uc5b4\ubcf4\uae30 \uc804\uc5d0 \uc7a0\uc2dc \uc2dc\uac04\uc744 \ub0b4\uc5b4 \ub2e4\uc74c\uc758 \ud6cc\ub96d\ud55c \uac8c\uc2dc\ubb3c\uc744 \uc77d\uc5b4\ubcf4\uc2dc\uae30 \ubc14\ub78d\ub2c8\ub2e4. <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/geospatial-search-how-do-i-use-thee-let-me-count-the-ways\/\">\uc9c0\ub9ac \uacf5\uac04 \uac80\uc0c9<\/a> \uc81c \uce5c\uad6c\uc774\uc790 \ub3d9\ub8cc\uc778 \ube0c\ub77c\uc774\uc5b8 \ucf00\uc778\uc774 \ucd9c\ud310\ud55c Couchbase\uc5d0\uc11c: <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/geospatial-search-how-do-i-use-thee-let-me-count-the-ways\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.couchbase.com\/blog\/geospatial-search-how-do-i-use-thee-let-me-count-the-ways\/<\/a><\/p>\n<p>\uba3c\uc800 \uac00\uc138\uc694. \uae30\ub2e4\ub9b4\uac8c\uc694.<\/p>\n<p>\uc774\uc81c \ub2e4\uc2dc \ub3cc\uc544\uc654\uc73c\ub2c8 Couchbase\uc758 \uc804\uccb4 \ud14d\uc2a4\ud2b8 \uac80\uc0c9 \uc5d4\uc9c4\uc744 \ud65c\uc6a9\ud558\ub294 \ud55c \uac00\uc9c0 \uc88b\uc740 \ubc29\ubc95\uc740 \uc9c0\ub9ac\uc801 \uc601\uc5ed\uc744 \uc124\uba85\ud558\ub294 \ub2e4\uac01\ud615(\uc77c\ubc18\uc801\uc73c\ub85c \ubd88\uaddc\uce59\ud55c)\uc744 \uc2dd\ubcc4\ud558\ub294 \uc77c\ub828\uc758 \uc815\uc810\uc744 \uc804\ub2ec\ud558\ub294 \uac83\uc784\uc744 \uc54c \uc218 \uc788\uc2b5\ub2c8\ub2e4. Brian\uc758 \uc608\uc5d0\uc11c\ub294 10\uc30d\uc758 \uc704\ub3c4\/\uacbd\ub3c4 \uc810\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4:<\/p>\n<pre class=\"toolbar-overlay:false toolbar-hide:false toolbar-delay:false show-title:false striped:false marking:false ranges:false nums:false nums-toggle:false wrap-toggle:false expand-toggle:false decode-attributes:false trim-whitespace:false trim-code-tag:false mixed:false show_mixed:false lang:default decode:true show_mixed:false\">\"polygon_points\": [\r\n  \"35.987374, -83.658937\",\r\n  \"35.971769, -83.654212\",\r\n  \"35.887168, -83.793874\",\r\n  \"35.686403, -83.678068\",\r\n  \"35.704374, -83.505435\",\r\n  \"35.769145, -83.275637\",\r\n  \"35.868423, -83.290819\",\r\n  \"35.919168, -83.350486\",\r\n  \"35.948053, -83.510420\",\r\n  \"35.990925, -83.568382\"\r\n]<\/pre>\n<p>\uc774\ub7ec\ud55c \ud3ec\uc778\ud2b8\ub294 \ub300\ub7b5 \ud14c\ub124\uc2dc\uc8fc\uc758 \ud55c \uc9c0\uc5ed, \uace0\uc18d\ub3c4\ub85c \ub0a8\ucabd, \uad6d\ub9bd\uacf5\uc6d0 \uacbd\uacc4 \ubd81\ucabd, \ub2e8\uc77c \uce74\uc6b4\ud2f0 \ub0b4\ub97c \uacbd\uacc4\ub85c \ud558\uba70, \ud544\uc694\ud55c \ubd84\uc11d\uc5d0 \uc801\ud569\ud558\uace0 \uc694\uccad\uc5d0 \ubd99\uc5ec\ub123\uae30\uc5d0\ub3c4 \uc27d\uc2b5\ub2c8\ub2e4. \uc774\ub97c \uac10\uc548\ud560 \ub54c, Couchbase \uc804\uccb4 \ud14d\uc2a4\ud2b8 \uac80\uc0c9(FTS) \uc778\ub371\uc2a4 \uc5d4\uc9c4\uc740 \uacbd\uacc4 \ub0b4\ubd80(\ub610\ub294 \uc678\ubd80)\uc758 \uc9c0\uc810\uacfc \uad00\ub828\ub41c \ubaa8\ub4e0 \ud544\uc218 \ub370\uc774\ud130 \uc694\uc18c\ub97c \uc27d\uac8c \ubc18\ud658\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. (Brian\uc774 \uc790\uc2e0\uc758 \uac8c\uc2dc\ubb3c\uc5d0\uc11c \uc774\uc5d0 \ub300\ud55c \uc88b\uc740 \uc608\ub97c \uc81c\uc2dc\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4.)<\/p>\n<h4>\ub80c\uce58(\ub610\ub294 \uc5b4\uca4c\uba74 \ub80c\uce58 \ubaa8\uc591\uc758 \uc9c0\uad6c)<\/h4>\n<p>\ud558\uc9c0\ub9cc \ub2e4\uac01\ud615 \uc601\uc5ed\uc774 \ub9e4\uc6b0 \uc0c1\uc138\ud558\uace0 \ubcf5\uc7a1\ud574\uc11c \uc218\ucc9c \uc30d\uc758 \uc704\ub3c4\/\uacbd\ub3c4 \uc9c0\uc810\uc744 \uc124\uba85\ud574\uc57c \ud558\ub294 \uacbd\uc6b0\ub77c\uba74 \uc5b4\ub5bb\uac8c \ud574\uc57c \ud560\uae4c\uc694? \uc774\uc5d0 \ub300\ud55c \uc608\uc2dc\uac00 \uc900\ube44\ub418\uc5b4 \uc788\ub098\uc694? \uc608! 50\uac1c \uc8fc \uc758\ud68c \ubc0f\/\ub610\ub294 \uadf8 \ub300\ub9ac\uc778\ub4e4\uc758 \ub178\ub825 \ub355\ubd84\uc5d0, \ubbf8\uad6d \uc758\ud68c \uc120\uac70\uad6c \ud615\ud0dc\ub85c \uc774\uc640 \uac19\uc740 \uc9c0\uc5ed\uc758 \uc608\uac00 \ub9ce\uc774 \uc788\uc2b5\ub2c8\ub2e4. \uadf8\ub9ac\uace0 Couchbase N1QL\uacfc FTS \uc9c0\ub9ac\uacf5\uac04 \uac80\uc0c9 \ub355\ubd84\uc5d0 \ub370\uc774\ud130\ub97c \uc27d\uac8c \uad00\ub9ac\ud560 \uc218 \uc788\ub294 \uc218\ub2e8\uc774 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\ubbf8\uad6d \uc5f0\ubc29 \ud558\uc6d0 \uc120\uac70\uad6c\ub97c \uc815\uc758\ud558\ub824\uba74 \ud3c9\uade0 8,694\uac1c\uc758 \uc815\uc810\uc774 \ud544\uc694\ud569\ub2c8\ub2e4. \uadf8 \uc774\uc720\ub294 \uc2e4\uc6a9\uc801(\ubaa8\ub4e0 \uc120\uac70\uad6c\ub294 \uac70\uc758 \ub3d9\uc77c\ud55c \uc218\uc758 \uc2dc\ubbfc\uc73c\ub85c \uad6c\uc131\ub420 \uac83\uc73c\ub85c \uc608\uc0c1\ub428), \uc815\uce58\uc801(\uc9d1\uad8c \uc815\ub2f9\uc774 \ud574\ub2f9 \uc9c0\uc5ed \uc720\uad8c\uc790\ub4e4\uc774 \uc120\uac70\uad6c \uacbd\uacc4\ub97c \uadf8\ub300\ub85c \uc720\uc9c0\ud560 \uc218 \uc788\ub3c4\ub85d \uc65c\uace1\ud560 \uc218 \uc788\uc73c\uba70 \uc774\ub97c \uac8c\ub9ac\ub9e8\ub354\ub9c1\uc774\ub77c\uace0 \ud568), \uc9c0\ub9ac\uc801(\ub9ce\uc740 \uc120\uac70\uad6c\uac00 \uac15, \ud638\uc218, \ud574\uc548, \uc0b0 \ubc0f \uae30\ud0c0 \uc790\uc5f0 \uacbd\uacc4\ub97c \ubd80\ubd84\uc801\uc73c\ub85c \uae30\ubc18\uc73c\ub85c \ud568) \uc774\uc720 \ub54c\ubb38\uc774\uc8e0. \uc9c0\ub9ac\uc801\uc73c\ub85c \uac00\uc7a5 \ubcf5\uc7a1\ud55c \uc120\uac70\uad6c(\uc989, \uac00\uc7a5 \ub9ce\uc740 \uc218\uc758 \uc815\uc810\uc744 \uc124\uba85\ud574\uc57c \ud558\ub294 \uc120\uac70\uad6c)\ub294 \ubc84\uc9c0\ub2c8\uc544\uc8fc \uc81c5 \ud558\uc6d0\uc758\uc6d0 \uc120\uac70\uad6c\ub85c, \ubb34\ub824 40,145\uac1c\uc758 \uc704\ub3c4\/\uacbd\ub3c4 \uc30d\uc744 \uc124\uba85\ud574\uc57c \ud569\ub2c8\ub2e4(\ub9c8\uce58 \ud2f0\ub77c\ub178\uc0ac\uc6b0\ub8e8\uc2a4\uac00 \ub9cc\uc5f0\ud55c \uac83\ucc98\ub7fc \ubcf4\uc785\ub2c8\ub2e4). \uac00\uc7a5 \uac04\ub2e8\ud55c \uac83\uc740 422\uac1c\ub9cc \ud544\uc694\ud55c \ub274\uc695\uc8fc \uc81c36 \uc5f0\ubc29\ud558\uc6d0 \uc120\uac70\uad6c\ub85c, \ub9c8\uce58 \uc7a0\uc218\ud568\uc774 \uc774\ub9ac \ud638\uc218\uc5d0\uc11c \ubab0\ub798 \ube60\uc838\ub098\uac00\ub294 \uac83\ucc98\ub7fc \uc0dd\uacbc\uc2b5\ub2c8\ub2e4.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-9629 size-full\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/11\/StateDistricts.png\" alt=\"\" width=\"1352\" height=\"340\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/StateDistricts.png 1352w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/StateDistricts-300x75.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/StateDistricts-1024x258.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/StateDistricts-768x193.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/StateDistricts-20x5.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/StateDistricts-1320x332.png 1320w\" sizes=\"auto, (max-width: 1352px) 100vw, 1352px\" \/><\/p>\n<h4>\ub370\uc774\ud130<\/h4>\n<p>\ub530\ub77c\uc11c \ub300\uaddc\ubaa8\ub85c \ucffc\ub9ac\ub97c \uad6c\ud604\ud558\ub824\uba74 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0\uc11c \uc9c0\ub9ac\uc801 \ud3ec\uc778\ud2b8\ub97c \uc800\uc7a5\ud558\uace0 \uac80\uc0c9\ud574\uc57c \ud569\ub2c8\ub2e4. \uadf8\ub9ac\uace0 \ud3ec\uc778\ud2b8\ub294 \uc784\ubca0\ub514\ub4dc \ubc30\uc5f4\uc758 \ud615\ud0dc\ub85c \ubc1c\uacac\ub420 \uac00\ub2a5\uc131\uc774 \ub192\uae30 \ub54c\ubb38\uc5d0 Couchbase\uc758 JSON \ubb38\uc11c\uac00 \ubc14\ub85c \uadf8 \ud2f0\ucf13\uc785\ub2c8\ub2e4. \ub2e4\uc74c\uc740 \uadf8\ub7ec\ud55c \ubb38\uc11c\uc758 \uc608\uc785\ub2c8\ub2e4:<\/p>\n<pre class=\"toolbar-overlay:false toolbar-hide:false toolbar-delay:false show-title:false striped:false marking:false ranges:false nums:false nums-toggle:false wrap-toggle:false expand-toggle:false decode-attributes:false trim-whitespace:false trim-code-tag:false mixed:false show_mixed:false lang:default decode:true show_mixed:false\">{\r\n\"geometry\": {\r\n\"type\": \"Polygon\",\r\n\"coordinates\": [\r\n{\r\n  \"geometry\": {\r\n    \"type\": \"Polygon\",\r\n    \"coordinates\": [\r\n      [\r\n        [-93.911307,44.546513999999995],\r\n        [-93.91024,44.548004999999996],\r\n        [-93.909904,44.548300999999995],\r\n        [-93.90922599999999,44.548843999999995],\r\n        [etc., etc., for hundreds or thousands of pairs]\r\n        [-93.911307,44.546513999999995]\r\n      ]\r\n    ]\r\n  },\r\n\"type\": \"Feature\",\r\n\"properties\": {\r\n\"INTPTLAT\": \"+44.4789680\",\r\n\"FUNCSTAT\": \"N\",\r\n\"INTPTLON\": \"-092.8530418\",\r\n\"LSAD\": \"C2\",\r\n\"GEOID\": \"2702\",\r\n\"AWATER\": 243358361,\r\n\"CD116FP\": \"02\",\r\n\"CDSESSN\": \"116\",\r\n\"MTFCC\": \"G5200\",\r\n\"NAMELSAD\": \"Congressional District 2\",\r\n\"STATEFP\": \"27\",\r\n\"ALAND\": 6314464923\r\n}\r\n}\r\n\r\n<\/pre>\n<p>\ub2e4\uac01\ud615 \uc810\uc774 \uc774\ub984 \uc5c6\ub294 \ub2e8\uc77c \uc694\uc18c \ubc30\uc5f4\uc5d0 \ud3ec\ud568\ub418\uace0, \ub2e4\ub978 '\uc88c\ud45c' \ubc30\uc5f4\uc5d0 \ud3ec\ud568\ub418\uace0, '\uae30\ud558\ud559' \uac1d\uccb4\uc5d0 \ud3ec\ud568\ub418\ub294 \ub4f1 \ub370\uc774\ud130\uc758 \ubaa8\uc591\uc774 \uc65c \uc774\ub7f0 \uc2dd\uc73c\ub85c \ub418\uc5b4 \uc788\uc744\uae4c\uc694? \uac04\ub2e8\ud55c \ub300\ub2f5\uc740 \ub54c\ub85c\ub294 \uadf8\ub0e5 \uac00\uc9c0\uace0 \uc788\ub294 \ub370\uc774\ud130\ub85c \uc791\uc5c5\ud558\uba74 \ub41c\ub2e4\ub294 \uac83\uc785\ub2c8\ub2e4. (\uc774 \uae00\uc740 \uc81c\uac00 \ucc3e\uc744 \uc218 \uc788\uc5c8\ub358 \uacf5\uac1c \uc18c\uc2a4\ub97c \uae30\ubc18\uc73c\ub85c \ud558\uace0 \uc788\ub294\ub370, \uc774 \uc18c\uc2a4\ub294 Couchbase\ub85c \uac00\uc838\uc624\uae30\uac00 \ub9e4\uc6b0 \uc26c\uc6e0\uc2b5\ub2c8\ub2e4. \uadf8 \uacfc\uc815\uc744 \uc124\uba85\ud558\ub294 \ubcc4\ub3c4\uc758 \ud3ec\uc2a4\ud305\uc744 \uc791\uc131\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.) \uadf8\ub9ac\uace0 \ub370\uc774\ud130\uac00 \uc57d\uac04 \ubc88\uac70\ub86d\uae30\ub294 \ud558\uc9c0\ub9cc, \uc544\ub798\uc5d0\uc11c \uc0b4\ud3b4\ubcf4\uaca0\uc9c0\ub9cc N1QL \uc5b8\uc5b4\ub97c \uc0ac\uc6a9\ud558\uba74 \ud544\uc694\ud55c \uac83\uc744 \uc27d\uac8c \uac80\uc0c9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\ub2e4\ub978 \ub370\uc774\ud130 \uc138\ud2b8\ub294 \uc774 \uc608\uc81c\uc758 \uc8fc\uc694 \ubd80\ubd84\uc744 \uad6c\uc131\ud569\ub2c8\ub2e4. \uc218\ubc31\ub9cc \uba85\uc758 \ub4f1\ub85d \uc720\uad8c\uc790 \ubaa9\ub85d(\uc774\ub984\uacfc \uc8fc\uc18c\ub294 \uc704\uc870\ud588\uc73c\ub2c8 \uac71\uc815\ud558\uc9c0 \ub9c8\uc138\uc694)\uacfc \uac01 \uc720\uad8c\uc790\uc758 \uc18c\uc18d \uc815\ub2f9 \ubc0f \ud22c\ud45c \uae30\ub85d\uc774 \ud3ec\ud568\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. \uc0d8\ud50c \ubb38\uc11c\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4:<\/p>\n<pre class=\"toolbar-overlay:false toolbar-hide:false toolbar-delay:false show-title:false striped:false marking:false ranges:false nums:false nums-toggle:false wrap-toggle:false expand-toggle:false decode-attributes:false trim-whitespace:false trim-code-tag:false mixed:false show_mixed:false lang:default decode:true show_mixed:false\">{\r\n  \"City\": \"Adelanto\",\r\n  \"doctype\": \"Voter\",\r\n  \"Name\": \"Ryan Johnson\",\r\n  \"County\": \"San Bernardino\",\r\n  \"Party\": \"Democrat\",\r\n  \"Reg\": [{\"Year\": 2018},\r\n          {\"Voted\": \"In person\",\"Year\": 2016},\r\n          {\"Year\": 2014},\r\n          {\"Voted\": \"In person\",\"Year\": 2012},\r\n          {\"Year\": 2010},\r\n          {\"Voted\": \"In person\",\"Year\": 2008},\r\n          {\"Year\": 2006},\r\n          {\"Voted\": \"In person\",\"Year\": 2004},\r\n          {\"Year\": 2002},\r\n          {\"Voted\": \"In person\",\"Year\": 2000},\r\n          {\"Year\": 1998},\r\n          {\"Voted\": \"In person\",\"Year\": 1996}],\r\n  \"Addr\": \"221 Cindy Inlet Suite 064\",\r\n  \"Zip\": \"92301\",\r\n  \"Geo\": {\"lat\": 34.6149071942612,\"lon\": -117.51442556265236}\r\n}<\/pre>\n<h4>\uc0ac\uc6a9 \uc0ac\ub840 \ubc0f \uc124\uc815<\/h4>\n<p>\ub9c8\uc9c0\ub9c9\uc73c\ub85c \uc0ac\uc6a9 \uc0ac\ub840\ub97c \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4: \uac1c\ubcc4 \uc720\uad8c\uc790\uac00 \uc804\ud654\ub97c \uac78\uc5c8\uc744 \ub54c, \uad6d\ud68c\uc758\uc6d0\uc774 \uadf8 \uc0ac\ub78c\uc774 \uc790\uc2e0\uc758 \ud22c\ud45c\uad6c \uc720\uad8c\uc790\uc778\uc9c0 \uc5ec\ubd80\ub97c \uc5b4\ub5bb\uac8c \uc2e0\uc18d\ud558\uac8c \ud310\ub2e8\ud560 \uc218 \uc788\uc744\uae4c\uc694? FTS\uc640 N1QL\ub85c \uc774 \ubb38\uc81c\ub97c \ud574\uacb0\ud574 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uba3c\uc800 FTS \uc778\ub371\uc2a4\ub97c \uc900\ube44\ud574\uc57c \ud569\ub2c8\ub2e4. \uc6b0\ub9ac\uc758 \uacbd\uc6b0 \uc720\ud615 \ud544\ub4dc\ub97c \uae30\uc900\uc73c\ub85c \ubaa8\ub4e0 \ubb38\uc11c\ub97c \uc0c9\uc778\ud654\ud569\ub2c8\ub2e4. <em>_\uc720\ud615<\/em>. \uc0c9\uc778\uc744 \uc0dd\uc131\ud569\ub2c8\ub2e4. <em>\uc774\ub984<\/em> \ud544\ub4dc\ub97c \ud0a4\uc6cc\ub4dc\ub85c \uc124\uc815\ud558\uace0 <em>\uc9c0\ub9ac\uc801<\/em> \ud544\ub4dc\ub97c \uc9c0\uc624\ud3ec\uc778\ud2b8\ub85c \uc9c0\uc815\ud569\ub2c8\ub2e4. \ucf58\uc194\uc5d0 \ud45c\uc2dc\ub418\ub294 \ubaa8\uc2b5\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-9631 size-large\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/11\/Screen-Shot-2020-11-03-at-2.27.01-PM-1024x490.png\" alt=\"\" width=\"900\" height=\"431\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/Screen-Shot-2020-11-03-at-2.27.01-PM-1024x490.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/Screen-Shot-2020-11-03-at-2.27.01-PM-300x144.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/Screen-Shot-2020-11-03-at-2.27.01-PM-768x368.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/Screen-Shot-2020-11-03-at-2.27.01-PM-1536x736.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/Screen-Shot-2020-11-03-at-2.27.01-PM-20x10.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/Screen-Shot-2020-11-03-at-2.27.01-PM-1320x632.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/Screen-Shot-2020-11-03-at-2.27.01-PM.png 1758w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<p>(\uc0c9\uc778 \uc791\uc131 \ub2e8\uacc4\uc5d0 \ub300\ud55c \uc790\uc138\ud55c \ub0b4\uc6a9\uc740 Brian\uc758 \uac8c\uc2dc\ubb3c\uc744 \ucc38\uc870\ud558\uc138\uc694.)<\/p>\n<p>\uc774 \uc778\ub371\uc2a4\uac00 \uad6c\ucd95\ub418\uba74 \uc77c\ub828\uc758 \ub2e4\uac01\ud615 \ud3ec\uc778\ud2b8\ub97c \uc804\ub2ec\ud558\uace0 \uc77c\ub828\uc758 \ud788\ud2b8\ub97c \uc218\uc2e0\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. Brian\uc758 \uc548\ub0b4\uc5d0 \ub530\ub77c \uc800\ub294 \uceec\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc774\ub97c \ud14c\uc2a4\ud2b8\ud574 \ubcf4\uc558\uc2b5\ub2c8\ub2e4:<\/p>\n<pre class=\"toolbar-overlay:false toolbar-hide:false toolbar-delay:false show-title:false striped:false marking:false ranges:false nums:false nums-toggle:false wrap-toggle:false expand-toggle:false decode-attributes:false trim-whitespace:false trim-code-tag:false mixed:false show_mixed:false lang:default decode:true show_mixed:false\">curl -s -XPOST -H \"Content-Type: application\/json\" -u Administrator:password https:\/\/localhost:8094\/api\/index\/ftsVoterGeo\/query -d '\r\n{\r\n  \"fields\": [\"Name\"],\r\n  \"size\": 50,\r\n  \"query\": {\r\n    \"field\": \"Geo\",\r\n    \"polygon_points\": [\r\n      \"33.4328, -114.7322\",\r\n      \"33.5253, -114.6561\",\r\n      \"33.6178, -114.5883\",\r\n      \"34.6173, -117.4220\"\r\n    ]\r\n  }\r\n}' | jq '(\"result_count: \"+ (.total_hits | tostring)), (.hits[]| (.id + \" \" + .fields.Name))'<\/pre>\n<p>\uc774\uac83\uc740 \ub2e8\uc21c\ud55c \ub2e4\uac01\ud615 \uc601\uc5ed\uc5d0 \ub300\ud55c \uac80\uc0c9\uc774 \uc774\ub984 \ubaa9\ub85d\uc744 \ubc18\ud658\ud560 \uc218 \uc788\uace0 \ubc18\ud658\ud55c\ub2e4\ub294 \uac83\uc744 \ubcf4\uc5ec\uc90d\ub2c8\ub2e4. \uc774\ub860\uc801\uc73c\ub85c\ub294 \uc5ec\uae30\uc11c \uba48\ucd94\uace0 \uc571(\ub610\ub294 \uc0ac\uc6a9\uc790)\uc774 \ud788\ud2b8 \ubaa9\ub85d\uc744 \uac80\uc0c9\ud558\uc5ec \ubb38\uc81c\uc758 \uac1c\ubcc4 \uc720\uad8c\uc790 \uc774\ub984\uc744 \ucc3e\uc744 \uc218 \uc788\ub294\uc9c0 \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \ub354 \uc88b\uc740 \ubc29\ubc95\uc774 \uc788\uc2b5\ub2c8\ub2e4. \uac80\uc0c9 \uc5d4\uc9c4\uc774 \uac80\uc0c9 \ubc94\uc704\ub97c \uc881\ud788\ub3c4\ub85d \ud574\ubd05\uc2dc\ub2e4. '\uc811\uc18d\uc0ac' \uac80\uc0c9\uc744 \ud1b5\ud574 \uc774 \uc791\uc5c5\uc744 \uc218\ud589\ud569\ub2c8\ub2e4. (\uc811\uc18d\uc0ac\ub294 \ub17c\ub9ac AND\ub85c, \ubd84\ub9ac \uc811\uc18d\uc0ac\ub294 \ub17c\ub9ac OR\ub85c \uc0dd\uac01\ud558\uba74 \ub429\ub2c8\ub2e4.) \uc544\ub798\ub294 \uceec\uc758 \uc608\uc2dc\uc785\ub2c8\ub2e4:<\/p>\n<pre class=\"toolbar-overlay:false toolbar-hide:false toolbar-delay:false show-title:false striped:false marking:false ranges:false nums:false nums-toggle:false wrap-toggle:false expand-toggle:false decode-attributes:false trim-whitespace:false trim-code-tag:false mixed:false show_mixed:false lang:default decode:true show_mixed:false\">curl -s -XPOST -H \"Content-Type: application\/json\" -u Administrator:password https:\/\/localhost:8094\/api\/index\/ftsVoterGeo\/query -d '\r\n{\r\n  \"fields\": [\"Name\"],\r\n  \"size\": 50,\r\n  \"query\":\r\n  {\r\n    \"conjuncts\":\r\n      [\r\n        {\r\n        \"field\": \"Geo\",\r\n        \"polygon_points\": [\r\n           \"33.4328, -114.7322\",\r\n           \"33.5253, -114.6561\",\r\n           \"33.6178, -114.5883\",\r\n           \"34.6173, -117.4220\"\r\n        ]\r\n        },\r\n        {\r\n        \"field\": \"Name\",\r\n        \"match\": \"Anne Murray\"\r\n        }\r\n      ]\r\n  }\r\n}' | jq '(\"result_count: \"+ (.total_hits | tostring)), (.hits[]| (.id + \" \" + .fields.Name))'<\/pre>\n<p>\uc774\ub97c \"\uc9c0\uc624\ud3ec\uc778\ud2b8\uac00 \ub2e4\uac01\ud615 \uacbd\uacc4 \ub0b4\uc5d0 \uc788\uace0 \uc774\ub984\uc774 \uc720\uad8c\uc790 \uc774\ub984\uacfc \uc77c\uce58\ud558\uba74 \uc801\uc911\uc744 \ubc18\ud658\ud569\ub2c8\ub2e4.\"\ub77c\uace0 \uc77d\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub9c8\ubc95\ucc98\ub7fc \uc791\ub3d9\ud558\ubbc0\ub85c FTS \uc778\ub371\uc2a4\uac00 \uc81c\ub300\ub85c \uc815\uc758\ub418\uc5c8\uc74c\uc744 \uc54c \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h4>\ucd94\ucd9c<\/h4>\n<p>\uc774\uc81c \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0\uc11c \uac1c\ubcc4 \uc120\uac70\uad6c\uc758 \uacbd\uacc4\ub97c \uac80\uc0c9\ud558\ub294 \uac83\uc744 \ud14c\uc2a4\ud2b8\ud574\uc57c \ud569\ub2c8\ub2e4. \uccab \ubc88\uc9f8 \ub2e8\uacc4\uc5d0\uc11c\ub294 \ub2e8\uc77c \uc120\uac70\uad6c\uc5d0 \ub300\ud574 \uc0ac\uc6a9\ud560 \uac00\ub2a5\uc131\uc774 \uc788\ub294 \ub370\uc774\ud130\ub97c \uac04\ub2e8\ud788 \uac80\uc0ac\ud558\ub294 \uac83\ub9cc\uc73c\ub85c\ub3c4 \ucda9\ubd84\ud569\ub2c8\ub2e4:<\/p>\n<pre class=\"toolbar-overlay:false toolbar-hide:false toolbar-delay:false show-title:false striped:false marking:false ranges:false nums:false nums-toggle:false wrap-toggle:false expand-toggle:false decode-attributes:false trim-whitespace:false trim-code-tag:false mixed:false show_mixed:false lang:default decode:true show_mixed:false\">select properties.NAMELSAD, districts.geometry.coordinates from districts\r\n      use keys 'district::87';<\/pre>\n<p>\uadf8\ub7ec\uba74 \ub2e4\uc74c\uacfc \uac19\uc740 \uacb0\uacfc\uac00 \ubc18\ud658\ub429\ub2c8\ub2e4:<\/p>\n<pre class=\"toolbar-overlay:false toolbar-hide:false toolbar-delay:false show-title:false striped:false marking:false ranges:false nums:false nums-toggle:false wrap-toggle:false expand-toggle:false decode-attributes:false trim-whitespace:false trim-code-tag:false mixed:false show_mixed:false lang:default decode:true show_mixed:false\">[\r\n    {\r\n        \"NAMELSAD\": \"Congressional District 8\",\r\n        \"coordinates\": [\r\n            [\r\n                [\r\n                    -119.651375,\r\n                    38.286637999999996\r\n                ],\r\n                [\r\n                    -119.650185,\r\n                    38.287234\r\n                ],<\/pre>\n<p>...\uadf8\ub9ac\uace0 1.3MB\uc758 \uacb0\uacfc \uc9d1\ud569\uc744 \uacc4\uc18d \ubc18\ubcf5\ud569\ub2c8\ub2e4. \uc774\uac78 \uc798\ub77c\uc11c \ubd99\uc5ec\ub123\uace0 \uc2f6\uc9c0 \uc54a\uc740 \uac83\ub3c4 \ub2f9\uc5f0\ud569\ub2c8\ub2e4.<\/p>\n<p>\uc6b0\ub9ac\uc758 \ubaa9\ud45c\ub294 \ub2e4\uc74c\uacfc \uac19\uc740 \ubaa8\uc2b5\uc73c\ub85c \ub05d\ub098\ub294 \uac83\uc784\uc744 \uae30\uc5b5\ud558\uc138\uc694:<\/p>\n<pre class=\"toolbar-overlay:false toolbar-hide:false toolbar-delay:false show-title:false striped:false marking:false ranges:false nums:false nums-toggle:false wrap-toggle:false expand-toggle:false decode-attributes:false trim-whitespace:false trim-code-tag:false mixed:false show_mixed:false lang:default decode:true show_mixed:false\">[\r\n   \"33.4328, -114.7322\",\r\n   \"33.5253, -114.6561\",\r\n   \"33.6178, -114.5883\",\r\n   \"34.6173, -117.4220\"\r\n]<\/pre>\n<p>\uc774\ub807\uac8c \ud558\uba74 \ub2e4\uc74c\uacfc \uac19\uc740 \uacb0\uacfc\ub97c \uc5bb\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n<pre class=\"toolbar-overlay:false toolbar-hide:false toolbar-delay:false show-title:false striped:false marking:false ranges:false nums:false nums-toggle:false wrap-toggle:false expand-toggle:false decode-attributes:false trim-whitespace:false trim-code-tag:false mixed:false show_mixed:false lang:default decode:true show_mixed:false\">select value concat(tostring(c[1]),\", \",tostring(c[0])) points\r\nfrom (\r\n      select value districts.geometry.coordinates[0] from districts\r\n      use keys 'district::87'\r\n      )[0] c;<\/pre>\n<p>\uc124\uba85\uc774 \uaf64 \ub9ce\uc73c\ub2c8 \uc77c\ub2e8 \ud480\uc5b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4. \uc6b0\ub9ac\ub294 \uc774\uc0c1\uc801\uc73c\ub85c \uc6d0\ud558\ub294 \uac83\uc774 \uc544\ub2c8\ub77c \ud604\uc7ac \uac00\uc9c0\uace0 \uc788\ub294 \ub370\uc774\ud130\ub85c \uc791\uc5c5\ud558\uace0 \uc788\uc73c\uba70, \uc6b0\ub9ac\uac00 \uc6d0\ud558\ub294 \ub2e4\uac01\ud615 \uc810\uc740 \uc774\ub984 \uc5c6\ub294 \ub2e8\uc77c \uc694\uc18c \ubc30\uc5f4\uc5d0 \ud3ec\ud568\ub418\uc5b4 \uc788\uace0, \ub2e4\ub978 '\uc88c\ud45c' \uc694\uc18c\uc5d0 \ud3ec\ud568\ub418\uc5b4 \uc788\uc73c\uba70, '\uc9c0\uc624\uba54\ud2b8\ub9ac' \uac1d\uccb4\uc5d0 \ud3ec\ud568\ub418\uc5b4 \uc788\ub2e4\ub294 \uac83\uc744 \uae30\uc5b5\ud558\uc138\uc694. \ud558\ub098\uc529 \ud480\uc5b4\ub098\uac00\uc57c \ud569\ub2c8\ub2e4. \uba3c\uc800 \uc774\ub984 \uc5c6\ub294 \ubc30\uc5f4 \ub798\ud37c\ub97c \uc81c\uac70\ud574 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4. \ubc30\uc5f4\uc758 \ub2e8\uc77c(\uccab \ubc88\uc9f8 \ub610\ub294 \"0\ubc88\uc9f8\") \uba64\ubc84\ub9cc \ubc18\ud658\ud558\ub3c4\ub85d \uc694\uccad\ud558\uba74 \ub429\ub2c8\ub2e4:<\/p>\n<pre class=\"toolbar-overlay:false toolbar-hide:false toolbar-delay:false show-title:false striped:false marking:false ranges:false nums:false nums-toggle:false wrap-toggle:false expand-toggle:false decode-attributes:false trim-whitespace:false trim-code-tag:false mixed:false show_mixed:false lang:default decode:true show_mixed:false\">select districts.geometry.coordinates[0] from districts\r\n      use keys 'district::87'<\/pre>\n<p>\uc774 \ucffc\ub9ac\uc5d0\uc11c \ubc18\ud658\ub418\ub294 JSON \uac1d\uccb4\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4:<\/p>\n<pre class=\"toolbar-overlay:false toolbar-hide:false toolbar-delay:false show-title:false striped:false marking:false ranges:false nums:false nums-toggle:false wrap-toggle:false expand-toggle:false decode-attributes:false trim-whitespace:false trim-code-tag:false mixed:false show_mixed:false lang:default decode:true show_mixed:false\">[\r\n    {\r\n        \"$1\": [\r\n            [\r\n                -119.651375,\r\n                38.286637999999996\r\n            ],\r\n            [\r\n                -119.650185,\r\n                38.287234\r\n            ],\r\n            [\r\n                -119.650139,\r\n                38.287678\r\n            ],<\/pre>\n<p>select value\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc774\ub97c JSON \uac1d\uccb4\uac00 \uc544\ub2cc \ubc30\uc5f4\ub85c \ubcc0\ud658\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n<pre class=\"toolbar-overlay:false toolbar-hide:false toolbar-delay:false show-title:false striped:false marking:false ranges:false nums:false nums-toggle:false wrap-toggle:false expand-toggle:false decode-attributes:false trim-whitespace:false trim-code-tag:false mixed:false show_mixed:false lang:default decode:true show_mixed:false\">select value districts.geometry.coordinates[0] from districts\r\n      use keys 'district::87'<\/pre>\n<p>\uc774\uc81c \uc6b0\ub9ac\uac00 \uc6d0\ud558\ub294 \ub9e4\uc6b0 \ud070 \ubc30\uc5f4\uc774 \ub2e4\ub978 \ubc30\uc5f4\uc758 \ub2e8\uc77c \uc694\uc18c\ub85c \ub458\ub7ec\uc2f8\uc5ec \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n<pre class=\"toolbar-overlay:false toolbar-hide:false toolbar-delay:false show-title:false striped:false marking:false ranges:false nums:false nums-toggle:false wrap-toggle:false expand-toggle:false decode-attributes:false trim-whitespace:false trim-code-tag:false mixed:false show_mixed:false lang:default decode:true show_mixed:false\">[\r\n    [\r\n        [\r\n            -119.651375,\r\n            38.286637999999996\r\n        ],\r\n        [\r\n            -119.650185,\r\n            38.287234\r\n        ],\r\n        [\r\n            -119.650139,\r\n            38.287678\r\n        ],\r\n        [\r\n            -119.650154,\r\n            38.288041<\/pre>\n<p>\ud574\ub2f9 \ubc18\ud658 \uc138\ud2b8\uc5d0\uc11c \uc120\ud0dd\ud574 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4:<\/p>\n<pre class=\"toolbar-overlay:false toolbar-hide:false toolbar-delay:false show-title:false striped:false marking:false ranges:false nums:false nums-toggle:false wrap-toggle:false expand-toggle:false decode-attributes:false trim-whitespace:false trim-code-tag:false mixed:false show_mixed:false lang:default decode:true show_mixed:false\">select * from (\r\nselect value districts.geometry.coordinates[0] from districts\r\nuse keys 'district::87')[0] c<\/pre>\n<p>\uc774\ub807\uac8c \ud558\uba74 \uc6b0\ub9ac\uc758 \uc758\uc9c0\uc5d0 \ub530\ub77c \uad6c\ubd80\ub9b4 \uc218 \uc788\ub294 \uc791\uc740 \ubb3c\uac74\uc774 \ub9ce\uc774 \uc0dd\uae41\ub2c8\ub2e4:<\/p>\n<pre class=\"toolbar-overlay:false toolbar-hide:false toolbar-delay:false show-title:false striped:false marking:false ranges:false nums:false nums-toggle:false wrap-toggle:false expand-toggle:false decode-attributes:false trim-whitespace:false trim-code-tag:false mixed:false show_mixed:false lang:default decode:true show_mixed:false\">[\r\n    {\r\n        \"c\": [\r\n            -119.651375,\r\n            38.286637999999996\r\n        ]\r\n    },\r\n    {\r\n        \"c\": [\r\n            -119.650185,\r\n            38.287234\r\n        ]\r\n    },<\/pre>\n<p>\uc774\uc81c \uc720\ud615\uc744 \ubcc0\ud658\ud558\uace0 \uc5f0\uacb0 \uc791\uc5c5\uc744 \uc218\ud589\ud574 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4:<\/p>\n<pre class=\"toolbar-overlay:false toolbar-hide:false toolbar-delay:false show-title:false striped:false marking:false ranges:false nums:false nums-toggle:false wrap-toggle:false expand-toggle:false decode-attributes:false trim-whitespace:false trim-code-tag:false mixed:false show_mixed:false lang:default decode:true show_mixed:false\">select concat(tostring(c[1]),\", \",tostring(c[0])) points from (\r\nselect value districts.geometry.coordinates[0] from districts\r\n      use keys 'district::87')[0] c<\/pre>\n<p>\uacb0\uacfc \uc624\ube0c\uc81d\ud2b8\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4:<\/p>\n<pre class=\"toolbar-overlay:false toolbar-hide:false toolbar-delay:false show-title:false striped:false marking:false ranges:false nums:false nums-toggle:false wrap-toggle:false expand-toggle:false decode-attributes:false trim-whitespace:false trim-code-tag:false mixed:false show_mixed:false lang:default decode:true show_mixed:false\">[\r\n  {\r\n    \"points\": \"38.286637999999996, -119.651375\"\r\n  },\r\n  {\r\n    \"points\": \"38.287234, -119.650185\"\r\n  },\r\n  {\r\n    \"points\": \"38.287678, -119.650139\"\r\n  },<\/pre>\n<p>\uc774\uc81c \uc120\ud0dd \uac12\uc744 \uc0ac\uc6a9\ud558\uc5ec \ubc30\uc5f4\ub85c \ubc1b\uc2b5\ub2c8\ub2e4:<\/p>\n<pre class=\"toolbar-overlay:false toolbar-hide:false toolbar-delay:false show-title:false striped:false marking:false ranges:false nums:false nums-toggle:false wrap-toggle:false expand-toggle:false decode-attributes:false trim-whitespace:false trim-code-tag:false mixed:false show_mixed:false lang:default decode:true show_mixed:false\">select value concat(tostring(c[1]),\", \",tostring(c[0])) points from (\r\nselect value districts.geometry.coordinates[0] from districts\r\n      use keys 'district::87')[0] c<\/pre>\n<p>\uadf8\ub9ac\uace0 \uc6d0\ud558\ub294 \uacb0\uacfc\ub97c \uc5bb\uc5c8\uc2b5\ub2c8\ub2e4:<\/p>\n<pre class=\"toolbar-overlay:false toolbar-hide:false toolbar-delay:false show-title:false striped:false marking:false ranges:false nums:false nums-toggle:false wrap-toggle:false expand-toggle:false decode-attributes:false trim-whitespace:false trim-code-tag:false mixed:false show_mixed:false lang:default decode:true show_mixed:false\">[\r\n  \"38.286637999999996, -119.651375\",\r\n  \"38.287234, -119.650185\",\r\n  \"38.287678, -119.650139\",\r\n  \"38.288041, -119.650154\",\r\n  \"38.288593999999996, -119.649699\",<\/pre>\n<h4>CTE\uc758 \uc6a9\uc774\uc131<\/h4>\n<p>\uc774 \ubaa8\ub4e0 \uac83\uc744 \ud558\ub098\ub85c \ubaa8\uc73c\uae30 \uc704\ud55c \ub9c8\uc9c0\ub9c9 \ube44\uacb0\uc740 \uc88b\uc740 \ubc29\ubc95\uc785\ub2c8\ub2e4. \uc9c0\uc624\ud3ec\uc778\ud2b8\uac00 \ud3ec\ud568\ub41c \ubc30\uc5f4\uc744 \ub354 \ud070 SQL \ubb38\uc758 \uad6c\uc131 \uc694\uc18c\ub85c \ucc38\uc870\ud560 \uc218 \uc788\ub294 \ubc29\ubc95\uc774 \ud544\uc694\ud569\ub2c8\ub2e4. \ub2e4\ud589\ud788\ub3c4 N1QL\uc740 \uacf5\ud1b5 \ud14c\uc774\ube14 \ud45c\ud604\uc2dd(CTE)\uc774\ub77c\ub294 \ud615\ud0dc\ub85c \uc774\ub97c \uc704\ud55c \uc218\ub2e8\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4.  CTE\ub294 \ucffc\ub9ac\uc5d0 \ucd94\uac00\ub418\ub294 \ucffc\ub9ac\uc758 <em>\uc640 \ud568\uaed8<\/em> \uc808\uc740 \ucffc\ub9ac \ube14\ub85d\ub2f9 \ud55c \ubc88\uc529 \ud3c9\uac00\ub418\uba70 \uc120\ud0dd \uc804\uc5d0 \ub3c4\uc785\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\uac83\uc774 \ubc14\ub85c \uc6b0\ub9ac\uac00 \ucc3e\uace0 \uc788\ub294 \uac83\uc785\ub2c8\ub2e4:<\/p>\n<pre class=\"toolbar-overlay:false toolbar-hide:false toolbar-delay:false show-title:false striped:false marking:false ranges:false nums:false nums-toggle:false wrap-toggle:false expand-toggle:false decode-attributes:false trim-whitespace:false trim-code-tag:false mixed:false show_mixed:false lang:default decode:true show_mixed:false\">with geopoints as\r\n(\r\nselect value concat(tostring(c[1]),\", \",tostring(c[0])) points\r\nfrom ((select value d.geometry.coordinates[0] from districts d use keys 'district::87')[0]) c\r\n)<\/pre>\n<p>\uc774\uc81c \ud6c4\uc18d(\ub610\ub294 \uc5ec\ub7ec \ud6c4\uc18d) SQL \ubb38\uc5d0\uc11c \ucc38\uc870\ud560 \uc218 \uc788\ub294 \ud3c9\uac00\ub41c \ubc18\ud658 \uc9d1\ud569 '\uc9c0\uc624\ud3ec\uc778\ud2b8'\uc5d0 \uc561\uc138\uc2a4\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc644\ubcbd\ud569\ub2c8\ub2e4. \uc5ec\uae30\uc11c\ub294 \ucd5c\uc885 \ucffc\ub9ac\uc5d0 \uc0ac\uc6a9\ub429\ub2c8\ub2e4:<\/p>\n<pre class=\"toolbar-overlay:false toolbar-hide:false toolbar-delay:false show-title:false striped:false marking:false ranges:false nums:false nums-toggle:false wrap-toggle:false expand-toggle:false decode-attributes:false trim-whitespace:false trim-code-tag:false mixed:false show_mixed:false lang:default decode:true show_mixed:false\">with geopoints as\r\n(\r\nselect value concat(tostring(c[1]),\", \",tostring(c[0])) points\r\nfrom ((select value d.geometry.coordinates[0] from districts d use keys 'district::87')[0]) c\r\n)\r\n\r\nselect Name\r\nfrom voters AS v\r\nwhere v._type = \"Voter\" AND search(v.Geo,\r\n{\r\n  \"query\":\r\n  {\r\n    \"conjuncts\":\r\n      [\r\n        {\r\n        \"field\": \"Geo\",\r\n        \"polygon_points\": geopoints\r\n        },\r\n        {\r\n        \"field\": \"Name\",\r\n        \"match\": \"Anne Murray\"\r\n        }\r\n      ]\r\n  }\r\n}\r\n);<\/pre>\n<p>\uc5ec\uae30 \uc788\uc2b5\ub2c8\ub2e4:  \uac04\ub2e8\ud55c \ub2e8\uc77c \ud654\uba74 \ucf54\ub4dc \ube14\ub85d\uc73c\ub85c \uc9c0\uc5ed\uc758 \ubcf5\uc7a1\ud55c \uacbd\uacc4\ub97c \uac80\uc0c9\ud558\uace0 \uc774\ub97c N1QL \uae30\ubc18 \uc9c0\ub9ac\uacf5\uac04 \uac80\uc0c9\uc758 \uc77c\ubd80\ub85c \ud65c\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.  \uc774 \uae30\uc220\uc744 \uc0ac\uc6a9\ud574\ubcf4\uace0 \uc9c0\ub9ac\uc801 \ubb38\uc81c\ub97c \ud574\uacb0\ud574 \ubcf4\uc138\uc694.<\/p>\n<p><em>\uc6d0\ub798 \uac8c\uc2dc\ubb3c\uc744 \uc791\uc131\ud574 \uc8fc\uc2e0 Brian Kane\uacfc \uc911\ucca9 \ubc30\uc5f4\uc744 \ud480\uc5b4\uc8fc\ub294 \ub370 \ub3c4\uc6c0\uc744 \uc8fc\uc2e0 Dmitry Lychagin\uc5d0\uac8c \uae4a\uc740 \uac10\uc0ac\ub97c \ub4dc\ub9bd\ub2c8\ub2e4.<\/em><\/p>","protected":false},"excerpt":{"rendered":"<p>The Basics Before you read any further, please take a few minutes and read the excellent post on geospatial search in Couchbase, as published by my friend and colleague Brian Kane: https:\/\/www.couchbase.com\/blog\/geospatial-search-how-do-i-use-thee-let-me-count-the-ways\/ Go ahead; I&#8217;ll wait. Now that you&#8217;re back, [&hellip;]<\/p>","protected":false},"author":41576,"featured_media":9633,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[2165,8683,1812],"tags":[],"ppma_author":[9066],"class_list":["post-9628","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-full-text-search","category-geospatial","category-n1ql-query"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.0 (Yoast SEO v26.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Taming the Gerrymander with Geospatial Search - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"Combining Couchbase geospatial search with N1QL queries will allow you to conquer complex geographical boundaries.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/ko\/taming-the-gerrymander-with-geospatial-search\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Taming the Gerrymander with Geospatial Search\" \/>\n<meta property=\"og:description\" content=\"Combining Couchbase geospatial search with N1QL queries will allow you to conquer complex geographical boundaries.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/ko\/taming-the-gerrymander-with-geospatial-search\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-11-04T23:51:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-01T17:18:35+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/11\/Taming-the-Gerrymander-with-Geospatial-Search.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"627\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Peter Reale\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Peter Reale\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/taming-the-gerrymander-with-geospatial-search\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/taming-the-gerrymander-with-geospatial-search\/\"},\"author\":{\"name\":\"Peter Reale\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/391cf559b28ca6b4c1660a1ce283752c\"},\"headline\":\"Taming the Gerrymander with Geospatial Search\",\"datePublished\":\"2020-11-04T23:51:31+00:00\",\"dateModified\":\"2024-03-01T17:18:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/taming-the-gerrymander-with-geospatial-search\/\"},\"wordCount\":1342,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/taming-the-gerrymander-with-geospatial-search\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/Gerrymander.jpg\",\"articleSection\":[\"Full-Text Search\",\"Geospatial\",\"SQL++ \/ N1QL Query\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/taming-the-gerrymander-with-geospatial-search\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/taming-the-gerrymander-with-geospatial-search\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/taming-the-gerrymander-with-geospatial-search\/\",\"name\":\"Taming the Gerrymander with Geospatial Search - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/taming-the-gerrymander-with-geospatial-search\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/taming-the-gerrymander-with-geospatial-search\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/Gerrymander.jpg\",\"datePublished\":\"2020-11-04T23:51:31+00:00\",\"dateModified\":\"2024-03-01T17:18:35+00:00\",\"description\":\"Combining Couchbase geospatial search with N1QL queries will allow you to conquer complex geographical boundaries.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/taming-the-gerrymander-with-geospatial-search\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/taming-the-gerrymander-with-geospatial-search\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/taming-the-gerrymander-with-geospatial-search\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/Gerrymander.jpg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/Gerrymander.jpg\",\"width\":1764,\"height\":1847},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/taming-the-gerrymander-with-geospatial-search\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Taming the Gerrymander with Geospatial Search\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/391cf559b28ca6b4c1660a1ce283752c\",\"name\":\"Peter Reale\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/ec988e11a3058e02331c83244e993ea2\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/19012c1e7433fcde0d634a14a0f76610c40ce876b6c5a04b23d43c2181301761?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/19012c1e7433fcde0d634a14a0f76610c40ce876b6c5a04b23d43c2181301761?s=96&d=mm&r=g\",\"caption\":\"Peter Reale\"},\"description\":\"Peter Reale is a Senior Solutions Engineer at Couchbase and has been in the data business since 1984. He is based in Los Angeles.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/ko\/author\/peter-reale\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Taming the Gerrymander with Geospatial Search - The Couchbase Blog","description":"Combining Couchbase geospatial search with N1QL queries will allow you to conquer complex geographical boundaries.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/ko\/taming-the-gerrymander-with-geospatial-search\/","og_locale":"ko_KR","og_type":"article","og_title":"Taming the Gerrymander with Geospatial Search","og_description":"Combining Couchbase geospatial search with N1QL queries will allow you to conquer complex geographical boundaries.","og_url":"https:\/\/www.couchbase.com\/blog\/ko\/taming-the-gerrymander-with-geospatial-search\/","og_site_name":"The Couchbase Blog","article_published_time":"2020-11-04T23:51:31+00:00","article_modified_time":"2024-03-01T17:18:35+00:00","og_image":[{"width":1200,"height":627,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/11\/Taming-the-Gerrymander-with-Geospatial-Search.png","type":"image\/png"}],"author":"Peter Reale","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Peter Reale","Est. reading time":"7\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/taming-the-gerrymander-with-geospatial-search\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/taming-the-gerrymander-with-geospatial-search\/"},"author":{"name":"Peter Reale","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/391cf559b28ca6b4c1660a1ce283752c"},"headline":"Taming the Gerrymander with Geospatial Search","datePublished":"2020-11-04T23:51:31+00:00","dateModified":"2024-03-01T17:18:35+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/taming-the-gerrymander-with-geospatial-search\/"},"wordCount":1342,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/taming-the-gerrymander-with-geospatial-search\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/Gerrymander.jpg","articleSection":["Full-Text Search","Geospatial","SQL++ \/ N1QL Query"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/taming-the-gerrymander-with-geospatial-search\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/taming-the-gerrymander-with-geospatial-search\/","url":"https:\/\/www.couchbase.com\/blog\/taming-the-gerrymander-with-geospatial-search\/","name":"Taming the Gerrymander with Geospatial Search - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/taming-the-gerrymander-with-geospatial-search\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/taming-the-gerrymander-with-geospatial-search\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/Gerrymander.jpg","datePublished":"2020-11-04T23:51:31+00:00","dateModified":"2024-03-01T17:18:35+00:00","description":"Combining Couchbase geospatial search with N1QL queries will allow you to conquer complex geographical boundaries.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/taming-the-gerrymander-with-geospatial-search\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/taming-the-gerrymander-with-geospatial-search\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/taming-the-gerrymander-with-geospatial-search\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/Gerrymander.jpg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/Gerrymander.jpg","width":1764,"height":1847},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/taming-the-gerrymander-with-geospatial-search\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Taming the Gerrymander with Geospatial Search"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ube14\ub85c\uadf8","description":"NoSQL \ub370\uc774\ud130\ubca0\uc774\uc2a4, Couchbase","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ube14\ub85c\uadf8","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/391cf559b28ca6b4c1660a1ce283752c","name":"\ud53c\ud130 \ub808\uc54c","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/ec988e11a3058e02331c83244e993ea2","url":"https:\/\/secure.gravatar.com\/avatar\/19012c1e7433fcde0d634a14a0f76610c40ce876b6c5a04b23d43c2181301761?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/19012c1e7433fcde0d634a14a0f76610c40ce876b6c5a04b23d43c2181301761?s=96&d=mm&r=g","caption":"Peter Reale"},"description":"Peter Reale is a Senior Solutions Engineer at Couchbase and has been in the data business since 1984. He is based in Los Angeles.","url":"https:\/\/www.couchbase.com\/blog\/ko\/author\/peter-reale\/"}]}},"authors":[{"term_id":9066,"user_id":41576,"is_guest":0,"slug":"peter-reale","display_name":"Peter Reale","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/19012c1e7433fcde0d634a14a0f76610c40ce876b6c5a04b23d43c2181301761?s=96&d=mm&r=g","author_category":"","last_name":"Reale, Senior Solutions Engineer, Couchbase","first_name":"Peter","job_title":"","user_url":"","description":"Peter Reale\uc740 1984\ub144\ubd80\ud130 \ub370\uc774\ud130 \ube44\uc988\ub2c8\uc2a4\uc5d0 \uc885\uc0ac\ud574 \uc628 Couchbase\uc758 \uc218\uc11d \uc194\ub8e8\uc158 \uc5d4\uc9c0\ub2c8\uc5b4\uc785\ub2c8\ub2e4.  \ud604\uc7ac \ub85c\uc2a4\uc564\uc824\ub808\uc2a4\uc5d0 \uac70\uc8fc\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/9628","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/users\/41576"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/comments?post=9628"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/9628\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media\/9633"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media?parent=9628"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=9628"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=9628"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=9628"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}