{"id":4446,"date":"2018-01-17T10:30:34","date_gmt":"2018-01-17T18:30:34","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=4446"},"modified":"2025-06-13T20:59:23","modified_gmt":"2025-06-14T03:59:23","slug":"full-text-search-couchbase-mobile-2-0","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/ko\/full-text-search-couchbase-mobile-2-0\/","title":{"rendered":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ubaa8\ubc14\uc77c 2.0\uc758 \uc804\uccb4 \ud14d\uc2a4\ud2b8 \uac80\uc0c9(FTS) \uc18c\uac1c"},"content":{"rendered":"<p>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ubaa8\ubc14\uc77c 2.0\uc740 JSON \ubb38\uc11c\uc5d0 \uac15\ub825\ud55c \uc804\uccb4 \ud14d\uc2a4\ud2b8 \uac80\uc0c9(FTS) \uae30\ub2a5\uc744 \ub3c4\uc785\ud569\ub2c8\ub2e4. \uc774\ub294 \ub2e4\uc74c\uc744 \uae30\ubc18\uc73c\ub85c \ud558\ub294 \uc0c8\ub85c\uc6b4 \ucffc\ub9ac \uc778\ud130\ud398\uc774\uc2a4\uc758 \uc77c\ubd80\uc785\ub2c8\ub2e4. <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/products\/n1ql\/\">N1QL<\/a>\ub294 JSON\uc6a9 SQL\uc744 \ud655\uc7a5\ud558\ub294 Couchbase\uc758 \uc120\uc5b8\uc801 \ucffc\ub9ac \uc5b8\uc5b4\uc785\ub2c8\ub2e4. SQL\uc5d0 \uc775\uc219\ud558\ub2e4\uba74 \uc0c8\ub85c\uc6b4 API\uc758 \uc758\ubbf8\ub97c \uc27d\uac8c \uc774\ud574\ud560 \uc218 \uc788\uc744 \uac83\uc785\ub2c8\ub2e4.<\/p>\n<p>\uc804\uccb4 \ud14d\uc2a4\ud2b8 \uac80\uc0c9\uc744 \uc0ac\uc6a9\ud558\uba74 \uc790\uc5f0\uc2a4\ub7ec\uc6b4 \uc5b8\uc5b4 \ucffc\ub9ac\uac00 \uac00\ub2a5\ud569\ub2c8\ub2e4. \uc774 \uae00\uc740 Couchbase Lite\uc758 \ucffc\ub9ac \uc778\ud130\ud398\uc774\uc2a4\uc5d0 \ub300\ud574 \uc124\uba85\ud558\ub294 \uc2dc\ub9ac\uc988 \uae00 \uc911 \uc138 \ubc88\uc9f8 \uae00\uc785\ub2c8\ub2e4. \uc774 \ube14\ub85c\uadf8\uc5d0\uc11c\ub294 \uae30\ubcf8 \uc0ac\ud56d\uc744 \uc798 \uc54c\uace0 \uc788\ub2e4\uace0 \uac00\uc815\ud558\ubbc0\ub85c, \uc544\uc9c1 \uae30\ubcf8 \uc0ac\ud56d\uc744 \uc219\uc9c0\ud558\uc9c0 \uc54a\uc740 \uacbd\uc6b0 <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/sql-for-json-query-interface-couchbase-mobile\/\">\uc774\uc804 \uac8c\uc2dc\ubb3c<\/a> \ub97c \uba3c\uc800 \uc77d\uc5b4 \ubcf4\uc138\uc694. \uad00\uc2ec\uc774 \uc788\uc73c\uc2dc\ub2e4\uba74 \uc774 \uae00\uc758 \ub05d\uc5d0 \ucffc\ub9ac \uc778\ud130\ud398\uc774\uc2a4\uc758 \ub2e4\ub978 \uae30\ub2a5\uc5d0 \ub300\ud574 \uc124\uba85\ud558\ub294 \ube14\ub85c\uadf8 \ub9c1\ud06c\uac00 \uc81c\uacf5\ub429\ub2c8\ub2e4.<\/p>\n<p>\ub2e4\uc74c\uc5d0\uc11c \ucd5c\uc2e0 Couchbase Mobile 2.0 \uc2dc\ud5d8\ubc84\uc804\uc744 \ub2e4\uc6b4\ub85c\ub4dc\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/downloads\/\">\uc5ec\uae30<\/a>.<\/p>\n<p><!--more--><\/p>\n<h3 id=\"background\">\ubc30\uacbd<\/h3>\n<p>1.x \ubc84\uc804\uc758 Couchbase Mobile\uc744 \uc0ac\uc6a9 \uc911\uc774\ub77c\uba74 \ub2e4\uc74c\uacfc \uac19\uc740 \ub0b4\uc6a9\uc744 \uc798 \uc54c\uace0 \uacc4\uc2e4 \uac83\uc785\ub2c8\ub2e4. <a href=\"https:\/\/developer.couchbase.com\/documentation\/mobile\/1.4\/training\/develop\/using-the-database\/index.html#query-documents\">\ub9f5 \ubcf4\uae30<\/a> \ub97c \uc0ac\uc6a9\ud558\uc5ec \uc778\ub371\uc2a4\uc640 \ucffc\ub9ac\ub97c \ub9cc\ub4e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4. 2.0\uc5d0\uc11c\ub294 \ub354 \uc774\uc0c1 \ubdf0\uc640 \ub9f5 \ud568\uc218\ub97c \ub9cc\ub4e4 \ud544\uc694\uac00 \uc5c6\uc2b5\ub2c8\ub2e4! \ub300\uc2e0, \uac04\ub2e8\ud55c \uc778\ud130\ud398\uc774\uc2a4\ub97c \ud1b5\ud574 \uc778\ub371\uc2a4\ub97c \uc0dd\uc131\ud558\uace0 \ucffc\ub9ac \ube4c\ub354 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc0ac\uc6a9\ud574 \ucffc\ub9ac\ub97c \uad6c\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc0c8\ub85c\uc6b4 \ucffc\ub9ac \uc778\ud130\ud398\uc774\uc2a4\ub294 \uc0ac\uc6a9\ud558\uae30 \ub354 \uac04\ub2e8\ud558\uace0 \ud6e8\uc52c \ub354 \uac15\ub825\ud569\ub2c8\ub2e4. \uc774 \uae00\uc5d0\uc11c \uba87 \uac00\uc9c0 \uae30\ub2a5\uc744 \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<h3 id=\"sampleproject\">\uc0d8\ud50c \ud504\ub85c\uc81d\ud2b8<\/h3>\n<p>\uc5ec\uae30\uc11c \uc124\uba85\ud558\ub294 \uc608\uc81c\uc5d0\uc11c\ub294 iOS\uc6a9 Swift\ub97c \uc0ac\uc6a9\ud558\uc9c0\ub9cc, \uba87 \uac00\uc9c0 \uc0ac\uc18c\ud55c \ucc28\uc774\uc810\uc744 \uc81c\uc678\ud558\uba74 \ub3d9\uc77c\ud55c \ucffc\ub9ac \uc778\ud130\ud398\uc774\uc2a4\uac00 Android \ubc0f Windows \ud50c\ub7ab\ud3fc\uc5d0\uc11c\ub3c4 \uc9c0\uc6d0\ub41c\ub2e4\ub294 \uc810\uc5d0 \uc720\uc758\ud558\uc138\uc694.<\/p>\n<p><strong>\ub530\ub77c\uc11c \uc57d\uac04\uc758 \uc218\uc815\ub9cc \ud558\uba74 \ub2e4\ub978 \ud50c\ub7ab\ud3fc\uc5d0\uc11c \uc791\uc5c5\ud560 \ub54c \uc774 \uae00\uc758 \ucffc\ub9ac \uc608\uc81c\ub97c \uc7ac\uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/strong><\/p>\n<p>\uc0d8\ud50c Swift \ud504\ub85c\uc81d\ud2b8\uc5d0 \uad00\uc2ec\uc774 \uc788\ub2e4\uba74 \uc544\ub798 \uc9c0\uce68\uc744 \ub530\ub974\uc138\uc694.<\/p>\n<ul>\n<li>GitHub\uc5d0\uc11c iOS Swift \ud50c\ub808\uc774\uadf8\ub77c\uc6b4\ub4dc \ubcf5\uc81c\ud558\uae30\n<pre><code class=\"bash\">$ git clone https:\/\/github.com\/couchbaselabs\/couchbase-lite-ios-api-playground<\/code><\/pre>\n<\/li>\n<li>\ud574\ub2f9 \ud56d\ubaa9\uc758 \uc124\uce58 \uc9c0\uce68\uc744 \ub530\ub974\uc138\uc694. <a href=\"https:\/\/github.com\/couchbaselabs\/couchbase-lite-ios-api-playground\/blob\/master\/README.md\">README<\/a> \ud30c\uc77c\uc744 \uc0ac\uc6a9\ud558\uc5ec \ud50c\ub808\uc774\uadf8\ub77c\uc6b4\ub4dc\ub97c \ube4c\ub4dc\ud558\uace0 \uc2e4\ud589\ud569\ub2c8\ub2e4.<\/li>\n<\/ul>\n<h3 id=\"sampledatamodel\">\uc0d8\ud50c \ub370\uc774\ud130 \ubaa8\ub378<\/h3>\n<p>\ub2f9\uc0ac\ub294 \ub2e4\uc74c \uc704\uce58\uc758 \uc5ec\ud589 \uc0d8\ud50c \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. <a href=\"https:\/\/github.com\/couchbaselabs\/couchbase-lite-ios-api-playground\/tree\/master\/travel-sample.cblite2\">\uc5ec\uae30<\/a>. \uc774 \uc0ac\uc804 \uad6c\ucd95\ub41c \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \ubaa8\ubc14\uc77c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0 \uc784\ubca0\ub4dc\ud558\uc5ec \ucffc\ub9ac\uc5d0 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc0d8\ud50c \ub370\uc774\ud130 \uc138\ud2b8\uc5d0\ub294 \ub2e4\uc74c\uacfc \uac19\uc774 \uc5ec\ub7ec \uc720\ud615\uc758 \ubb38\uc11c\uac00 \ud3ec\ud568\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. <code>\uc720\ud615<\/code> \uc18d\uc131\uc744 \ucd94\uac00\ud569\ub2c8\ub2e4. \ub2e4\uc74c\uacfc \uac19\uc740 \ubb38\uc11c\uc5d0 \ucd08\uc810\uc744 \ub9de\ucd9c \uac83\uc785\ub2c8\ub2e4. <code>\uc720\ud615<\/code> <em>\"\ub79c\ub4dc\ub9c8\ud06c\"<\/em> . JSON \ubb38\uc11c \ubaa8\ub378\uc740 \uc544\ub798\uc640 \uac19\uc2b5\ub2c8\ub2e4. \uac04\uacb0\uc131\uc744 \uc704\ud574 \uc544\ub798 \ubaa8\ub378\uc5d0\uc11c \uc774 \uac8c\uc2dc\ubb3c\uacfc \uad00\ub828\uc774 \uc5c6\ub294 \uc77c\ubd80 \uc18d\uc131\uc740 \uc0dd\ub7b5\ud588\uc2b5\ub2c8\ub2e4.<\/p>\n<pre><code class=\"json\"> {\r\n        \"activity\": \"see\",\r\n        \"address\": \"84 rue Claude Monet\",\r\n        \"alt\": \"Fondation Claude Monet\",\r\n        \"city\": \"Giverny\",\r\n        \"content\": \"the house is quietly eccentric and highly interesting in an Orient-influenced style, and includes Monet's collection of [https:\/\/www.intermonet.com\/japan\/ Japanese prints]. There are no original Monet paintings on the site - the real drawcard, is the gardens around the house ...\",\r\n        \"country\": \"France\",\r\n        \"directions\": null,\r\n        \"email\": null,\r\n        \"geo\": {\r\n            \"accuracy\": \"ROOFTOP\",\r\n            \"lat\": 49.0753489,\r\n            \"lon\": 1.5337884\r\n        },\r\n        \"hours\": \"open April-October Mo-Su 9:30-18:00\",\r\n        \"id\": 10061,\r\n        \"image\": null,\r\n        \"name\": \"Monet's House\",\r\n        \"phone\": \"+33 232512821\",\r\n        \"price\": \"\u20ac9, $5 students, \u20ac4 4.00 disabled, under-7s free\",\r\n        \"state\": \"Haute-Normandie\",\r\n        \"title\": \"Giverny\",\r\n        \"tollfree\": null,\r\n        \"type\": \"landmark\",\r\n        \"url\": \"https:\/\/www.fondation-monet.com\/\"\r\n}<\/code><\/pre>\n<p>** \uc544\ub798\uc758 \uac01 \ucffc\ub9ac \uc608\uc81c\ub294 \uc704\uc758 \ubaa8\ub378\uc744 \ucc38\uc870\ud558\uc138\uc694. **<\/p>\n<h3 id=\"thedatabasehandle\">\ub370\uc774\ud130\ubca0\uc774\uc2a4 \ud578\ub4e4<\/h3>\n<p>\uc544\ub798 \ucffc\ub9ac\uc5d0\uc11c\ub294 \ub2e4\uc74c\uacfc \uac19\uc774 <a href=\"https:\/\/developer.couchbase.com\/documentation\/mobile\/2.0\/guides\/couchbase-lite\/native-api\/database\/index.html\"><code>\ub370\uc774\ud130\ubca0\uc774\uc2a4<\/code><\/a> API\ub97c \uc0ac\uc6a9\ud558\uc5ec CouchbaseLite \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \uc5f4\uac70\ub098 \uc0dd\uc131\ud569\ub2c8\ub2e4.<\/p>\n<pre><code class=\"swift\">  var options =  DatabaseConfiguration()\r\n  let db = try Database(name: kDBName, config: options)<\/code><\/pre>\n<h3 id=\"thebasics\">\uae30\ubcf8 \uc0ac\ud56d<\/h3>\n<p>\uc804\uccb4 \ud14d\uc2a4\ud2b8 \uac80\uc0c9\uc744 \ud1b5\ud574 \uc790\uc5f0\uc2a4\ub7ec\uc6b4 \uc5b8\uc5b4 \ucffc\ub9ac\uac00 \uac00\ub2a5\ud569\ub2c8\ub2e4. \uc800\ud76c\uc758 \uac8c\uc2dc\ubb3c\uc5d0\uc11c <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/sql-for-json-query-interface-couchbase-mobile\/\">\ucffc\ub9ac \uae30\ubcf8 \uc0ac\ud56d<\/a>\uc5d0 \ub300\ud574 \ub17c\uc758\ud588\uc2b5\ub2c8\ub2e4. <em>\uac19\uc740<\/em> \uadf8\ub9ac\uace0 <em>\uc815\uaddc\uc2dd<\/em> \ud45c\ud604\uc2dd\uc744 \uc0ac\uc6a9\ud558\uc5ec \ud328\ud134 \uc77c\uce58 \uc791\uc5c5\uc744 \uc218\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. FTS\ub294 \ub2e4\uc74c\uc744 \uc9c0\uc6d0\ud558\uc5ec \ud574\ub2f9 \uae30\ub2a5\uc744 \ub300\uccb4\ud569\ub2c8\ub2e4. <em>\uc2a4\ud15c\ubc0d<\/em>, <em>\uad00\ub828\uc131 \uae30\ubc18 \uc21c\uc704 <\/em>\uadf8\ub9ac\uace0 <em>\ub85c\uce98\ubcc4 \uc790\uc5f0\uc5b4 \ucffc\ub9ac<\/em>.<\/p>\n<p>\uc804\uccb4 \ud14d\uc2a4\ud2b8 \uac80\uc0c9\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4. <strong>\ub300\uc18c\ubb38\uc790 \uad6c\ubd84 \uc5c6\uc74c<\/strong> \ub97c \uc0ac\uc6a9\ud558\uc5ec <code>\uc77c\uce58<\/code> \ucffc\ub9ac \ud45c\ud604\uc2dd\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4. FTS\ub97c \uc218\ud589\ud558\ub824\uba74 \ub2e4\uc74c\uc744 \ub9cc\ub4e4\uc5b4\uc57c \ud569\ub2c8\ub2e4. <em>\uc804\uccb4 \ud14d\uc2a4\ud2b8 \uc0c9\uc778<\/em> \ub97c \uc801\uc808\ud55c \uc18d\uc131\uc5d0 \ucd94\uac00\ud569\ub2c8\ub2e4. \ud558\ub098 \uc774\uc0c1\uc758 \uc18d\uc131\uc5d0 \uc778\ub371\uc2a4\ub97c \ub9cc\ub4e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h3 id=\"stemming\">\uc2a4\ud15c\ubc0d<\/h3>\n<p>\uc608\uc81c\ub97c \uc9c4\ud589\ud558\uae30 \uc804\uc5d0 \uba3c\uc800 \uc5b4\uac04 \ucd95\uc57d\uc5d0 \ub300\ud574 \ud55c \ub9c8\ub514 \ud558\uaca0\uc2b5\ub2c8\ub2e4. \uc5b4\uac04\ud654\ub780 \ub2e8\uc5b4\ub97c \uc5b4\uadfc \uc5b4\uac04\uc73c\ub85c \ucd95\uc18c\ud558\ub294 \uacfc\uc815\uc744 \ub9d0\ud569\ub2c8\ub2e4. \ub530\ub77c\uc11c <a href=\"https:\/\/en.wikipedia.org\/wiki\/Stemming\">\uc778\uc2a4\ud134\uc2a4<\/a>, \"catty\", \"catlike\", \"cats\"\ub294 \"\uace0\uc591\uc774\"\ub77c\ub294 \ub2e8\uc5b4\ub85c \ucd95\uc18c\ub429\ub2c8\ub2e4. \ub530\ub77c\uc11c '\uace0\uc591\uc774'\ub77c\ub294 \uc6a9\uc5b4\ub97c \uac80\uc0c9\ud558\uba74 '\uace0\uc591\uc774', '\uace0\uc591\uc774 \uac19\uc740' \ub4f1\uacfc \uc77c\uce58\ud558\ub294 \uacb0\uacfc\ub97c \uc5bb\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ub77c\uc774\ud2b8\ub294 \ud604\uc7ac \ub2e4\uc74c \uc5b8\uc5b4\uc758 \uc2a4\ud15c\ubc0d\uc744 \uc9c0\uc6d0\ud569\ub2c8\ub2e4.<br \/>\n* \ub374\ub9c8\ud06c\uc5b4<br \/>\n* \ub124\ub35c\ub780\ub4dc\uc5b4<br \/>\n* \uc601\uc5b4<br \/>\n* \ud540\ub780\ub4dc\uc5b4<br \/>\n* \ud504\ub791\uc2a4\uc5b4<br \/>\n* \ub3c5\uc77c\uc5b4<br \/>\n* \ud5dd\uac00\ub9ac\uc5b4<br \/>\n* \uc774\ud0c8\ub9ac\uc544\uc5b4<br \/>\n* \ub178\ub974\uc6e8\uc774\uc5b4<br \/>\n* \ud3ec\ub974\ud22c\uac08\uc5b4<br \/>\n* \ub85c\ub9c8\uc790<br \/>\n* \ub7ec\uc2dc\uc544\uc5b4<br \/>\n* \uc2a4\ud398\uc778\uc5b4<br \/>\n* \uc2a4\uc6e8\ub374\uc5b4<br \/>\n* \ud130\ud0a4\uc5b4<\/p>\n<p>\ud2b9\uc815 \uc5b8\uc5b4\uac00 \uc0ac\uc6a9\ub418\uc9c0 \uc54a\ub294 \uacbd\uc6b0\uc5d0\ub3c4 \ud1a0\ud070\ud654 \ub3c4\uad6c\ub294 \ud14d\uc2a4\ud2b8\ub97c \uc720\ub2c8\ucf54\ub4dc \uacf5\ubc31 \ubb38\uc790\ub85c \ub2e8\uc5b4\ub85c \ubd84\ud560\ud569\ub2c8\ub2e4. \ub530\ub77c\uc11c \ub2e8\uc5b4 \uc0ac\uc774\uc5d0 \uacf5\ubc31\uc744 \ub123\ub294 \ubaa8\ub4e0 \uc5b8\uc5b4\uc5d0\uc11c \uc798 \uc791\ub3d9\ud558\uc9c0\ub9cc \ub35c \uc798 \uc791\ub3d9\ud569\ub2c8\ub2e4.<\/p>\n<h3 id=\"fulltextindex\">\uc804\uccb4 \ud14d\uc2a4\ud2b8 \uc0c9\uc778<\/h3>\n<p>\uadf8\ub9ac\uace0 <code>\uc774\ub984<\/code> \ub97c \uc0dd\uc131\ud560 \ub54c \uc778\ub371\uc2a4\uc640 \uc5f0\uad00\ub41c \uc774\ub984\uc744 \uc9c0\uc815\ud558\ub294 \uac83\uc774 \uc911\uc694\ud569\ub2c8\ub2e4. \ub098\uc911\uc5d0 \ubcf4\uac8c \ub420 \ucffc\ub9ac \uc608\uc81c\uc5d0\uc11c\ub294 \uc774\ub984\uc744 \ud1b5\ud574 \uc801\uc808\ud55c \uc778\ub371\uc2a4\ub97c \ucc38\uc870\ud569\ub2c8\ub2e4.<\/p>\n<h4 id=\"singlepropertyindex\">\ub2e8\uc77c \uc18d\uc131 \uc0c9\uc778<\/h4>\n<p>\ub2e4\uc74c \uc608\uc81c\uc5d0\uc11c\ub294 <code>\uc804\uccb4 \ud14d\uc2a4\ud2b8 \uc778\ub371\uc2a4<\/code> \uc5d0\uc11c <em>\"content\"<\/em> \uc18d\uc131\uc758 <code>\ubb38\uc11c<\/code>. \uc2a4\ud15c\ubc0d\uc740 \uae30\ubcf8\uc801\uc73c\ub85c \ud65c\uc131\ud654\ub418\uc5b4 \uc788\uc73c\uba70 \ub85c\uce98\uc740 \ub514\ubc14\uc774\uc2a4\uc758 \ub85c\uce98\ub85c \uac00\uc815\ud569\ub2c8\ub2e4. \uc544\ub798\uc5d0\ub294 \ud45c\uc2dc\ub418\uc9c0 \uc54a\uc558\uc9c0\ub9cc, '\uc545\uc13c\ud2b8'\ub97c \ubb34\uc2dc\ud560\uc9c0 \uc5ec\ubd80\ub97c \uc9c0\uc815\ud558\ub294 \uc635\uc158\ub3c4 \uc788\uc2b5\ub2c8\ub2e4. <code>\ubb34\uc2dc \uc545\uc13c\ud2b8<\/code> \uc635\uc158\uc744 \uc124\uc815\ud569\ub2c8\ub2e4. \uae30\ubcf8\uc801\uc73c\ub85c \uc545\uc13c\ud2b8\ub294 \ubb34\uc2dc\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"wrap:true lang:swift decode:true\"> let ftsIndex = IndexBuilder.fullTextIndex(items: FullTextIndexItem.property(\"content\"))\r\n try db.createIndex(ftsIndex,withName: \"ContentFTSIndex\")<\/pre>\n<h4 id=\"multiplespropertyindex\">\ub2e4\uc911 \uc18d\uc131 \uc0c9\uc778<\/h4>\n<p>\ub2e4\uc74c \uc608\uc81c\uc5d0\uc11c\ub294 <code>\uc804\uccb4 \ud14d\uc2a4\ud2b8 \uc778\ub371\uc2a4<\/code> on <em>\"content\"<\/em> \uadf8\ub9ac\uace0 <em>\"name\"<\/em> \uc18d\uc131\uc758 <code>\ubb38\uc11c<\/code><\/p>\n<pre class=\"wrap:true lang:swift decode:true\">  let ftsIndex = IndexBuilder.fullTextIndex(items: FullTextIndexItem.property(\"content\"),FullTextIndexItem.property(\"name\"))\r\n  try db.createIndex(ftsIndex,withName: \"ContentAndNameFTSIndex\")<\/pre>\n<h4 id=\"indexwithoutstemming\">\uc904\uc784\ub9d0 \uc5c6\uc774 \uc0c9\uc778 \uc0dd\uc131<\/h4>\n<p>\ub2e4\uc74c \uc608\uc81c\uc5d0\uc11c\ub294 <code>\uc804\uccb4 \ud14d\uc2a4\ud2b8 \uc778\ub371\uc2a4<\/code> \uc5d0\uc11c <em>\"content\"<\/em> \uc18d\uc131\uc758 <code>\ubb38\uc11c<\/code> \ub97c \ube44\ud65c\uc131\ud654\ud55c \uc0c1\ud0dc\uc785\ub2c8\ub2e4. \uae30\ubcf8\uc801\uc73c\ub85c \ud604\uc7ac \ub514\ubc14\uc774\uc2a4 \uc5b8\uc5b4 \uc124\uc815\uc744 \uc0ac\uc6a9\ud558\uc5ec \ud615\ud0dc\uc18c \ubd84\uc11d\uc774 \ud65c\uc131\ud654\ub429\ub2c8\ub2e4. \uc5b8\uc5b4\ub97c nil\ub85c \uc124\uc815\ud558\uba74 \ud615\ud0dc\uc18c \ubd84\uc11d\uc774 \ube44\ud65c\uc131\ud654\ub429\ub2c8\ub2e4.<\/p>\n<pre class=\"wrap:true lang:swift decode:true\">  let ftsIndex = IndexBuilder.fullTextIndex(items: FullTextIndexItem.property(\"content\")).language(nil)\r\n  try db.createIndex(ftsIndex,withName: \"ContentFTSIndexNoStemming\")<\/pre>\n<h3 id=\"ftssearchwithstemming\">\uc2a4\ud15c\ubc0d\uc744 \uc0ac\uc6a9\ud55c FTS \uac80\uc0c9<\/h3>\n<p>\uc544\ub798 \ucffc\ub9ac\ub294 <em>id<\/em> \uadf8\ub9ac\uace0 <em>\ucf58\ud150\uce20<\/em> \uc18d\uc131\uc758 <em>\"\ub79c\ub4dc\ub9c8\ud06c\"<\/em> <code>\uc720\ud615<\/code> \uc6a9\uc5b4\uac00 \ud3ec\ud568\ub41c \ubb38\uc11c <em>\"\uae30\uacc4\"<\/em> \uc5d0\uc11c <em>\"content\"<\/em> \uc18d\uc131\uc785\ub2c8\ub2e4. \uc6b0\ub9ac\ub294 <em>\"ContentFTSIndex\"<\/em> \ub97c \ub9cc\ub4e4\uc5c8\uc2b5\ub2c8\ub2e4.<\/p>\n<h4 id=\"request\">\uc694\uccad<\/h4>\n<pre class=\"wrap:true lang:swift decode:true\"> let ftsExpression = FullTextExpression.index(\"ContentFTSIndex\")\r\n let searchQuery = QueryBuilder\r\n        .select(SelectResult.expression(Meta.id),\r\n                SelectResult.expression(Expression.property(\"content\")))\r\n        .from(DataSource.database(db))\r\n        .where(\r\nExpression.property(\"type\").equalTo(Expression.string (\"landmark\"))\r\n            .and( ftsExpression.match(\"Mechanical\")))\r\n        .limit(Expression.int(limit))<\/pre>\n<h4 id=\"sampleresponse\">\uc0d8\ud50c \uc751\ub2f5<\/h4>\n<p>\uc704\uc758 \ucffc\ub9ac\uc5d0 \ub300\ud55c \uc751\ub2f5\uc5d0\ub294 \"\uae30\uacc4\", \"\uba54\ucee4\ub2c8\uc998\", \"\uba54\ucee4\ub2c8\uc998\", \"\uae30\uacc4\uacf5\" \ub4f1\uc758 \uc6a9\uc5b4\uac00 \ud3ec\ud568\ub41c \ubb38\uc11c\uac00 \ud3ec\ud568\ub429\ub2c8\ub2e4.<\/p>\n<pre><code class=\"json\">[\r\n  {\r\n    \"id\": \"landmark_21703\",\r\n    \"content\": \"The Swiss luxury watch manufacturer, founded in 1851, is known for precise mechanics.\"\r\n  },\r\n  {\r\n    \"id\": \"landmark_2592\",\r\n    \"content\": \"Here you can see the mechanisms that drive San Francisco's famed cable cars, as well as plenty of cable car memorabilia and information on the history of the cable cars.\"\r\n  },\r\n  {\r\n    \"id\": \"landmark_26144\",\r\n    \"content\": \"This scenic section of the Golden Gate National Recreation Area is a favorite for hikers, bikers and beach-goers, with rugged coastal highlands and deep sand dunes. Hang gliding is quite popular here, with several shops for hang gliders in the area. Nearby is the remnants of Battery Davis, a WWII-era military defense mechanism.\"\r\n  },\r\n  {\r\n    \"id\": \"landmark_33234\",\r\n    \"content\": \"Western-style steakhouse features a huge, \u2018country\u2019 bar and even a mechanical bull for those ready for a faux bull-riding adventure. The menu is vast and surprisingly inexpensive. And again, the saloon is a longtime trendy destination along the Sunset Strip for raucous good times.\"\r\n  }\r\n]\r\n<\/code><\/pre>\n<h3 id=\"ftssearchwithoutstemming\">FTS \uac80\uc0c9 <em>\uc5c6\uc774<\/em> \uc2a4\ud15c\ubc0d<\/h3>\n<p>\uc544\ub798 \ucffc\ub9ac\ub294 <em>id<\/em> \uadf8\ub9ac\uace0 <em>\ucf58\ud150\uce20<\/em> \uc18d\uc131\uc758 <em>\"\ub79c\ub4dc\ub9c8\ud06c\"<\/em> <code>\uc720\ud615<\/code> \uc815\ud655\ud55c \uc6a9\uc5b4\uac00 \ud3ec\ud568\ub41c \ubb38\uc11c <em>\"\uae30\uacc4\"<\/em> \uc5d0\uc11c <em>\"content\"<\/em> \uc18d\uc131\uc785\ub2c8\ub2e4. \uc6b0\ub9ac\ub294 <em>\"ContentFTSIndexNoStemming\"<\/em> \ub97c \uc0dd\uc131\ud558\uc5ec \uc2a4\ud15c\ubc0d\uc744 \ube44\ud65c\uc131\ud654\ud558\ub294 \uc635\uc158\uc744 \uc9c0\uc815\ud588\uc2b5\ub2c8\ub2e4.<\/p>\n<h4 id=\"request\">\uc694\uccad<\/h4>\n<pre class=\"wrap:true lang:swift decode:true\">  let ftsExpression = FullTextExpression.index(\"ContentFTSIndexNoStemming\")\r\n  let searchQuery = QueryBuilder\r\n        .select(SelectResult.expression(Meta.id),\r\n                SelectResult.expression(Expression.property(\"content\")))\r\n        .from(DataSource.database(db))\r\n .where(Expression.property(\"type\").equalTo(Expression.string (\"landmark\"))\r\n            .and( ftsExpression.match(\"Mechanical\")))\r\n        .limit(Expression.int(limit))\r\n<\/pre>\n<h4 id=\"sampleresponse\">\uc0d8\ud50c \uc751\ub2f5<\/h4>\n<p>\uc704\uc758 \ucffc\ub9ac\uc5d0 \ub300\ud55c \uc751\ub2f5\uc5d0\ub294 \"\uae30\uacc4\uc801\"\uc774\ub77c\ub294 \uc6a9\uc5b4\uac00 \uc815\ud655\ud788 \ud3ec\ud568\ub41c \ubb38\uc11c\uac00 \ud3ec\ud568\ub429\ub2c8\ub2e4. \ubaa8\ub4e0 \uac80\uc0c9\uc740 \ub300\uc18c\ubb38\uc790\ub97c \uad6c\ubd84\ud558\uc9c0 \uc54a\ub294\ub2e4\ub294 \uc810\uc5d0 \ub2e4\uc2dc \ud55c \ubc88 \uc720\uc758\ud558\uc138\uc694.<\/p>\n<pre><code class=\"json\">[\r\n  {\r\n    \"id\": \"landmark_33234\",\r\n    \"content\": \"Western-style steakhouse features a huge, \u2018country\u2019 bar and even a mechanical bull for those ready for a faux bull-riding adventure. The menu is vast and surprisingly inexpensive. And again, the saloon is a longtime trendy destination along the Sunset Strip for raucous good times.\"\r\n  }\r\n]\r\n<\/code><\/pre>\n<h3 id=\"ftssearchonmultipleproperties\">\uc5ec\ub7ec \uc18d\uc131\uc5d0\uc11c FTS \uac80\uc0c9<\/h3>\n<p>\uc544\ub798 \ucffc\ub9ac\ub294 <em>id<\/em> , <em>\uc774\ub984<\/em> \uadf8\ub9ac\uace0 <em>\ucf58\ud150\uce20<\/em> \uc18d\uc131\uc758 <em>\"\ub79c\ub4dc\ub9c8\ud06c\"<\/em> <code>\uc720\ud615<\/code> \uc6a9\uc5b4\uac00 \ud3ec\ud568\ub41c \ubb38\uc11c <em>\"\uae30\uacc4\"<\/em> \uc911 \ud558\ub098\uc5d0\uc11c <em>\"name\"<\/em> \ub610\ub294 <em>\"content\"<\/em> \uc18d\uc131\uc785\ub2c8\ub2e4. \uc6b0\ub9ac\ub294 <em>\"ContentAndNameFTSIndex\"<\/em> \ub97c \uc0dd\uc131\ud588\uc2b5\ub2c8\ub2e4. \uc774 \uc778\ub371\uc2a4\ub97c \uc0ac\uc6a9\ud558\uba74 <em>\"name\"<\/em> \uadf8\ub9ac\uace0 <em>\"content\"<\/em> \uc18d\uc131<\/p>\n<h4 id=\"request\">\uc694\uccad<\/h4>\n<pre class=\"wrap:true lang:swift decode:true\"> let ftsExpression = FullTextExpression.index(\"ContentAndNameFTSIndex\")\r\n let searchQuery = QueryBuilder\r\n        .select(SelectResult.expression(Meta.id),\r\n                SelectResult.expression(Expression.property(\"name\")),\r\n                SelectResult.expression(Expression.property(\"content\")))\r\n        .from(DataSource.database(db))\r\n .where(Expression.property(\"type\").equalTo(Expression.string (\"landmark\"))\r\n            .and( ftsExpression.match(\"Mechanical\")))\r\n        .limit(Expression.int(limit))<\/pre>\n<h4 id=\"sampleresponse\">\uc0d8\ud50c \uc751\ub2f5<\/h4>\n<p>\uc704 \ucffc\ub9ac\uc5d0 \ub300\ud55c \uc751\ub2f5\uc5d0\ub294 '\uc774\ub984' \ub610\ub294 '\ucf58\ud150\uce20' \uc18d\uc131 \uc911 \ud558\ub098\uc5d0 '\uae30\uacc4\uc801'(\ub610\ub294 \uc5b4\uac04\uc744 \ud1b5\ud574 \ud30c\uc0dd\ub41c \ubcc0\ud615)\uc774\ub77c\ub294 \uc6a9\uc5b4\uac00 \ud3ec\ud568\ub41c \ubb38\uc11c\uac00 \ud3ec\ud568\ub429\ub2c8\ub2e4.<\/p>\n<pre><code class=\"json\">[\r\n  {\r\n    \"id\": \"landmark_10062\",\r\n    \"name\": \"Natural Mechanical Museum\",\r\n    \"content\": \"Founded by the Guillemard brothers: Jean-pierre, Ren\u00e9 and G\u00e9rard currently run restorations and exhibitions with the help of an enthusiasts team who devoted their time and known-how to the Patrimony preservation. The museum origin is a private collection of steam internal combustion engines; founded in 1955 by the Guillemard family a GIVERNY residents since generations.\"\r\n  },\r\n  {\r\n    \"id\": \"landmark_21703\",\r\n    \"name\": \"Patek Philippe Salons\",\r\n    \"content\": \"The Swiss luxury watch manufacturer, founded in 1851, is known for precise mechanics.\"\r\n  },\r\n  {\r\n    \"id\": \"landmark_25929\",\r\n    \"name\": \"Cable Car Museum\",\r\n    \"content\": \"Here you can see the mechanisms that drive San Francisco's famed cable cars, as well as plenty of cable car memorabilia and information on the history of the cable cars\"\r\n  },\r\n  {\r\n    \"id\": \"landmark_26144\",\r\n    \"name\": \"Fort Funston\",\r\n    \"content\": \"This scenic section of the Golden Gate National Recreation Area is a favorite for hikers, bikers and beach-goers, with rugged coastal highlands and deep sand dunes. Hang gliding is quite popular here, with several shops for hang gliders in the area. Nearby is the remnants of Battery Davis, a WWII-era military defense mechanism\"\r\n  }\r\n]\r\n<\/code><\/pre>\n<h3 id=\"ftssearchwithlogicalexpressions\">\ub17c\ub9ac \ud45c\ud604\uc2dd\uc744 \uc0ac\uc6a9\ud55c FTS \uac80\uc0c9<\/h3>\n<p>\uc55e\uc758 \uc608\uc81c\uc5d0\uc11c\ub294 \ud615\ud0dc\uc18c \ubd84\uc11d\uc744 \ube44\ud65c\uc131\ud654\ud558\uba74 \uc815\ud655\ud55c \uac80\uc0c9 \ubb38\uc790\uc5f4\uc744 \ucc3e\uc744 \uc218 \uc788\ub2e4\ub294 \uac83\uc744 \ubcf4\uc558\uc2b5\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \ub450 \uac1c \uc774\uc0c1\uc758 \uac80\uc0c9\uc5b4\ub97c \ucc3e\uace0 \uc2f6\ub2e4\uba74 \uc5b4\ub5bb\uac8c \ud574\uc57c \ud560\uae4c\uc694? \uac80\uc0c9\uc5b4 <code>\uc77c\uce58<\/code> \ucffc\ub9ac \ud45c\ud604\uc2dd\uc740 AND \ubc0f OR\uc744 \ud3ec\ud568\ud55c \ub17c\ub9ac \ud45c\ud604\uc2dd\uc744 \ud5c8\uc6a9\ud569\ub2c8\ub2e4.<\/p>\n<p>\uc544\ub798 \ucffc\ub9ac\ub294 <em>id<\/em> \ubc0f <em>\ucf58\ud150\uce20<\/em> \uc18d\uc131\uc758 <em>\"\ub79c\ub4dc\ub9c8\ud06c\"<\/em> <code>\uc720\ud615<\/code> \uc6a9\uc5b4\uac00 \ud3ec\ud568\ub41c \ubb38\uc11c <em>\"\uae30\uacc4\"<\/em> \ub610\ub294 <em>\"\uba54\ucee4\ub2c8\uc998\"<\/em> \uc5d0\uc11c <em>\"content\"<\/em> \uc18d\uc131\uc785\ub2c8\ub2e4. \uc6b0\ub9ac\ub294 <em>\"ContentFTSIndexNoStemming\"<\/em> \ub97c \uc0ac\uc6a9\ud558\uc5ec \uc2a4\ud15c\ubc0d\uc744 \ube44\ud65c\uc131\ud654\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h4 id=\"request\">\uc694\uccad<\/h4>\n<pre class=\"wrap:true lang:swift decode:true\">let ftsExpression = FullTextExpression.index(\"ContentFTSIndexNoStemming\")\r\nlet searchQuery = QueryBuilder\r\n        .select(SelectResult.expression(Meta.id),\r\n                SelectResult.expression(Expression.property(\"content\")))\r\n        .from(DataSource.database(db))\r\n .where(Expression.property(\"type\").equalTo(Expression.string (\"landmark\"))\r\n            .and( ftsExpression.match(\"Mechanical OR Mechanism\")))\r\n        .limit(Expression.int(limit))<\/pre>\n<h4 id=\"sampleresponse\">\uc0d8\ud50c \uc751\ub2f5<\/h4>\n<p>\uc704\uc758 \ucffc\ub9ac\uc5d0 \ub300\ud55c \uc751\ub2f5\uc5d0\ub294 '\ucf58\ud150\uce20' \uc18d\uc131\uc5d0 '\uae30\uacc4\uc801' \ub610\ub294 '\uba54\ucee4\ub2c8\uc998'\uc774\ub77c\ub294 \uc6a9\uc5b4\uac00 \uc815\ud655\ud788 \ud3ec\ud568\ub41c \ubb38\uc11c\uac00 \ud3ec\ud568\ub429\ub2c8\ub2e4.<\/p>\n<pre><code class=\"json\">[\r\n  {\r\n    \"id\": \"landmark_26144\",\r\n    \"content\": \"This scenic section of the Golden Gate National Recreation Area is a favorite for hikers, bikers and beach-goers, with rugged coastal highlands and deep sand dunes. Hang gliding is quite popular here, with several shops for hang gliders in the area. Nearby is the remnants of Battery Davis, a WWII-era military defense mechanism\"\r\n  },\r\n  {\r\n    \"id\": \"landmark_33234\",\r\n    \"content\": \"Western-style steakhouse features a huge, \u2018country\u2019 bar and even a mechanical bull for those ready for a faux bull-riding adventure. The menu is vast and surprisingly inexpensive. And again, the saloon is a longtime trendy destination along the Sunset Strip for raucous good times.\"\r\n  }\r\n]\r\n<\/code><\/pre>\n<h3 id=\"ftssearchwithwilcardexpression\">\uc70c\uce74\ub4dc \ud45c\ud604\uc2dd\uc744 \uc0ac\uc6a9\ud55c FTS \uac80\uc0c9<\/h3>\n<p>\uac80\uc0c9 \ubb38\uc790\uc5f4\uc5d0 \"*\" \ubb38\uc790\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc77c\uce58\ud558\ub294 \ubb38\uc790\uac00 0\uac1c \uc774\uc0c1\uc784\uc744 \ub098\ud0c0\ub0bc \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc544\ub798 \ucffc\ub9ac\ub294 <em>id<\/em> \ubc0f <em>\ucf58\ud150\uce20<\/em> \uc18d\uc131\uc758 <em>\"\ub79c\ub4dc\ub9c8\ud06c\"<\/em> <code>\uc720\ud615<\/code> \uc6a9\uc5b4\uac00 \ud3ec\ud568\ub41c \ubb38\uc11c <em>\"walt*\"<\/em> \uc5d0\uc11c <em>\"content\"<\/em> \uc18d\uc131\uc744 \uc785\ub825\ud569\ub2c8\ub2e4. \uc774\ub807\uac8c \ud558\uba74 'walt'\ub85c \uc2dc\uc791\ud558\uc5ec 0\uc790 \uc774\uc0c1\uc73c\ub85c \ub05d\ub098\ub294 \ubaa8\ub4e0 \uac80\uc0c9\uc5b4\uac00 \uc77c\uce58\ud569\ub2c8\ub2e4. \uc5ec\uae30\uc11c\ub294 <em>\"ContentFTSIndex\"<\/em> \ub97c \ub9cc\ub4e4\uc5c8\uc2b5\ub2c8\ub2e4.<\/p>\n<p><em>\ucc38\uace0<\/em>: \uac80\uc0c9\uc5b4\uc5d0 \uc640\uc77c\ub4dc\uce74\ub4dc\ub97c \uc0ac\uc6a9\ud558\ub294 \uac83\uc774 \uc5b4\uac04\ud654\ub97c \uad6c\ud604\ud558\ub294 \uc21c\uc9c4\ud55c \ubc29\ubc95\uc774\ub77c\uace0 \uc8fc\uc7a5\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \uadf8\ub807\uac8c \ub418\uba74 \uc5b4\uac04\uc744 \ud1b5\ud574 \ud30c\uc0dd\ub41c \uc6a9\uc5b4\uc640 \uc77c\uce58\ud558\uc9c0 \uc54a\uc744 \uc218 \uc788\ub294 \ud30c\uc0dd \ud615\ud0dc\uac00 \ub098\uc62c \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub530\ub77c\uc11c \ud544\uc694\ud55c \uacbd\uc6b0\uc5d0\ub9cc \uc2a4\ud15c\ubc0d\uc744 \uc0ac\uc6a9\ud558\ub294 \uac83\uc774 \ubc14\ub78c\uc9c1\ud569\ub2c8\ub2e4.<\/p>\n<h4 id=\"request\">\uc694\uccad<\/h4>\n<pre class=\"wrap:true lang:swift decode:true\">let ftsExpression = FullTextExpression.index(\"ContentFTSIndex\")\r\nlet searchQuery = QueryBuilder\r\n        .select(SelectResult.expression(Meta.id),\r\n                SelectResult.expression(Expression.property(\"content\")))\r\n        .from(DataSource.database(db))\r\n .where(Expression.property(\"type\").equalTo(Expression.string (\"landmark\"))\r\n        .and( ftsExpression.match(\"walt*\")))\r\n        .limit(Expression.int(limit))<\/pre>\n<h4 id=\"sampleresponse\">\uc0d8\ud50c \uc751\ub2f5<\/h4>\n<p>\uc704 \ucffc\ub9ac\uc5d0 \ub300\ud55c \uc751\ub2f5\uc5d0\ub294 \"walt\", \"Walter\", \"Waltham\", \"Walthamstow\" \ub4f1\uc758 \uc6a9\uc5b4\uac00 \ud3ec\ud568\ub41c \ubb38\uc11c\uac00 \ud3ec\ud568\ub429\ub2c8\ub2e4.<\/p>\n<pre><code class=\"json\">[\r\n  {\r\n    \"id\": \"landmark_10134\",\r\n    \"content\": \"On the Ibrox tour, you get access to the home dressing room and hear a recorded message from Walter Smith and Ally McCoist before climbing the marble staircase, visit the illustrious trophy room, the blue room and the managers office. Tickets, except for matches against Celtic, are available online from the clubs website, ticket centre at the stadium and club outlets at JJB Sports Stores in Glasgow city centre.\"\r\n  },\r\n  {\r\n    \"id\": \"landmark_16104\",\r\n    \"content\": \"Presents the history of Waltham Forest.  The building was constructed to be a work house and has since been used as a police station and a private home.  Its collection includes the Bremer car, built by engineer Frederick Bremer in 1892 it has a claim to being this first petrol-driven car made in Britain.\"\r\n  },\r\n  {\r\n    \"id\": \"landmark_16105\",\r\n    \"content\": \"The ancient nucleus of present day Walthamstow centred around the 12 th century St.Marys Church \"\r\n  },\r\n  {\r\n    \"id\": \"landmark_16574\",\r\n    \"content\": \"Impressive hall architecture complete with tours most days.The Dorothy Chandler Pavilion is open to the public Christmas Eve day with almost round the clock performances by amateur cultural arts groups.The Walt Disney Hall has daily tours ,check website for schedules.\"\r\n  },\r\n  {\r\n    \"id\": \"landmark_8631\",\r\n    \"content \": \"Museum about famous Scottish authors, focussing on Robert Burns, Sir Walter Scott and Robert Louis Stevenson \"\r\n  }\r\n]\r\n<\/code><\/pre>\n<h3 id=\"ftssearchwithstopwords\">\uc911\uc9c0 \ub2e8\uc5b4\ub97c \uc0ac\uc6a9\ud55c FTS \uac80\uc0c9<\/h3>\n<p>\uc911\uc9c0 \ub2e8\uc5b4\ub294 \ud55c \uc5b8\uc5b4\uc758 \uc77c\ubc18\uc801\uc778 \ub2e8\uc5b4\ub97c \uc758\ubbf8\ud569\ub2c8\ub2e4. \uc601\uc5b4\uc5d0\uc11c\ub294 \"the\", \"is\", \"and\" , \"which\" \ub4f1\uacfc \uac19\uc740 \uc6a9\uc5b4\uac00 \uc774\uc5d0 \ud574\ub2f9\ud569\ub2c8\ub2e4.<\/p>\n<h4 id=\"example1:searchstringcontainsstopwords\">\uc608 1: \uac80\uc0c9 \ubb38\uc790\uc5f4\uc5d0 \uc911\uc9c0\uc5b4\uac00 \ud3ec\ud568\ub41c \uacbd\uc6b0<\/h4>\n<p>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ub77c\uc774\ud2b8\ub294 \uac80\uc0c9 \ubb38\uc790\uc5f4\uc5d0 \ub098\ud0c0\ub098\ub294 \uc911\uc9c0 \ub2e8\uc5b4\ub97c \ubb34\uc2dc\ud569\ub2c8\ub2e4.<\/p>\n<p>\uc544\ub798 \ucffc\ub9ac\ub294 <em>id<\/em> \ubc0f <em>\ucf58\ud150\uce20<\/em> \uc18d\uc131\uc758 <em>\"\ub79c\ub4dc\ub9c8\ud06c\"<\/em> <code>\uc720\ud615<\/code> \uc6a9\uc5b4\uac00 \ud3ec\ud568\ub41c \ubb38\uc11c <em>\"\uae30\ub85d\uc5d0\"<\/em> \uc5d0\uc11c <em>\"content\"<\/em> \uc18d\uc131\uc785\ub2c8\ub2e4. \uc6b0\ub9ac\ub294 <em>\"ContentFTSIndex\"<\/em> \ub97c \ub9cc\ub4e4\uc5c8\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ub77c\uc774\ud2b8\ub294 \uc911\uc9c0 \ub2e8\uc5b4 \"on\"\uacfc \"the\"\ub97c \ubb34\uc2dc\ud558\ubbc0\ub85c \"history\"\ub77c\ub294 \uc6a9\uc5b4\uc640 \uc5b4\uac04 \ub2e8\uc5b4\uc758 \ud30c\uc0dd \ud615\ud0dc\ub9cc \ud3ec\ud568\ub41c \ubb38\uc11c\ub97c \uac00\uc838\uc62c \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc694\uccad<\/p>\n<pre class=\"wrap:true lang:swift decode:true\"> let ftsExpression = FullTextExpression.index(\"ContentFTSIndex\")\r\n let searchQuery = QueryBuilder.select(SelectResult.expression(Meta.id),\r\n        SelectResult.expression(Expression.property(\"content\")))\r\n        .from(DataSource.database(db))\r\n .where(Expression.property(\"type\").equalTo(Expression.string (\"landmark\"))\r\n        .and( ftsExpression.match(\"on the history\")))\r\n        .limit(Expression.int(limit))<\/pre>\n<h5 id=\"sampleresponse\">\uc0d8\ud50c \uc751\ub2f5<\/h5>\n<p>\uc704 \ucffc\ub9ac\uc5d0 \ub300\ud55c \uc751\ub2f5\uc5d0\ub294 \"\uc5ed\uc0ac\"\ub77c\ub294 \uc6a9\uc5b4\uc640 \uc774 \ub2e8\uc5b4\uc758 \ud30c\uc0dd \ud615\ud0dc\uc778 \"\uc5ed\uc0ac\uc801\" \ub4f1\uc758 \uc6a9\uc5b4\uac00 \ud3ec\ud568\ub41c \ubb38\uc11c\uac00 \ud3ec\ud568\ub429\ub2c8\ub2e4.<\/p>\n<pre><code class=\"json\">[\r\n  {\r\n    \"id\": \"landmark_10019\",\r\n    \"content\": \"Museum on military engineering and the history of the British Empire. A quite extensive collection that takes about half a day to see. Of most interest to fans of British and military history or civil engineering.\"\r\n  },\r\n  {\r\n    \"id\": \"landmark_10083\",\r\n    \"content\": \" Tours take about 45 min. In front the building, George Square, the citys notional centre, is populated by several statues of civic leaders and famous figures from history and is often used for outdoor events.\"\r\n  },\r\n  {\r\n    \"id\": \"landmark_10093\",\r\n    \"content\": \"The auditorium has now garnered some world fame for being the place where the Susan Boyle audition - one of the most downloaded YouTube video clips in history - was filmed.\"\r\n  },\r\n  {\r\n    \"id\": \"landmark_10101\",\r\n    \"content\": \"This museum has a large collection of artifacts and exhibits showcasing the history of the city. If you don't want to pay to enter the museum itself, you can just walk into the building (which contains three separate museums) and look at some historical photographs on the walls of the atrium.\"\r\n  },\r\n  {\r\n    \"id\": \"landmark_10105\",\r\n    \"content\": \"The Peoples Palace is a great folk museum, telling the history of Glasgow and its people, from various perspectives, displaying details of Glasgow life (including one of Billy Connolly's banana boots). The Winter Gardens, adjacent, is a pleasant greenhouse with a reasonable cafe.)\"\r\n  }\r\n]\r\n<\/code><\/pre>\n<h4 id=\"example2:ignoringstopwordswhilesearching\">\uc608 2: \uac80\uc0c9 \uc911 \uc911\uc9c0 \ub2e8\uc5b4 \ubb34\uc2dc\ud558\uae30<\/h4>\n<p>\uae30\ubcf8\uc801\uc73c\ub85c \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ub77c\uc774\ud2b8\ub294 \uac80\uc0c9 \ucf58\ud150\uce20 \ub0b4\uc758 \uc911\uc9c0 \ub2e8\uc5b4\ub97c \ubb34\uc2dc\ud569\ub2c8\ub2e4.<\/p>\n<p>\uc544\ub798 \ucffc\ub9ac\ub294 <em>id<\/em> \ubc0f <em>\ucf58\ud150\uce20<\/em> \uc18d\uc131\uc758 <em>\"\ub79c\ub4dc\ub9c8\ud06c\"<\/em> <code>\uc720\ud615<\/code> \uc57d\uad00\uc774 \ud3ec\ud568\ub41c \ubb38\uc11c <em>\"\ud30c\ub780 \uc9c0\ub290\ub7ec\ubbf8 \ub178\ub780 \uc9c0\ub290\ub7ec\ubbf8\"<\/em> \uc5d0\uc11c <em>\"content\"<\/em> \uc18d\uc131\uc785\ub2c8\ub2e4. \uc6b0\ub9ac\ub294 <em>\"ContentFTSIndex\"<\/em> \ub97c \ub9cc\ub4e4\uc5c8\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ub77c\uc774\ud2b8\ub294 \uac80\uc0c9 \uc2dc \uc911\uc9c0\uc5b4\ub97c \ubb34\uc2dc\ud558\ubbc0\ub85c '\ud30c\ub780\uc0c9', '\uc9c0\ub290\ub7ec\ubbf8', '\ub178\ub780\uc0c9'\uc774\ub77c\ub294 \uc6a9\uc5b4\uac00 \ud3ec\ud568\ub41c \ubb38\uc11c\ub97c \uc911\uc9c0\uc5b4\ub85c \uad6c\ubd84\ub41c \uc21c\uc11c\ub300\ub85c \uac00\uc838\uc62c \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h5 id=\"request\">\uc694\uccad<\/h5>\n<pre class=\"wrap:true lang:swift decode:true\">let ftsExpression = FullTextExpression.index(\"ContentFTSIndex\")\r\nlet searchQuery = QueryBuilder.select(SelectResult.expression(Meta.id),\r\n       SelectResult.expression(Expression.property(\"content\")))\r\n       .from(DataSource.database(db))\r\n .where(Expression.property(\"type\").equalTo(Expression.string (\"landmark\"))\r\n         .and( ftsExpression.match(\"blue fin yellow fin\")))\r\n        .limit(Expression.int(limit))<code class=\"swift\"><\/code><\/pre>\n<h5 id=\"sampleresponse\">\uc0d8\ud50c \uc751\ub2f5<\/h5>\n<p>\uc704 \ucffc\ub9ac\uc5d0 \ub300\ud55c \uc751\ub2f5\uc5d0\ub294 \"\ud30c\ub780\uc0c9\", \"\uc9c0\ub290\ub7ec\ubbf8\", \"\ub178\ub780\uc0c9\"\uc774\ub77c\ub294 \uc6a9\uc5b4\uac00 \"\ud30c\ub780\uc0c9 \uc9c0\ub290\ub7ec\ubbf8, \ub178\ub780\uc0c9 \uc9c0\ub290\ub7ec\ubbf8\"\uc640 \uac19\uc774 \uc6d0\ud558\ub294 \uc218\uc758 \uc27c\ud45c\ub85c \uad6c\ubd84\ub41c \ubb38\uc11c\uac00 \ud3ec\ud568\ub429\ub2c8\ub2e4.<\/p>\n<pre><code class=\"json\">[\r\n  {\r\n    \"id\": \"landmark_18840\",\r\n    \"content\": \"This large aquarium specializes in exhibiting local sea life in typical local habitat displays, and has many spectacular exhibits. It is particularly known for its Kelp Forest exhibit, three stories high, filled with several varieties of giant kelp and a wide variety of marine animal species, and also for its million-gallon Open Sea exhibit with large blue fin and yellow fin tunas, mahi-mahis, sharks (including an occasional Great White Shark as a very temporary visitor, before being released back to the ocean), ocean sunfish (mola-molas) and sea turtles. The best exhibits include a large tank of silver sardines that swim around and around above one's head, and one of rescued sea otters deemed unreturnable to the wild and therefore kept at the aquarium.  )\"\r\n  }\r\n]\r\n<\/code><\/pre>\n<h3 id=\"ftssearchwithranking\">\uc21c\uc704\uac00 \uc788\ub294 FTS \uac80\uc0c9<\/h3>\n<p>\ub2e4\uc74c\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <code>\ud480\ud14d\uc2a4\ud2b8 \ud568\uc218 \uc21c\uc704<\/code> \uc744 \ud074\ub9ad\ud558\uc5ec \uac80\uc0c9 \uacb0\uacfc\uc758 \uc21c\uc704 \uc21c\uc11c\ub97c \uc9c0\uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uac00\uc7a5 \uc77c\uce58\ud558\ub294 \uc21c\uc11c\ub300\ub85c \uc77c\uce58\ud558\ub294 \ud56d\ubaa9\uc744 \ud3c9\uac00\ud558\ub294 \ub370 \uc720\uc6a9\ud569\ub2c8\ub2e4.<\/p>\n<p>\uc544\ub798 \ucffc\ub9ac\ub294 <em>id<\/em> \ubc0f <em>\ucf58\ud150\uce20<\/em> \uc18d\uc131\uc758 <em>\"\ub79c\ub4dc\ub9c8\ud06c\"<\/em> <code>\uc720\ud615<\/code> \uc6a9\uc5b4\uac00 \ud3ec\ud568\ub41c \ubb38\uc11c <em>\"\uc720\uce58\"<\/em> \uc5d0\uc11c <em>\"content\"<\/em> \uc18d\uc131\uc73c\ub85c \uc124\uc815\ud569\ub2c8\ub2e4. \ubb38\uc11c\ub294 \uc21c\uc704\uc5d0 \ub530\ub77c \ub0b4\ub9bc\ucc28\uc21c\uc73c\ub85c \uc815\ub82c\ub418\ubbc0\ub85c \uc77c\uce58 \ud56d\ubaa9 \uc218\uac00 \uac00\uc7a5 \ub9ce\uc740 \ubb38\uc11c\uac00 \ub098\uba38\uc9c0 \ubb38\uc11c\ubcf4\ub2e4 \ub192\uac8c \uc815\ub82c\ub429\ub2c8\ub2e4.<\/p>\n<h5 id=\"request\">\uc694\uccad<\/h5>\n<pre class=\"wrap:true lang:swift decode:true\">let ftsExpression = FullTextExpression.index(\"ContentFTSIndexNoStemming\")\r\nlet searchQuery = QueryBuilder.select(SelectResult.expression(Meta.id),\r\n     SelectResult.expression(Expression.property(\"content\")))\r\n        .from(DataSource.database(db))\r\n .where(Expression.property(\"type\").equalTo(Expression.string (\"landmark\"))\r\n        .and( ftsExpression.match(\"attract\")))\r\n        .orderBy(Ordering.expression(FullTextFunction.rank(\"ContentFTSIndexNoStemming\")).descending())\r\n        .limit(Expression.int(limit))<\/pre>\n<h5 id=\"sampleresponse\">\uc0d8\ud50c \uc751\ub2f5<\/h5>\n<p>\uc704 \ucffc\ub9ac\uc5d0 \ub300\ud55c \uc751\ub2f5\uc5d0\ub294 \ub2e4\uc74c\uacfc \uac19\uc740 \uc6a9\uc5b4\uac00 \ud3ec\ud568\ub41c \ubb38\uc11c\uac00 \ud3ec\ud568\ub429\ub2c8\ub2e4. <em>\"\uc720\uce58\"<\/em> \ub610\ub294 \ud30c\uc0dd\ub41c \ubc84\uc804\uc785\ub2c8\ub2e4. \ucd5c\ub300 \uc77c\uce58 \ubb38\uc11c \uc218\uac00 \ub9ce\uc740 \ubb38\uc11c\uac00 \ub354 \ub192\uac8c \uc815\ub82c\ub429\ub2c8\ub2e4.<\/p>\n<pre><code class=\"json\">[\r\n  {\r\n    \"id\": \"landmark_22056\",\r\n    \"content\": \"Top paid-for visitor attraction in Wales including a farm, indoor vintage funfair, zoo and indoor and outdoor adventure play. All-weather family attraction with 50% of attractions undercover.\"\r\n  },\r\n  {\r\n    \"id\": \"landmark_16309\",\r\n    \"content\": \"The London Bridge Experience and London Tombs are two scare attractions for one price and have been voted the UK's Best Year Round Scare Attraction for three years running.\"\r\n  },\r\n  {\r\n    \"id\": \"landmark_25216\",\r\n    \"content\": \"TA seaside amusement park located near the southern end of Mission Beach, Belmont Park is a landmark with a number of shops, restaurants, an arcade, and a bunch of rides. The big attraction is the Giant Dipper, a historic roller coaster that is one of the only two remaining oceanfront roller coasters still operating on the west coast. Among the other rides is a FlowRider (a simulated wave attraction which you can bodyboard on), an antique carousel, bumper cars, slides, pendulum rides, tilt-a-whirl, and a trampoline \"\r\n  },\r\n  {\r\n    \"id\": \"landmark_1059\",\r\n    \"content\": \"Aims to tell the history of flight throughout the 20th Century, and has a large collection of aircraft, including British Airways Concorde G-BOAA.  Another rather good attraction (and well worth the look) is the De-Havilland Comet 4C, a derivative of the Worlds first jetliner.\"\r\n  }\r\n]\r\n<\/code><\/pre>\n<h3 id=\"limitations\">\uc81c\ud55c \uc0ac\ud56d<\/h3>\n<p>Couchbase Lite 2.0\uc758 FTS \uae30\ub2a5\uc740 \ub9e4\uc6b0 \uac15\ub825\ud558\uba70 \uc784\ubca0\ub514\ub4dc \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc758 \uc77c\ubc18\uc801\uc778 \uc0ac\uc6a9 \uc0ac\ub840\uc5d0 \ucda9\ubd84\ud558\uc9c0\ub9cc, \uba87 \uac00\uc9c0 \uc81c\ud55c \uc0ac\ud56d\uc774 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<ul>\n<li>\uc77c\uce58 \ud45c\ud604\uc2dd\uc740 \ucd5c\uc0c1\uc704 \ub610\ub294 \ucd5c\uc0c1\uc704 AND \ud45c\ud604\uc2dd\uc5d0\ub9cc \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc989, \ub2e4\uc74c\uacfc \uac19\uc740 \ud45c\ud604\uc2dd\uc740 \ud5c8\uc6a9\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.\u00a0<span style=\"color: #222222;font-family: Monaco, Consolas, 'Andale Mono', 'DejaVu Sans Mono', monospace;font-size: 15px;background-color: #e9ebec\">ftsExpression.match(\"attract\").or(ftsExpression2.match(\"museum\"))<\/span><\/li>\n<\/ul>\n<ul>\n<li>\uc0ac\uc6a9\uc790 \uc9c0\uc815 \uc5b8\uc5b4 \ud1a0\ud070\ud654 \ub3c4\uad6c<br \/>\n\uc9c0\uc6d0\ub418\ub294 \uc5b8\uc5b4 \ubaa9\ub85d\uc740 \uc55e\uc11c \uc9c0\uc815\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \uc774 \uae00\uc744 \uc791\uc131\ud558\ub294 \ud604\uc7ac\ub85c\uc11c\ub294 \ub2e4\ub978 \uc5b8\uc5b4\ub85c \uc9c0\uc6d0\uc744 \ud655\uc7a5\ud558\uae30 \uc704\ud574 \uc0ac\uc6a9\uc790 \uc9c0\uc815 \ud1a0\ud070\ud654 \ub3c4\uad6c\ub97c \uc5f0\uacb0\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.<\/li>\n<li>\u00a0\ud37c\uc9c0 \uac80\uc0c9 \uc9c0\uc6d0<br \/>\n\ucffc\ub9ac\uc5d0 '\ud37c\uc9c0' \uc694\uc18c\ub97c \uc9c0\uc815\ud558\uba74 \uad00\ub828\uc131\uc774 \ub0ae\uc740 \uc77c\uce58 \ud56d\ubaa9\uc774 \uace0\ub824\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<li>\u00a0\ud328\uc2ef<br \/>\n\ud328\uc2ef \uac80\uc0c9\uc740 \uc9c0\uc6d0\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.<\/li>\n<\/ul>\n<p>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ub77c\uc774\ud2b8\ub294 \uc784\ubca0\ub514\ub4dc \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub77c\ub294 \uc810\uc744 \uba85\uc2ec\ud558\uc138\uc694. \ub530\ub77c\uc11c FTS \uae30\ub2a5\uc774 \uc11c\ubc84 \uce21 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uad6c\ud604\ub9cc\ud07c \uad11\ubc94\uc704\ud560 \ud544\uc694\ub294 \uc5c6\ub2e4\uace0 \uc8fc\uc7a5\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4. \uc774\uc5d0 \ub300\ud55c \uc9c0\uc6d0\uc740 \ud5a5\ud6c4 \ub9b4\ub9ac\uc2a4\uc5d0\uc11c \ud3c9\uac00\ub420 \uc608\uc815\uc785\ub2c8\ub2e4.<\/p>\n<h3 id=\"whatnext\">\ub2e4\uc74c \ub2e8\uacc4<\/h3>\n<p>\uc774 \ube14\ub85c\uadf8 \uac8c\uc2dc\ubb3c\uc5d0\uc11c\ub294 Couchbase Mobile 2.0\uc758 \uc0c8\ub85c\uc6b4 \ucffc\ub9ac API\uc5d0\uc11c \uc804\uccb4 \ud14d\uc2a4\ud2b8 \uac80\uc0c9(FTS) \uae30\ub2a5\uc744 \ud65c\uc6a9\ud558\ub294 \ubc29\ubc95\uc5d0 \ub300\ud574 \uc0b4\ud3b4\ubcf4\uc558\uc2b5\ub2c8\ub2e4. \uc774\uac83\uc740 \uc2dc\uc791\uc5d0 \ubd88\uacfc\ud569\ub2c8\ub2e4. \ud5a5\ud6c4 \ub9b4\ub9ac\uc2a4\uc5d0\uc11c \ub354 \ub9ce\uc740 \uae30\ub2a5\uc774 \ucd94\uac00\ub420 \uc608\uc815\uc785\ub2c8\ub2e4. \ucd5c\uc2e0 \ub9b4\ub9ac\uc2a4\ub294 \ub2e4\uc74c\uc5d0\uc11c \ub2e4\uc6b4\ub85c\ub4dc\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/developer.couchbase.com\/documentation\/mobile\/2.0\/whatsnew.html\">\ub2e4\uc6b4\ub85c\ub4dc<\/a> \ud398\uc774\uc9c0\ub85c \uc774\ub3d9\ud569\ub2c8\ub2e4.<\/p>\n<p>\ub2e4\uc74c\uc740 \uad00\uc2ec\uc744 \uac00\uc9c8 \ub9cc\ud55c \uba87 \uac00\uc9c0 \ub2e4\ub978 Couchbase \ubaa8\ubc14\uc77c \ucffc\ub9ac \uad00\ub828 \uac8c\uc2dc\ubb3c\uc785\ub2c8\ub2e4.<br \/>\n- \uc774 <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/sql-for-json-query-interface-couchbase-mobile\/\">\ube14\ub85c\uadf8 \uac8c\uc2dc\ubb3c<\/a> \uae30\ubcf8 \uc0ac\ud56d\uc5d0 \ub300\ud574 \uc124\uba85\ud569\ub2c8\ub2e4.<br \/>\n- \uc774 <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/querying-array-collections-couchbase-mobile\/\">\ube14\ub85c\uadf8 \uac8c\uc2dc\ubb3c<\/a> \ubc30\uc5f4 \uceec\ub809\uc158\uc744 \ucffc\ub9ac\ud558\ub294 \ubc29\ubc95\uc5d0 \ub300\ud574 \uc124\uba85\ud569\ub2c8\ub2e4.<br \/>\n- \uc774 <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/join-queries-couchbase-mobile\/\">\ube14\ub85c\uadf8 \uac8c\uc2dc\ubb3c<\/a> \uc870\uc778 \ucffc\ub9ac\ub97c \uc218\ud589\ud558\ub294 \ubc29\ubc95\uc5d0 \ub300\ud574 \uc124\uba85\ud569\ub2c8\ub2e4.<\/p>\n<p>\uc9c8\ubb38\uc774\ub098 \ud53c\ub4dc\ubc31\uc774 \uc788\uc73c\uba74 \uc544\ub798\uc5d0 \ub313\uae00\uc744 \ub0a8\uae30\uac70\ub098 \ud2b8\uc704\ud130\ub85c \uc5b8\uc81c\ub4e0\uc9c0 \ubb38\uc758\ud574 \uc8fc\uc138\uc694.\u00a0<a href=\"https:\/\/twitter.com\/rajagp\">@rajagp<\/a>\u00a0\ub610\ub294 \uc774\uba54\uc77c\uc744 \ubcf4\ub0b4\uc8fc\uc138\uc694.\u00a0<a href=\"mailto:priya.rajagopal@couchbase.com\">priya.rajagopal@couchbase.com<\/a>.  .\u00a0<a href=\"https:\/\/www.couchbase.com\/blog\/ko\/forums\/\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ud3ec\ub7fc<\/a> \ub97c \ud1b5\ud574 \uc9c8\ubb38\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>&nbsp;<\/p>","protected":false},"excerpt":{"rendered":"<p>Couchbase Mobile 2.0, introduces powerful Full Text Search (FTS) capabilities on your JSON Documents. This is part of the new Query interface based on N1QL, Couchbase\u2019s declarative query language that extends SQL for JSON. If you are familiar with SQL, [&hellip;]<\/p>","protected":false},"author":1423,"featured_media":4447,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1815,7667,1810,2165,1812],"tags":[1261],"ppma_author":[8948],"class_list":["post-4446","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-best-practices-and-tutorials","category-couchbase-lite","category-couchbase-mobile","category-full-text-search","category-n1ql-query","tag-json"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.7.1 (Yoast SEO v25.7) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Introducing Full Text Search (FTS) in Couchbase Mobile 2.0<\/title>\n<meta name=\"description\" content=\"Couchbase Mobile 2.0 brings us powerful Full text Search (FTS) capabilities of your JSON Documents. This post walks you through several use cases.\" \/>\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\/full-text-search-couchbase-mobile-2-0\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Introducing Full Text Search (FTS) in Couchbase Mobile 2.0\" \/>\n<meta property=\"og:description\" content=\"Couchbase Mobile 2.0 brings us powerful Full text Search (FTS) capabilities of your JSON Documents. This post walks you through several use cases.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/ko\/full-text-search-couchbase-mobile-2-0\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-01-17T18:30:34+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T03:59:23+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/01\/fts.png\" \/>\n\t<meta property=\"og:image:width\" content=\"430\" \/>\n\t<meta property=\"og:image:height\" content=\"522\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Priya Rajagopal, Senior Director, Product Management\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@rajagp\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Priya Rajagopal, Senior Director, Product Management\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"15\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/full-text-search-couchbase-mobile-2-0\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/full-text-search-couchbase-mobile-2-0\/\"},\"author\":{\"name\":\"Priya Rajagopal, Senior Director, Product Management\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c2da90e57717ee4970c48a87a131ac2c\"},\"headline\":\"Introducing Full Text Search (FTS) in Couchbase Mobile 2.0\",\"datePublished\":\"2018-01-17T18:30:34+00:00\",\"dateModified\":\"2025-06-14T03:59:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/full-text-search-couchbase-mobile-2-0\/\"},\"wordCount\":1832,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/full-text-search-couchbase-mobile-2-0\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/01\/fts.png\",\"keywords\":[\"JSON\"],\"articleSection\":[\"Best Practices and Tutorials\",\"Couchbase Lite\",\"Couchbase Mobile\",\"Full-Text Search\",\"SQL++ \/ N1QL Query\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/full-text-search-couchbase-mobile-2-0\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/full-text-search-couchbase-mobile-2-0\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/full-text-search-couchbase-mobile-2-0\/\",\"name\":\"Introducing Full Text Search (FTS) in Couchbase Mobile 2.0\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/full-text-search-couchbase-mobile-2-0\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/full-text-search-couchbase-mobile-2-0\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/01\/fts.png\",\"datePublished\":\"2018-01-17T18:30:34+00:00\",\"dateModified\":\"2025-06-14T03:59:23+00:00\",\"description\":\"Couchbase Mobile 2.0 brings us powerful Full text Search (FTS) capabilities of your JSON Documents. This post walks you through several use cases.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/full-text-search-couchbase-mobile-2-0\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/full-text-search-couchbase-mobile-2-0\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/full-text-search-couchbase-mobile-2-0\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/01\/fts.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/01\/fts.png\",\"width\":430,\"height\":522,\"caption\":\"Full Text Search\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/full-text-search-couchbase-mobile-2-0\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Introducing Full Text Search (FTS) in Couchbase Mobile 2.0\"}]},{\"@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\/c2da90e57717ee4970c48a87a131ac2c\",\"name\":\"Priya Rajagopal, Senior Director, Product Management\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/4b50a54778b979d8c345b036ab138734\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/acfb2349788955262cd069497a9e7bdb0e97c26326f2e55811e7c1174e9ef1be?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/acfb2349788955262cd069497a9e7bdb0e97c26326f2e55811e7c1174e9ef1be?s=96&d=mm&r=g\",\"caption\":\"Priya Rajagopal, Senior Director, Product Management\"},\"description\":\"Priya Rajagopal is a Senior Director of Product Management at Couchbase responsible for developer platforms for the cloud and the edge. She has been professionally developing software for over 20 years in several technical and product leadership positions, with 10+ years focused on mobile technologies. As a TISPAN IPTV standards delegate, she was a key contributor to the IPTV standards specifications. She has 22 patents in the areas of networking and platform security.\",\"sameAs\":[\"https:\/\/x.com\/rajagp\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/ko\/author\/priya-rajagopalcouchbase-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ubaa8\ubc14\uc77c 2.0\uc758 \uc804\uccb4 \ud14d\uc2a4\ud2b8 \uac80\uc0c9(FTS) \uc18c\uac1c","description":"Couchbase Mobile 2.0 brings us powerful Full text Search (FTS) capabilities of your JSON Documents. This post walks you through several use cases.","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\/full-text-search-couchbase-mobile-2-0\/","og_locale":"ko_KR","og_type":"article","og_title":"Introducing Full Text Search (FTS) in Couchbase Mobile 2.0","og_description":"Couchbase Mobile 2.0 brings us powerful Full text Search (FTS) capabilities of your JSON Documents. This post walks you through several use cases.","og_url":"https:\/\/www.couchbase.com\/blog\/ko\/full-text-search-couchbase-mobile-2-0\/","og_site_name":"The Couchbase Blog","article_published_time":"2018-01-17T18:30:34+00:00","article_modified_time":"2025-06-14T03:59:23+00:00","og_image":[{"width":430,"height":522,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/01\/fts.png","type":"image\/png"}],"author":"Priya Rajagopal, Senior Director, Product Management","twitter_card":"summary_large_image","twitter_creator":"@rajagp","twitter_misc":{"Written by":"Priya Rajagopal, Senior Director, Product Management","Est. reading time":"15\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/full-text-search-couchbase-mobile-2-0\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/full-text-search-couchbase-mobile-2-0\/"},"author":{"name":"Priya Rajagopal, Senior Director, Product Management","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c2da90e57717ee4970c48a87a131ac2c"},"headline":"Introducing Full Text Search (FTS) in Couchbase Mobile 2.0","datePublished":"2018-01-17T18:30:34+00:00","dateModified":"2025-06-14T03:59:23+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/full-text-search-couchbase-mobile-2-0\/"},"wordCount":1832,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/full-text-search-couchbase-mobile-2-0\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/01\/fts.png","keywords":["JSON"],"articleSection":["Best Practices and Tutorials","Couchbase Lite","Couchbase Mobile","Full-Text Search","SQL++ \/ N1QL Query"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/full-text-search-couchbase-mobile-2-0\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/full-text-search-couchbase-mobile-2-0\/","url":"https:\/\/www.couchbase.com\/blog\/full-text-search-couchbase-mobile-2-0\/","name":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ubaa8\ubc14\uc77c 2.0\uc758 \uc804\uccb4 \ud14d\uc2a4\ud2b8 \uac80\uc0c9(FTS) \uc18c\uac1c","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/full-text-search-couchbase-mobile-2-0\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/full-text-search-couchbase-mobile-2-0\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/01\/fts.png","datePublished":"2018-01-17T18:30:34+00:00","dateModified":"2025-06-14T03:59:23+00:00","description":"Couchbase Mobile 2.0 brings us powerful Full text Search (FTS) capabilities of your JSON Documents. This post walks you through several use cases.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/full-text-search-couchbase-mobile-2-0\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/full-text-search-couchbase-mobile-2-0\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/full-text-search-couchbase-mobile-2-0\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/01\/fts.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/01\/fts.png","width":430,"height":522,"caption":"Full Text Search"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/full-text-search-couchbase-mobile-2-0\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Introducing Full Text Search (FTS) in Couchbase Mobile 2.0"}]},{"@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\/c2da90e57717ee4970c48a87a131ac2c","name":"\ud504\ub9ac\uc57c \ub77c\uc790\uace0\ud314, \uc81c\ud488 \uad00\ub9ac \ubd80\ubb38 \uc120\uc784 \uc774\uc0ac","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/4b50a54778b979d8c345b036ab138734","url":"https:\/\/secure.gravatar.com\/avatar\/acfb2349788955262cd069497a9e7bdb0e97c26326f2e55811e7c1174e9ef1be?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/acfb2349788955262cd069497a9e7bdb0e97c26326f2e55811e7c1174e9ef1be?s=96&d=mm&r=g","caption":"Priya Rajagopal, Senior Director, Product Management"},"description":"\ud504\ub9ac\uc57c \ub77c\uc790\uace0\ud314\uc740 \ud074\ub77c\uc6b0\ub4dc \ubc0f \uc5e3\uc9c0\uc6a9 \uac1c\ubc1c\uc790 \ud50c\ub7ab\ud3fc\uc744 \ub2f4\ub2f9\ud558\ub294 Couchbase\uc758 \uc81c\ud488 \uad00\ub9ac \uc218\uc11d \uc774\uc0ac\uc785\ub2c8\ub2e4. \uadf8\ub140\ub294 20\ub144 \uc774\uc0c1 \uc5ec\ub7ec \uae30\uc220 \ubc0f \uc81c\ud488 \ub9ac\ub354\uc2ed \uc9c1\ucc45\uc744 \ub9e1\uc73c\uba70 \uc804\ubb38\uc801\uc73c\ub85c \uc18c\ud504\ud2b8\uc6e8\uc5b4\ub97c \uac1c\ubc1c\ud574 \uc654\uc73c\uba70, \uadf8\uc911 10\ub144 \uc774\uc0c1\uc740 \ubaa8\ubc14\uc77c \uae30\uc220\uc5d0 \uc9d1\uc911\ud588\uc2b5\ub2c8\ub2e4. TISPAN IPTV \ud45c\uc900 \ub300\ud45c\ub85c\uc11c IPTV \ud45c\uc900 \uc0ac\uc591\uc5d0 \ud575\uc2ec\uc801\uc778 \uae30\uc5ec\ub97c \ud588\uc2b5\ub2c8\ub2e4. \ub124\ud2b8\uc6cc\ud0b9 \ubc0f \ud50c\ub7ab\ud3fc \ubcf4\uc548 \ubd84\uc57c\uc5d0\uc11c 22\uac1c\uc758 \ud2b9\ud5c8\ub97c \ubcf4\uc720\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4.","sameAs":["https:\/\/x.com\/rajagp"],"url":"https:\/\/www.couchbase.com\/blog\/ko\/author\/priya-rajagopalcouchbase-com\/"}]}},"authors":[{"term_id":8948,"user_id":1423,"is_guest":0,"slug":"priya-rajagopalcouchbase-com","display_name":"Priya Rajagopal, Senior Director, Product Management","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/acfb2349788955262cd069497a9e7bdb0e97c26326f2e55811e7c1174e9ef1be?s=96&d=mm&r=g","first_name":"Priya","last_name":"Rajagopal, Senior Director, Product Management","user_url":"","author_category":"","description":"\ud504\ub9ac\uc57c \ub77c\uc790\uace0\ud314\uc740 \ud074\ub77c\uc6b0\ub4dc \ubc0f \uc5e3\uc9c0\uc6a9 \uac1c\ubc1c\uc790 \ud50c\ub7ab\ud3fc\uc744 \ub2f4\ub2f9\ud558\ub294 Couchbase\uc758 \uc81c\ud488 \uad00\ub9ac \uc218\uc11d \uc774\uc0ac\uc785\ub2c8\ub2e4. \uadf8\ub140\ub294 20\ub144 \uc774\uc0c1 \uc5ec\ub7ec \uae30\uc220 \ubc0f \uc81c\ud488 \ub9ac\ub354\uc2ed \uc9c1\ucc45\uc744 \ub9e1\uc73c\uba70 \uc804\ubb38\uc801\uc73c\ub85c \uc18c\ud504\ud2b8\uc6e8\uc5b4\ub97c \uac1c\ubc1c\ud574 \uc654\uc73c\uba70, \uadf8\uc911 10\ub144 \uc774\uc0c1\uc740 \ubaa8\ubc14\uc77c \uae30\uc220\uc5d0 \uc9d1\uc911\ud588\uc2b5\ub2c8\ub2e4. TISPAN IPTV \ud45c\uc900 \ub300\ud45c\ub85c\uc11c IPTV \ud45c\uc900 \uc0ac\uc591\uc5d0 \ud575\uc2ec\uc801\uc778 \uae30\uc5ec\ub97c \ud588\uc2b5\ub2c8\ub2e4. \ub124\ud2b8\uc6cc\ud0b9 \ubc0f \ud50c\ub7ab\ud3fc \ubcf4\uc548 \ubd84\uc57c\uc5d0\uc11c 22\uac1c\uc758 \ud2b9\ud5c8\ub97c \ubcf4\uc720\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/4446","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\/1423"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/comments?post=4446"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/4446\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media\/4447"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media?parent=4446"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=4446"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=4446"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=4446"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}