{"id":2149,"date":"2016-02-24T17:06:22","date_gmt":"2016-02-24T17:06:22","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2149"},"modified":"2025-06-13T20:59:48","modified_gmt":"2025-06-14T03:59:48","slug":"cbftjavapreview","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/ko\/cbftjavapreview\/","title":{"rendered":"Java SDK\ub97c \uc0ac\uc6a9\ud55c Couchbase\uc758 \uc804\uccb4 \ud14d\uc2a4\ud2b8 \uac80\uc0c9 \ubbf8\ub9ac\ubcf4\uae30"},"content":{"rendered":"<p>\uc774 \ube14\ub85c\uadf8 \uac8c\uc2dc\ubb3c\uc5d0\uc11c\ub294 \ub2e4\uc74c\uc5d0\uc11c \uc804\uccb4 \ud14d\uc2a4\ud2b8 \uac80\uc0c9\uc744 \uc704\ud55c \ubbf8\ub9ac\ubcf4\uae30 API\ub97c \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/next\/\"><strong>Couchbase 4.5<\/strong><\/a>. \uc774 API\ub294 \ucd5c\uc2e0 \ubc84\uc804\uc778 <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/4.1\/sdks\/java-2.2\/download-links.html\">Java SDK <\/a>\u00a0(<code>2.2.4<\/code>), \uc5ec\uc804\ud788 <code>\uc2e4\ud5d8\uc801<\/code>.<\/p>\n<p>\uc790\uc138\ud788 \uc54c\uc544\ubcf4\uaca0\uc2b5\ub2c8\ub2e4:<\/p>\n<ul class=\"toc\">\n<li><a href=\"#toc_0\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4\uc5d0\uc11c \uc804\uccb4 \ud14d\uc2a4\ud2b8 \uac80\uc0c9\uc744 \ud558\uc2dc\ub098\uc694?<\/a><\/li>\n<li><a href=\"#toc_1\">Java API<\/a><\/li>\n<li><a href=\"#toc_2\">\ub2e4\uc591\ud55c \uc720\ud615\uc758 \ucffc\ub9ac<\/a>\n<ul>\n<li><a href=\"#toc_3\">\ud37c\uc9c0 \ucffc\ub9ac<\/a><\/li>\n<li><a href=\"#toc_4\">\uc5ec\ub7ec \uc6a9\uc5b4: MatchPhrase<\/a><\/li>\n<li><a href=\"#toc_5\">\uc815\uaddc\uc2dd \ucffc\ub9ac<\/a><\/li>\n<li><a href=\"#toc_6\">\uc811\ub450\uc0ac \ucffc\ub9ac<\/a><\/li>\n<li><a href=\"#toc_7\">\ubc94\uc704 \ubc0f \ub0a0\uc9dc \ucffc\ub9ac<\/a><\/li>\n<li><a href=\"#toc_8\">\uc77c\ubc18 \ucffc\ub9ac<\/a><\/li>\n<li><a href=\"#toc_9\">\uacb0\ud569<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"#toc_10\">\ud788\ud2b8 \uc124\uba85 \ubc1b\uae30<\/a><\/li>\n<li><a href=\"#toc_11\">\uacb0\ub860<\/a><\/li>\n<\/ul>\n<p>\uc774 \uc2e4\ud5d8\uc6a9 API\ub294 Couchbase Server 4.5 \uac1c\ubc1c\uc790 \ud504\ub9ac\ubdf0\uc5d0\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <code>2.2.4<\/code>\u00a0Maven\uc744 \ud1b5\ud574 \uc5bb\uc744 \uc218 \uc788\ub294 Java SDK \ud074\ub77c\uc774\uc5b8\ud2b8\uc785\ub2c8\ub2e4. \ub2e4\uc74c \uc885\uc18d\uc131\uc744 <code>pom.xml<\/code>:<\/p>\n<div>\n<pre class=\"line-numbers\"><code class=\"language-markup\">\r\n    com.couchbase.client\r\n    java-client\r\n    2.2.4\r\n<\/code><\/pre>\n<\/div>\n<div><\/div>\n<h2 id=\"toc_0\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4\uc5d0\uc11c \uc804\uccb4 \ud14d\uc2a4\ud2b8 \uac80\uc0c9\uc744 \ud558\uc2dc\ub098\uc694?<\/h2>\n<p>\uc608! \uace7 \ucd9c\uc2dc\ub420 <code>4.5<\/code> \uc11c\ubc84 \ub9b4\ub9ac\uc2a4(\ucf54\ub4dc\uba85 \uc653\uc2a8)\uc5d0\ub294 \uc624\ud508 \uc18c\uc2a4 \uae30\ubc18\uc758 \uc804\uccb4 \ud14d\uc2a4\ud2b8 \uc778\ub371\uc11c(FTS, CBFT\ub77c\uace0\ub3c4 \ud568)\uac00 \ud3ec\ud568\ub429\ub2c8\ub2e4. <a href=\"https:\/\/www.blevesearch.com\/\">Bleve<\/a> \ud504\ub85c\uc81d\ud2b8\uc785\ub2c8\ub2e4. Bleve\ub294 Go\uc758 \uc804\uccb4 \ud14d\uc2a4\ud2b8 \uac80\uc0c9\uacfc \uc778\ub371\uc2f1\uc5d0 \uad00\ud55c \uac83\uc785\ub2c8\ub2e4. <a href=\"https:\/\/twitter.com\/mschoch\">\ub9c8\ud2f0 \uc1fc\ud750<\/a> \uc774 \ud504\ub85c\uc81d\ud2b8\ub97c \uc2dc\uc791\ud558\uae30 \uc704\ud574).<\/p>\n<p>\uc774 \uc544\uc774\ub514\uc5b4\ub294 \uc678\ubd80 \uc18c\ud504\ud2b8\uc6e8\uc5b4(\uc790\uccb4 \ud074\ub7ec\uc2a4\ud130\uc5d0\uc11c \uc2e4\ud589\ub418\ub294)\uc5d0 \ub300\ud55c \ucee4\ub125\ud130\ub97c \uc0ac\uc6a9\ud560 \ud544\uc694 \uc5c6\uc774 Bleve\ub97c \ud65c\uc6a9\ud558\uc5ec Couchbase Server\uc5d0\uc11c \uae30\uc131\ud488 \uc804\uccb4 \ud14d\uc2a4\ud2b8 \uac80\uc0c9\uc744 \uc81c\uacf5\ud558\ub294 \uac83\uc785\ub2c8\ub2e4. \ubb3c\ub860 \uc774\ub7ec\ud55c \uc0c1\uc6a9 \uc194\ub8e8\uc158\uc774 \uc0ac\uc6a9\uc790\uc758 \uc694\uad6c \uc0ac\ud56d\uc744 \uc644\uc804\ud788 \ucda9\uc871\uc2dc\ud0a4\uc9c0 \ubabb\ud558\ub294 \uacbd\uc6b0\uc5d0\ub3c4 \ub2e4\uc74c\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/4.0\/connectors\/elasticsearch-2.1\/elastic-intro.html\">\ucee4\ub125\ud130<\/a>\ud558\uc9c0\ub9cc \uac04\ub2e8\ud55c \uc694\uad6c\uc0ac\ud56d\uc740 \ub2e8\uc77c \uc194\ub8e8\uc158\uc744 \uc0ac\uc6a9\ud558\ub294 \uac83\uc774 \uc88b\uc2b5\ub2c8\ub2e4.<\/p>\n<p>FTS\ub294 Bleve\uc5d0\uc11c \uc81c\uacf5\ud558\ub294 \ub2e4\uc591\ud55c \uae30\ub2a5\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4: \ud14d\uc2a4\ud2b8 \ubd84\uc11d\uae30, \ud1a0\ud070\ud654\uae30 \ubc0f \uc774 \uae00\uc758 \ubc94\uc704\ub97c \ubc97\uc5b4\ub098\ub294 \ud6c4\ucc98\ub9ac \ud1a0\ud070 \ud544\ud130\ubfd0\ub9cc \uc544\ub2c8\ub77c \ub2e4\uc591\ud55c \uc720\ud615\uc758 <em>\ucffc\ub9ac<\/em> \ub97c \uc0ac\uc6a9\ud558\uc5ec \uacb0\uacfc \uc778\ub371\uc2a4\uc5d0\uc11c \uc2e4\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub7ec\ud55c \uc720\ud615\uc774 \ubb34\uc5c7\uc774\uba70 Java SDK\uc758 \ucee8\ud14d\uc2a4\ud2b8\uc5d0\uc11c \uc5b4\ub5bb\uac8c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294\uc9c0 \uc0b4\ud3b4 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc774 \ube14\ub85c\uadf8 \uac8c\uc2dc\ubb3c\uc758 \ub098\uba38\uc9c0 \ubd80\ubd84\uc5d0\uc11c\ub294 \uace7 \ucd9c\uc2dc\ub420 4.5 \uac1c\ubc1c\uc790 \ud504\ub9ac\ubdf0\uc5d0\uc11c \uc6f9 \uad00\ub9ac \ucf58\uc194\uc744 \ud1b5\ud574 \uad6c\ucd95\ud560 \uc218 \uc788\ub294 3\uac1c\uc758 \uc778\ub371\uc2a4\ub97c \uc0ac\uc6a9\ud558\uaca0\uc2b5\ub2c8\ub2e4:<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2016\/february\/cbftjavapreview\/pathtocbft.png\" align=\"middle\" \/><\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2016\/february\/cbftjavapreview\/createcbftindex.png\" align=\"middle\" \/><\/p>\n<p>\ub2e4\uc74c\uc740 UI\uc758 \uc778\ub371\uc2a4 \ubaa9\ub85d\uc785\ub2c8\ub2e4:<br \/>\n<img decoding=\"async\" src=\"\/wp-content\/original-assets\/2016\/february\/cbftjavapreview\/indexlist.png\" align=\"middle\" \/><br \/>\n\uadf8\ub807\uc2b5\ub2c8\ub2e4:<\/p>\n<ul>\n<li>a <code>\ub9e5\uc8fc \uc778\ub371\uc2a4<\/code> \uc5d0 \uc788\ub294 \uac01 \ubb38\uc11c\uc758 \uc804\uccb4 \ucf58\ud150\uce20\ub97c \uc0c9\uc778\ud654\ud569\ub2c8\ub2e4. <code>`beer-sample`<\/code> \ubc84\ud0b7.<\/li>\n<li>a <code>\uc5ec\ud589 \uc778\ub371\uc2a4<\/code> \uc5d0 \uc788\ub294 \uac01 \ubb38\uc11c\uc758 \uc804\uccb4 \ucf58\ud150\uce20\ub97c \uc0c9\uc778\ud654\ud569\ub2c8\ub2e4. <code>`\uc5ec\ud589-\uc0d8\ud50c`<\/code> \ubc84\ud0b7.<\/li>\n<li>\ubcc4\uce6d \uc778\ub371\uc2a4\uc785\ub2c8\ub2e4, <code>commonIndex<\/code>\ub294 \uc704\uc758 \ub450 \uc778\ub371\uc2a4\uac00 \ud569\uccd0\uc9c4 \uac12\uc785\ub2c8\ub2e4.<\/li>\n<\/ul>\n<h2 id=\"toc_1\">Java API<\/h2>\n<p>Java SDK\uc5d0\uc11c \uc804\uccb4 \ud14d\uc2a4\ud2b8 \uac80\uc0c9 \uae30\ub2a5\uc758 \uc9c4\uc785\uc810\uc740 <code>\ubc84\ud0b7<\/code>\ub97c \uc0ac\uc6a9\ud558\uc5ec <code>\ucffc\ub9ac(\uac80\uc0c9 \ucffc\ub9ac ftq)<\/code> \uba54\uc11c\ub4dc\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub294 API\uc5d0 \uc774\ubbf8 \uc874\uc7ac\ud558\ub294 \uae30\uc874 \ucffc\ub9ac \uba54\uc11c\ub4dc\uc640 \uc77c\uce58\ud569\ub2c8\ub2e4. <code>ViewQuery<\/code> \ub610\ub294 <code>N1qlQuery<\/code>.<\/p>\n<p>\uc804\uccb4 \ud14d\uc2a4\ud2b8 \uac80\uc0c9\uc744 \uc704\ud55c API\ub294 <em>\ube4c\ub354<\/em> \ud328\ud134\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \uc6d0\ud558\ub294 \ucffc\ub9ac \uc720\ud615\uc744 \uc2dd\ubcc4\ud558\uace0 \ud574\ub2f9 \ube4c\ub354\ub97c \uc0ac\uc6a9\ud558\uc5ec \ucffc\ub9ac\ub97c \uad6c\uc131\ud558\uace0, \ud574\ub2f9 \ucffc\ub9ac\uc5d0\uc11c <code>\uac80\uc0c9 \ucffc\ub9ac<\/code> \ub97c \uc0ac\uc6a9\ud558\uc5ec <code>build()<\/code> \ub97c \uc0ac\uc6a9\ud558\uc5ec \uc2e4\ud589\ud569\ub2c8\ub2e4. <code>\ubc84\ud0b7 \ucffc\ub9ac(\uac80\uc0c9 \ucffc\ub9ac)<\/code>.<\/p>\n<p>(\uc544\uc8fc \uac04\ub2e8\ud55c) \uc608\ub97c \ub4e4\uc5b4 \uc5b4\ub5bb\uac8c \uc18c\ube44\ub420 \uc218 \uc788\ub294\uc9c0 \uc0b4\ud3b4\ubd05\uc2dc\ub2e4:<\/p>\n<div>\n<pre class=\"line-numbers\"><code class=\"language-java\">\/\/we'll use that Cluster and Bucket for the remainder of the examples\r\nCluster cluster = CouchbaseCluster.create(\"127.0.0.1\");\r\nBucket bucket = cluster.openBucket(\"beer-sample\");\r\n\r\n\/\/we use a simple form of query:\r\nSearchQuery ftq = MatchQuery.on(\"beerIndex\").match(\"national\").limit(3).build();\r\n\r\n\/\/we fire the query and look at results\r\nSearchQueryResult result = bucket.query(ftq);\r\nSystem.out.println(\"totalHits: \" + result.totalHits());\r\nfor (SearchQueryRow row : result) {\r\n    System.out.println(row);\r\n}<\/code><\/pre>\n<\/div>\n<p>\uac01 \uc139\uc158\uc744 \uac1c\ubcc4\uc801\uc73c\ub85c \uc0b4\ud3b4\ubcf4\uba74 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4:<\/p>\n<ol>\n<li>\uac04\ub2e8\ud55c <code>\ub9e4\uce58 \ucffc\ub9ac<\/code> \ud55c \ubc88\ub9cc \uc0ac\uc6a9\ud558\uc138\uc694.<\/li>\n<li>\ub9e5\uc8fc \uc0d8\ud50c\uc5d0\uc11c \uc2e4\ud589\ub429\ub2c8\ub2e4(<code>.on(beerIndex<\/code>), \"national\"\uc774\ub77c\ub294 \ub2e8\uc5b4\uc758 \ud14d\uc2a4\ud2b8 \ubc1c\uc0dd\uc744 \ucc3e\uc2b5\ub2c8\ub2e4(<code>.query(\"national\")<\/code>) \ub610\ub294 \uc885\ub8cc \uc870\uac74.<\/li>\n<li>\uacb0\uacfc \uc218\ub97c 3\uac1c\ub85c \uc81c\ud55c\ud558\uae30 \uc704\ud574 \ucd94\uac00 \uad6c\uc131\uc774 \uc218\ud589\ub429\ub2c8\ub2e4(<code>limit(3)<\/code>) \ubc0f \uc2e4\uc81c \ucffc\ub9ac\ub294 \uc774 \uc2dc\uc810\uc5d0\uc11c \uc0dd\uc131\ub429\ub2c8\ub2e4(<code>.build()<\/code>).<\/li>\n<li>\ucffc\ub9ac\uac00 \uc2e4\ud589\ub429\ub2c8\ub2e4(<code>bucket.query(ftq)<\/code>)\ub97c \ubc18\ud658\ud558\uace0 <code>\uac80\uc0c9 \ucffc\ub9ac \uacb0\uacfc<\/code>.<\/li>\n<li>\uacb0\uacfc\ub294 \ub2e4\uc74c\uacfc \uac19\uc774 \ucd9c\ub825\ub429\ub2c8\ub2e4. <code>totalHits()<\/code> \ubc0f \uac1c\ubcc4 \ud589(\ub97c \ud1b5\ud574 \ubaa9\ub85d\uc73c\ub85c \uc561\uc138\uc2a4\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4. <code>hits()<\/code>).<\/li>\n<\/ol>\n<p>\ud574\ub2f9 \ucf54\ub4dc\ub97c \uc2e4\ud589\ud558\uba74 \ucd9c\ub825\ub429\ub2c8\ub2e4:<\/p>\n<div>\n<pre class=\"line-numbers\"><code class=\"language-none\">\ucd1d \uc870\ud68c\uc218 31\r\nSearchQueryHit{id='dc_brau', score=0.09068310490562362, fragments={}}\r\nSearchQueryHit{id='brouwerij_nacional_balashi', score=0.12085760187148556, fragments={}}\r\nSearchQueryHit{id='cervecera_nacional', score=0.09863195902067363, fragments={}}<\/code><\/pre>\n<\/div>\n<p>\ucd1d \uc870\ud68c\uc218\ub294 \uc81c\ud55c\uc774 \uc801\uc6a9\ub418\uae30 \uc804\uc758 \uc2e4\uc81c \uc870\ud68c\uc218\uc785\ub2c8\ub2e4. \uadf8\ub9ac\uace0 <code>hits()<\/code> \uba54\uc11c\ub4dc\ub294 3\uc744 \ubc18\ud658\ud569\ub2c8\ub2e4. <code>\uac80\uc0c9 \ucffc\ub9ac \ud589<\/code> \uac1d\uccb4\ub97c \uc694\uccad\uc5d0 \ub530\ub77c \ucd94\uac00\ud569\ub2c8\ub2e4.<\/p>\n<p>\uac01 \ud788\ud2b8\uc5d0\ub294 Couchbase\uc5d0\uc11c \uc5f0\uacb0\ub41c \ubb38\uc11c\uc758 \ud0a4\uac00 \ud3ec\ud568\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4(<code>id()<\/code>), \ub9e4\uce6d\uc5d0 \ub300\ud55c \uc790\uc138\ud55c \uc815\ubcf4(\uc608: \ub9e4\uce6d \uc810\uc218(<code>\uc810\uc218()<\/code>)... \uc6d0\ud558\ub294 \uacbd\uc6b0 \ub2e4\uc74c\uc744 \uc0ac\uc6a9\ud558\uc5ec \uad00\ub828 \ubb38\uc11c\ub97c \uac80\uc0c9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <code>bucket.get(row.id())<\/code>:<\/p>\n<div>\n<pre class=\"line-numbers\"><code class=\"language-java\">result = bucket.query(ftq);\r\nSystem.out.println(\"totalHits: \" + result.totalHits());\r\nfor (SearchQueryRow row : result) {\r\n    System.out.println(row);\r\n    System.out.println(bucket.get(row.id()).content());\r\n}<\/code><\/pre>\n<\/div>\n<p>\uc774\ub807\uac8c \ud558\uba74 \uccab \ubc88\uc9f8 \ud788\ud2b8\uc791\uc774 \ub098\uc635\ub2c8\ub2e4:<\/p>\n<div>\n<pre class=\"line-numbers\"><code class=\"language-none\">SearchQueryHit{id='dc_brau', score=0.09068310490562362, fragments={}}\r\n{\"country\":\"United States\",\"website\":\"https:\/\/www.dcbrau.com\/\",\"code\":\"20018\",\"address\":[\"3178-B Bladensburg Rd. NE\"],\"city\":\"Washington\",\"phone\":\"\",\"name\":\"DC Brau\",\r\n\"description\":\"The first brewery to open in the nation's capital since Prohibition.\",\"state\":\"DC\",\"type\":\"brewery\",\"updated\":\"2011-08-08 19:02:40\"}<\/code><\/pre>\n<\/div>\n<p>\ubb38\uc11c\uc758 JSON\uc744 \uc790\uc138\ud788 \uc0b4\ud3b4\ubcf4\uba74 \ubb38\uc11c\uac00 \uc77c\uce58\ud558\ub294 \ubd80\ubd84\uc744 \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \"<code>\uc124\uba85<\/code>' \ud544\ub4dc\uc5d0 \uc774 \ubb38\uc7a5\uc774 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n<blockquote><p>\ucd5c\ucd08\uc758 \uc591\uc870\uc7a5 \uc624\ud508 <strong>\uad6d\uac00<\/strong>\uae08\uc9c0\ub839 \uc774\ud6c4 \uc218\ub3c4\ub85c \uc9c0\uc815\ub418\uc5c8\uc2b5\ub2c8\ub2e4.<\/p><\/blockquote>\n<p>\ub610\ud55c \ud14d\uc2a4\ud2b8 \ucffc\ub9ac\uac00 \uc694\uccad\ub41c \ub2e8\uc5b4\uc640 \uac19\uc740 \uc5b4\uadfc\uc744 \uac00\uc9c4 \ud30c\uc0dd\uc5b4\ub97c \ucc3e\uc558\uc74c\uc744 \uc54c \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc2e4\uc81c\ub85c\ub294 2\uc758 \ud37c\uc9c0\ub97c \uc801\uc6a9\ud588\uc2b5\ub2c8\ub2e4(\ub2e4\uc74c \uc139\uc158 \ucc38\uc870).<\/p>\n<p>\uc774 \ud328\ud134\uc740 \ub2e4\ub978 \uc720\ud615\uc758 \ucffc\ub9ac\uc5d0\ub3c4 \uc801\uc6a9\ud560 \uc218 \uc788\uc73c\ubbc0\ub85c \uba87 \uac00\uc9c0\ub97c \ub354 \uc0b4\ud3b4\ubcf4\uace0 \uc5b4\ub5a4 \uc885\ub958\uc758 \uac80\uc0c9\uc744 \uc218\ud589\ud560 \uc218 \uc788\ub294\uc9c0 \uc0b4\ud3b4 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<h2 id=\"toc_2\">\ub2e4\uc591\ud55c \uc720\ud615\uc758 \ucffc\ub9ac<\/h2>\n<h2 id=\"toc_3\">\ud37c\uc9c0 \ucffc\ub9ac<\/h2>\n<p>\ud37c\uc9c0 \ucffc\ub9ac\ub294 \ub2e4\uc74c\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc218\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <code>\ub9e4\uce58 \ucffc\ub9ac<\/code>\ub97c \uc9c0\uc815\ud558\uc5ec <a href=\"https:\/\/en.wikipedia.org\/wiki\/Levenshtein_distance\">\ub808\ubca4\uc288\ud0c0\uc778 \uac70\ub9ac<\/a> \ub97c \ucd5c\ub300 <code>fuzziness()<\/code> \ub97c \uc0ac\uc6a9\ud558\uc5ec \ud5c8\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n<div>\n<pre class=\"line-numbers\"><code class=\"language-java\">result = bucket.query(MatchQuery.on(\"beerIndex\")\r\n    .match(\"sammar\")\r\n    .field(\"name\")\r\n    .fuzziness(2) \/\/actually the default\r\n    .build());\r\n\r\nSystem.out.println(\"nFuzzy Match Query\");\r\nSystem.out.println(\"totalHits (fuzziness = 2): \" + result.totalHits());\r\nfor (SearchQueryRow row : result) {\r\n    System.out.println(bucket.get(row.id()).content().get(\"name\"));\r\n}<\/code><\/pre>\n<\/div>\n<p>\ud750\ub9bf\ud558\uac8c <strong>2<\/strong>\ub97c \uc785\ub825\ud558\uba74 '\ub9dd\uce58', '\ub9d8\ub9c8' \ub610\ub294 '\uc5ec\ub984'\uacfc \uac19\uc740 \ub2e8\uc5b4\uc640 \uc77c\uce58\ud569\ub2c8\ub2e4:<\/p>\n<div>\n<pre class=\"line-numbers\"><code class=\"language-none\">\ud37c\uc9c0 \ub9e4\uce58 \ucffc\ub9ac\r\ntotalHits(\ud37c\uc9c0 = 2): 45\r\n\ub9d8\ub9c8\ubbf8\uc544! \ud53c\uc790 \ub9e5\uc8fc\r\n\ub808\ub4dc\ud6c4\ud06c \ub871 \ud574\uba38 IPA\r\n\uc5ec\ub984 \ubc00<\/code><\/pre>\n<\/div>\n<p>\ud750\ub9bf\ud558\uac8c <strong>1<\/strong>\uc77c\uce58\ud558\ub294 \ud56d\ubaa9\uc774 \uc5c6\uc2b5\ub2c8\ub2e4:<\/p>\n<div>\n<pre class=\"line-numbers\"><code class=\"language-none\">\ud37c\uc9c0 \ub9e4\uce58 \ucffc\ub9ac\r\ntotalHits(\ud37c\uc9c0 = 1): 0<\/code><\/pre>\n<\/div>\n<p>\ubd84\uc11d\uae30\ub97c \uc801\uc6a9\ud558\uc9c0 \uc54a\uace0 \ud37c\uc9c0 \uc804\uc6a9 \ucffc\ub9ac \uc720\ud615\ub3c4 \uc81c\uacf5\ub429\ub2c8\ub2e4. <code>\ud37c\uc9c0 \ucffc\ub9ac<\/code>.<\/p>\n<h2 id=\"toc_4\">\uc5ec\ub7ec \uc6a9\uc5b4: MatchPhrase<\/h2>\n<p>\uc55e\uc11c \uc0b4\ud3b4\ubcf8 \uac83\ucc98\ub7fc <code>\ub9e4\uce58 \ucffc\ub9ac<\/code> \ub294 \uc6a9\uc5b4 \uae30\ubc18 \ucffc\ub9ac\ub85c, \uc120\ud0dd\uc801\uc73c\ub85c \ud37c\uc9c0\ub97c \uc9c0\uc815\ud560 \uc218 \uc788\uc73c\uba70 \ud544\ub4dc\uc5d0 \uc801\uc6a9\ub418\uc5c8\uc744 \uc218 \uc788\ub294 \uac80\uc0c9\ub41c \uc6a9\uc5b4(\uc608: \uc5b4\uac04 \ub4f1)\uc5d0\ub3c4 \ub3d9\uc77c\ud55c \ud544\ud130\ub97c \uc801\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n<div>\n<pre class=\"line-numbers\"><code class=\"language-java\">MatchQuery.on(\"beerIndex\")\r\n    .match(\"sesonal\")\r\n    .fuzziness(2)\r\n    .field(\"description\").build();<\/code><\/pre>\n<\/div>\n<p>\ub2e4\uc74c\uc744 \uc0ac\uc6a9\ud558\uc5ec \ub2e8\uc77c \ucffc\ub9ac\uc5d0\uc11c \uc5ec\ub7ec \uc6a9\uc5b4\ub97c \uac80\uc0c9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <code>\uad6c\ubb38 \uc77c\uce58<\/code> \ucffc\ub9ac. \uc6a9\uc5b4\uac00 \ubd84\uc11d\ub418\uace0 \uc120\ud0dd\uc801\uc73c\ub85c \ud37c\uc9c0 \uae30\ub2a5\uc744 \ud65c\uc131\ud654\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n<div>\n<pre class=\"line-numbers\"><code class=\"language-java\">MatchPhraseQuery.on(\"beerIndex\").matchPhrase(\"summer seasonal\").field(\"description\");<\/code><\/pre>\n<\/div>\n<h2 id=\"toc_5\">\uc815\uaddc\uc2dd \ucffc\ub9ac<\/h2>\n<p>A <code>RegexpQuery<\/code> \ub294 \ub9ac\ud130\ub7f4 \ub9e4\uce6d\ub9cc \ud558\ub294 \uac83\uc774 \uc544\ub2c8\ub77c \uc815\uaddc\uc2dd\uc744 \uc0ac\uc6a9\ud558\uc5ec \ub9e4\uce6d\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uc608\uc2dc\ub97c \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4:<\/p>\n<div>\n<pre class=\"line-numbers\"><code class=\"language-java\">result = bucket.query(RegexpQuery.on(\"beerIndex\")\r\n    .regexp(\"[tp]ale\")\r\n    .field(\"name\")\r\n    .build());\r\n\r\nSystem.out.println(\"nRegexp Query\");\r\nSystem.out.println(\"totalHits: \" + result.totalHits());\r\nfor (SearchQueryRow row : result) {\r\n    System.out.println(bucket.get(row.id()).content().get(\"name\"));\r\n}<\/code><\/pre>\n<\/div>\n<p>\uc774 \ucffc\ub9ac\ub294 json\uc758 \ud2b9\uc815 \ud544\ub4dc(<code>field(\"name\")<\/code>). \"tale\" \ub610\ub294 \"pale\"\uc774 \ud3ec\ud568\ub41c \ubaa8\ub4e0 \uc774\ub984\uc744 \uc6d0\ud569\ub2c8\ub2e4. \ub2e4\uc74c\uc740 \uc774 \ucffc\ub9ac\uc640 \uc77c\uce58\ud558\ub294 \uba87 \uac00\uc9c0 \uc774\ub984\uc785\ub2c8\ub2e4:<\/p>\n<div>\n<pre class=\"line-numbers\"><code class=\"language-none\">\uc815\uaddc\uc2dd \ucffc\ub9ac\r\ntotalHits: 408\r\n\ud1a8 \ud14c\uc77c \ud398\uc77c \uc5d0\uc77c\r\n\ubc14\ub4dc \ud14c\uc77c \ub9e5\uc8fc \ud68c\uc0ac\r\n\ud398\uc77c \uc5d0\uc77c<\/code><\/pre>\n<\/div>\n<h2 id=\"toc_6\">\uc811\ub450\uc0ac \ucffc\ub9ac<\/h2>\n<p>A <code>\uc811\ub450\uc0ac \ucffc\ub9ac<\/code> \ub294 \uc8fc\uc5b4\uc9c4 \ubb38\uc790\uc5f4\ub85c \uc2dc\uc791\ud558\ub294 \ub2e8\uc5b4\uac00 \uc788\ub294\uc9c0 \ucc3e\uc2b5\ub2c8\ub2e4:<\/p>\n<div>\n<pre class=\"line-numbers\"><code class=\"language-java\">result = bucket.query(PrefixQuery.on(\"beerIndex\")\r\n    .prefix(\"weiss\")\r\n    .field(\"name\")\r\n    .build());\r\n\r\nSystem.out.println(\"nPrefix Query\");\r\nSystem.out.println(\"totalHits: \" + result.totalHits());\r\nfor (SearchQueryRow row : result) {\r\n    System.out.println(bucket.get(row.id()).content().get(\"name\"));\r\n}<\/code><\/pre>\n<\/div>\n<p>\ub2e4\uc2dc \ud55c \ubc88 \uc6b0\ub9ac\ub294 <code>\uc774\ub984<\/code> \ud544\ub4dc\uc5d0 \"weiss\"\ub85c \uc2dc\uc791\ud558\ub294 \ub2e8\uc5b4\ub97c \uc785\ub825\ud569\ub2c8\ub2e4:<\/p>\n<div>\n<pre class=\"line-numbers\"><code class=\"language-none\">Prefix Query\r\ntotalHits: 74\r\nBavarian-Weissbier Hefeweisse \/ Weisser Hirsch\r\nM\u00fcnchner Kindl Weissbier \/ M\u00fcnchner Weisse\r\nFranziskaner Hefe-Weissbier Hell  \/ Franziskaner Club-Weiss\r\nWeissenheimer Wheat<\/code><\/pre>\n<\/div>\n<h2 id=\"toc_7\">\ubc94\uc704 \ubc0f \ub0a0\uc9dc \ucffc\ub9ac<\/h2>\n<p><code>FTS<\/code> \ub294 \ud14d\uc2a4\ud2b8\uac00 \uc544\ub2cc \ub370\uc774\ud130\uc5d0\ub3c4 \uc720\uc6a9\ud569\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4 <code>\uc22b\uc790 \ubc94\uc704 \ucffc\ub9ac<\/code> \ub97c \uc0ac\uc6a9\ud558\uba74 \uc81c\uacf5\ub41c \ubc94\uc704 \ub0b4\uc5d0\uc11c \uc22b\uc790 \uac12\uc744 \ucc3e\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n<div>\n<pre class=\"line-numbers\"><code class=\"language-java\">result = bucket.query(NumericRangeQuery.on(\"beerIndex\")\r\n    .min(3)\r\n    .max(4)\r\n    .field(\"abv\")\r\n    .fields(\"name\", \"abv\")\r\n    .build());\r\n\r\nSystem.out.println(\"nNumeric Range Query\");\r\nSystem.out.println(\"totalHits: \" + result.totalHits());\r\nfor (SearchQueryRow row : result) {\r\n    JsonDocument doc = bucket.get(row.id());\r\n    System.out.println(\"\"\" + doc.content().get(\"name\") + \"\", abv: \" + doc.content().get(\"abv\"));\r\n}<\/code><\/pre>\n<\/div>\n<p>\uc5b4\ub5a4 \ucd9c\ub825:<\/p>\n<div>\n<pre class=\"line-numbers\"><code class=\"language-none\">Numeric Range Query\r\ntotalHits: 62\r\n\"Stud Service Stout\", abv: 3.1\r\n\"Blonde\", abv: 3.0\r\n\"Locke Mountain Light\", abv: 3.7<\/code><\/pre>\n<\/div>\n<p>\ub0a0\uc9dc\ub294 <code>\ub0a0\uc9dc \ubc94\uc704 \ucffc\ub9ac<\/code>:<\/p>\n<div>\n<pre class=\"line-numbers\"><code class=\"language-java\">Calendar calendar = Calendar.getInstance();\r\ncalendar.set(2011, Calendar.MARCH, 1);\r\nDate start = calendar.getTime();\r\ncalendar.set(2011, Calendar.APRIL, 1);\r\nDate end = calendar.getTime();\r\n\r\nresult = bucket.query(DateRangeQuery.on(\"beerIndex\")\r\n    .start(start)\r\n    .end(end)\r\n    .field(\"updated\")\r\n    .fields(\"name\", \"updated\")\r\n    .build());\r\n\r\nSystem.out.println(\"nDate Range Query\");\r\nSystem.out.println(\"totalHits: \" + result.totalHits());\r\nfor (SearchQueryRow row : result) {\r\n    JsonDocument doc = bucket.get(row.id());\r\n    System.out.println(\"\"\" + doc.content().get(\"name\") + \"\", updated: \" + doc.content().get(\"updated\"));\r\n}    <\/code><\/pre>\n<\/div>\n<p>\uc5b4\ub5a4 \ucd9c\ub825:<\/p>\n<div>\n<pre class=\"line-numbers\"><code class=\"language-none\">Date Range Query\r\ntotalHits: 4\r\n\"Dank\", updated: 2011-03-16 09:06:54\r\n\"Oso\", updated: 2011-03-16 09:05:15\r\n\"Summer Teeth\", updated: 2011-03-08 12:22:14\r\n\"Columbus Brewing Company\", updated: 2011-03-08 12:19:07<\/code><\/pre>\n<\/div>\n<h2 id=\"toc_8\">\uc77c\ubc18 \ucffc\ub9ac<\/h2>\n<p><code>FTS<\/code> \ub97c \uc0ac\uc6a9\ud558\uc5ec \uad6c\ubb38, \uc6a9\uc5b4 \ub4f1\uc744 \uacb0\ud569\ud558\ub294 \ubcf4\ub2e4 \uc77c\ubc18\uc801\uc778 \ud615\ud0dc\uc758 \ucffc\ub9ac\ub3c4 \uc81c\uacf5\ud569\ub2c8\ub2e4. <a href=\"https:\/\/www.blevesearch.com\/docs\/Query-String-Query\/\"><code>\ubb38\uc790\uc5f4 \ucffc\ub9ac \uad6c\ubb38<\/code><\/a>. \uc774\ub294 API\uc5d0\uc11c <code>\ubb38\uc790\uc5f4 \ucffc\ub9ac<\/code>.<\/p>\n<h2 id=\"toc_9\">\uacb0\ud569<\/h2>\n<p>\ub610\ud55c \ub2e4\uc74c\uacfc \uac19\uc740 \uac04\ub2e8\ud55c \uae30\uc900\uc744 \uacb0\ud569\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <code>\ub9e4\uce58 \ucffc\ub9ac<\/code> \uc870\ud569 \ucffc\ub9ac\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \uc774 \ub450 \uac00\uc9c0 \uac04\ub2e8\ud55c \uc6a9\uc5b4 \ucffc\ub9ac\ub97c \uc608\ub85c \ub4e4\uc5b4 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4:<\/p>\n<div>\n<pre class=\"line-numbers\"><code class=\"language-java\">MatchQuery bitterQuery = MatchQuery.on(\"beerIndex\").match(\"bitter\").field(\"description\").build();\r\nMatchQuery maltyQuery = MatchQuery.on(\"beerIndex\").match(\"malty\").field(\"description\").build();<\/code><\/pre>\n<\/div>\n<p>\ub2e4\uc591\ud55c \ubc29\uc2dd\uc73c\ub85c \uc870\ud569\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n<ul>\n<li>a <code>\uacb0\ud569<\/code> \ubaa8\ub4e0 \uc6a9\uc5b4\ub97c \ucc3e\uc2b5\ub2c8\ub2e4.<\/li>\n<\/ul>\n<div>\n<pre class=\"line-numbers\"><code class=\"language-java\"> ConjunctionQuery.on(\"beerIndex\").conjuncts(bitterQuery, maltyQuery)<\/code><\/pre>\n<\/div>\n<ul>\n<li>a <code>\ubd84\ub9ac<\/code> \uc801\uc5b4\ub3c4 \ud558\ub098\uc758 \uc6a9\uc5b4\ub97c \ucc3e\uc2b5\ub2c8\ub2e4.<\/li>\n<\/ul>\n<div>\n<pre class=\"line-numbers\"><code class=\"language-java\"> DisjunctionQuery.on(\"beerIndex\").disjuncts(bitterQuery, maltyQuery)<\/code><\/pre>\n<\/div>\n<ul>\n<li>a <code>\ubd80\uc6b8 \ucffc\ub9ac<\/code> \ub97c \uc0ac\uc6a9\ud558\uba74 \ub450 \uac00\uc9c0 \uc811\uadfc \ubc29\uc2dd\uc744 \uacb0\ud569\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<\/ul>\n<div>\n<pre class=\"line-numbers\"><code class=\"language-java\"> BooleanQuery.on(\"beerIndex\").must(bitterQuery).mustNot(maltyQuery)<\/code><\/pre>\n<\/div>\n<h2 id=\"toc_10\">\ud788\ud2b8 \uc124\uba85 \ubc1b\uae30<\/h2>\n<p>\ud2b9\uc815 \ud56d\ubaa9\uc758 \uc810\uc218 \ubc0f \ub9e4\uce6d\uc5d0 \ub300\ud55c \uc778\uc0ac\uc774\ud2b8\ub97c \uc5bb\uace0\uc790 \ud558\ub294 \uacbd\uc6b0 <code>\uac80\uc0c9 \ucffc\ub9ac \ud589<\/code>\ub97c \uc0ac\uc6a9\ud558\uc5ec \ucffc\ub9ac\ub97c \uc791\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <code>.explain(true)<\/code> \ub9e4\uac1c \ubcc0\uc218\ub97c \uc0ac\uc6a9\ud558\uace0 \uacb0\uacfc\uc758 \uc778\ub371\uc2a4\uc5d0\uc11c \uc138\ubd80 \uc815\ubcf4\ub97c \uac00\uc838\uc635\ub2c8\ub2e4. <code>\uc124\uba85()<\/code> \ud544\ub4dc\uc5d0 \uc785\ub825\ud569\ub2c8\ub2e4:<\/p>\n<div>\n<pre class=\"line-numbers\"><code class=\"language-javascript\">{\"message\":\"sum of:\",\"children\":[{\"message\":\"product of:\",\"children\":[{\"message\":\"sum of:\",\"children\":[{\"message\":\"product of:\",\"children\":[{\"message\":\"sum of:\",\"children\":[\r\n{\r\n    \"message\": \"weight(_all:national^1.000000 in penn_brewery-penn_marzen), product of:\",\r\n    \"children\": [\r\n        {\r\n            \"message\": \"queryWeight(_all:national^1.000000), product of:\",\r\n            \"children\": [\r\n                {\r\n                    \"message\": \"boost\",\r\n                    \"value\": 1\r\n                },\r\n                {\r\n                    \"message\": \"idf(docFreq=17, maxDocs=7303)\",\r\n                    \"value\": 7.005668743723945\r\n                },\r\n                {\r\n                    \"message\": \"queryNorm\",\r\n                    \"value\": 0.1427415478209491\r\n                }\r\n            ],\r\n            \"value\": 0.9999999999999999\r\n        },\r\n        {\r\n            \"message\": \"fieldWeight(_all:national in penn_brewery-penn_marzen), product of:\",\r\n            \"children\": [\r\n                {\r\n                    \"message\": \"tf(termFreq(_all:national)=1\",\r\n                    \"value\": 1\r\n                },\r\n                {\r\n                    \"message\": \"fieldNorm(field=_all, doc=penn_brewery-penn_marzen)\",\r\n                    \"value\": 0.10000000149011612\r\n                },\r\n                {\r\n                    \"message\": \"idf(docFreq=17, maxDocs=7303)\",\r\n                    \"value\": 7.005668743723945\r\n                }\r\n            ],\r\n            \"value\": 0.7005668848116544\r\n        }\r\n    ],\r\n    \"value\": 0.7005668848116543\r\n}    ],\"value\":0.7005668848116543},{\"message\":\"coord(1\/1)\",\"value\":1}],\"value\":0.7005668848116543}],\"value\":0.7005668848116543},{\"message\":\"coord(1\/1)\",\"value\":1}],\"value\":0.7005668848116543}],\"value\":0.7005668848116543}<\/code><\/pre>\n<\/div>\n<h2 id=\"toc_11\">\uacb0\ub860<\/h2>\n<p>\uc774\ubc88 API \ubbf8\ub9ac\ubcf4\uae30\uac00 \uc5ec\ub7ec\ubd84\uc758 \uad00\uc2ec\uc744 \ubd88\ub7ec\uc77c\uc73c\ucf30\uae30\ub97c \ubc14\ub78d\ub2c8\ub2e4!<\/p>\n<p>\uccab \ubc88\uc9f8 <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/4-5-dp\/\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 4.5 \uac1c\ubc1c\uc790 \ud504\ub9ac\ubdf0<\/a> \uc804\uccb4 \ud14d\uc2a4\ud2b8 \uac80\uc0c9 \uc11c\ube44\uc2a4\uac00 \ub0b4\uc7a5\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. \uad00\ub828 \ub9c1\ud06c\ub97c \uc0ac\uc6a9\ud558\uc5ec \ube60\ub974\uac8c \uac80\uc0c9\uc744 \uc2dc\uc791\ud560 \uc218 \uc788\uae30\ub97c \ubc14\ub78d\ub2c8\ub2e4. <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/4.1\/sdks\/java-2.2\/download-links.html\">Java SDK API<\/a>.<\/p>\n<p>\uadf8\ub9ac\uace0 \uadf8\ub54c\uae4c\uc9c0\ub294... <strong>\ud589\ubcf5\ud55c \ucf54\ub529!<\/strong><br \/>\n&#8211; <em>Java SDK \ud300<\/em><\/p>","protected":false},"excerpt":{"rendered":"<p>In this blog post, we&#8217;ll have a look at the preview API for full text search in Couchbase 4.5. Please note that this API, released in the latest Java SDK \u00a0(2.2.4), is still @Experimental. We&#8217;ll cover: Full Text Search in [&hellip;]<\/p>","protected":false},"author":48,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1816,2165,1818],"tags":[1584,1583,1466],"ppma_author":[9022],"class_list":["post-2149","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server","category-full-text-search","category-java","tag-bleve","tag-cbft","tag-preview"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.8 (Yoast SEO v25.8) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Preview of Full Text Search in Couchbase using the Java SDK<\/title>\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\/cbftjavapreview\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Preview of Full Text Search in Couchbase using the Java SDK\" \/>\n<meta property=\"og:description\" content=\"In this blog post, we&#8217;ll have a look at the preview API for full text search in Couchbase 4.5. Please note that this API, released in the latest Java SDK \u00a0(2.2.4), is still @Experimental. We&#8217;ll cover: Full Text Search in [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/ko\/cbftjavapreview\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2016-02-24T17:06:22+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T03:59:48+00:00\" \/>\n<meta name=\"author\" content=\"Simon Basle, Software Engineer, Pivotal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Simon Basle, Software Engineer, Pivotal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/cbftjavapreview\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/cbftjavapreview\/\"},\"author\":{\"name\":\"Simon Basle, Software Engineer, Pivotal\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/a4086d75b59570cc2e5ff66d98c5d1a1\"},\"headline\":\"Preview of Full Text Search in Couchbase using the Java SDK\",\"datePublished\":\"2016-02-24T17:06:22+00:00\",\"dateModified\":\"2025-06-14T03:59:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/cbftjavapreview\/\"},\"wordCount\":1090,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/cbftjavapreview\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"bleve\",\"cbft\",\"preview\"],\"articleSection\":[\"Couchbase Server\",\"Full-Text Search\",\"Java\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/cbftjavapreview\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/cbftjavapreview\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/cbftjavapreview\/\",\"name\":\"Preview of Full Text Search in Couchbase using the Java SDK\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/cbftjavapreview\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/cbftjavapreview\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2016-02-24T17:06:22+00:00\",\"dateModified\":\"2025-06-14T03:59:48+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/cbftjavapreview\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/cbftjavapreview\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/cbftjavapreview\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/cbftjavapreview\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Preview of Full Text Search in Couchbase using the Java SDK\"}]},{\"@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\/a4086d75b59570cc2e5ff66d98c5d1a1\",\"name\":\"Simon Basle, Software Engineer, Pivotal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/4b2bcd169f85f21cee7b8a0e0c9e7854\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/3c3aec94782fea5f0a199368c15e836198faf05c1591e0ae0b91178a59457781?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/3c3aec94782fea5f0a199368c15e836198faf05c1591e0ae0b91178a59457781?s=96&d=mm&r=g\",\"caption\":\"Simon Basle, Software Engineer, Pivotal\"},\"description\":\"Simon Basl_ is a Paris-based Software Engineer working in the Spring team at Pivotal. Previously, he worked in the Couchbase Java SDK team. His interests span software design aspects (OOP, design patterns, software architecture), rich clients, what lies beyond code (continuous integration, (D)VCS, best practices), and reactive programming. He is also an editor for the French version of InfoQ.com.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/ko\/author\/simon-basle\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Java SDK\ub97c \uc0ac\uc6a9\ud55c Couchbase\uc758 \uc804\uccb4 \ud14d\uc2a4\ud2b8 \uac80\uc0c9 \ubbf8\ub9ac\ubcf4\uae30","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\/cbftjavapreview\/","og_locale":"ko_KR","og_type":"article","og_title":"Preview of Full Text Search in Couchbase using the Java SDK","og_description":"In this blog post, we&#8217;ll have a look at the preview API for full text search in Couchbase 4.5. Please note that this API, released in the latest Java SDK \u00a0(2.2.4), is still @Experimental. We&#8217;ll cover: Full Text Search in [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/ko\/cbftjavapreview\/","og_site_name":"The Couchbase Blog","article_published_time":"2016-02-24T17:06:22+00:00","article_modified_time":"2025-06-14T03:59:48+00:00","author":"Simon Basle, Software Engineer, Pivotal","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Simon Basle, Software Engineer, Pivotal","Est. reading time":"6\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/cbftjavapreview\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/cbftjavapreview\/"},"author":{"name":"Simon Basle, Software Engineer, Pivotal","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/a4086d75b59570cc2e5ff66d98c5d1a1"},"headline":"Preview of Full Text Search in Couchbase using the Java SDK","datePublished":"2016-02-24T17:06:22+00:00","dateModified":"2025-06-14T03:59:48+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/cbftjavapreview\/"},"wordCount":1090,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/cbftjavapreview\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["bleve","cbft","preview"],"articleSection":["Couchbase Server","Full-Text Search","Java"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/cbftjavapreview\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/cbftjavapreview\/","url":"https:\/\/www.couchbase.com\/blog\/cbftjavapreview\/","name":"Java SDK\ub97c \uc0ac\uc6a9\ud55c Couchbase\uc758 \uc804\uccb4 \ud14d\uc2a4\ud2b8 \uac80\uc0c9 \ubbf8\ub9ac\ubcf4\uae30","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/cbftjavapreview\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/cbftjavapreview\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2016-02-24T17:06:22+00:00","dateModified":"2025-06-14T03:59:48+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/cbftjavapreview\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/cbftjavapreview\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/cbftjavapreview\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/cbftjavapreview\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Preview of Full Text Search in Couchbase using the Java SDK"}]},{"@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\/a4086d75b59570cc2e5ff66d98c5d1a1","name":"Simon Basle, \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uc5d4\uc9c0\ub2c8\uc5b4, \ud53c\ubcf4\ud0c8","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/4b2bcd169f85f21cee7b8a0e0c9e7854","url":"https:\/\/secure.gravatar.com\/avatar\/3c3aec94782fea5f0a199368c15e836198faf05c1591e0ae0b91178a59457781?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3c3aec94782fea5f0a199368c15e836198faf05c1591e0ae0b91178a59457781?s=96&d=mm&r=g","caption":"Simon Basle, Software Engineer, Pivotal"},"description":"Simon Basl_\uc740 \ud30c\ub9ac\uc5d0 \uac70\uc8fc\ud558\ub294 \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uc5d4\uc9c0\ub2c8\uc5b4\ub85c \ud53c\ubcf4\ud0c8\uc758 Spring \ud300\uc5d0\uc11c \uadfc\ubb34\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uc774\uc804\uc5d0\ub294 Couchbase Java SDK \ud300\uc5d0\uc11c \uadfc\ubb34\ud588\uc2b5\ub2c8\ub2e4. \uadf8\uc758 \uad00\uc2ec \ubd84\uc57c\ub294 \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uc124\uacc4 \uce21\uba74(OOP, \ub514\uc790\uc778 \ud328\ud134, \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uc544\ud0a4\ud14d\ucc98), \ub9ac\uce58 \ud074\ub77c\uc774\uc5b8\ud2b8, \ucf54\ub4dc \ub108\uba38\uc758 \uac83(\uc9c0\uc18d\uc801 \ud1b5\ud569, (D)VCS, \ubaa8\ubc94 \uc0ac\ub840), \ubc18\uc751\ud615 \ud504\ub85c\uadf8\ub798\ubc0d \ub4f1 \ub2e4\uc591\ud569\ub2c8\ub2e4. \ub610\ud55c \ud504\ub791\uc2a4\uc5b4 \ubc84\uc804\uc758 InfoQ.com\uc758 \ud3b8\uc9d1\uc790\uc774\uae30\ub3c4 \ud569\ub2c8\ub2e4.","url":"https:\/\/www.couchbase.com\/blog\/ko\/author\/simon-basle\/"}]}},"authors":[{"term_id":9022,"user_id":48,"is_guest":0,"slug":"simon-basle","display_name":"Simon Basle, Software Engineer, Pivotal","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/3c3aec94782fea5f0a199368c15e836198faf05c1591e0ae0b91178a59457781?s=96&d=mm&r=g","author_category":"","last_name":"Basle","first_name":"Simon","job_title":"","user_url":"","description":"Simon Basl_\uc740 \ud30c\ub9ac\uc5d0 \uac70\uc8fc\ud558\ub294 \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uc5d4\uc9c0\ub2c8\uc5b4\ub85c \ud53c\ubcf4\ud0c8\uc758 Spring \ud300\uc5d0\uc11c \uadfc\ubb34\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uc774\uc804\uc5d0\ub294 Couchbase Java SDK \ud300\uc5d0\uc11c \uadfc\ubb34\ud588\uc2b5\ub2c8\ub2e4. \uadf8\uc758 \uad00\uc2ec \ubd84\uc57c\ub294 \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uc124\uacc4 \uce21\uba74(OOP, \ub514\uc790\uc778 \ud328\ud134, \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uc544\ud0a4\ud14d\ucc98), \ub9ac\uce58 \ud074\ub77c\uc774\uc5b8\ud2b8, \ucf54\ub4dc \ub108\uba38\uc758 \uac83(\uc9c0\uc18d\uc801 \ud1b5\ud569, (D)VCS, \ubaa8\ubc94 \uc0ac\ub840), \ubc18\uc751\ud615 \ud504\ub85c\uadf8\ub798\ubc0d \ub4f1 \ub2e4\uc591\ud569\ub2c8\ub2e4. \ub610\ud55c \ud504\ub791\uc2a4\uc5b4 \ubc84\uc804\uc758 InfoQ.com\uc758 \ud3b8\uc9d1\uc790\uc774\uae30\ub3c4 \ud569\ub2c8\ub2e4."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/2149","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\/48"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/comments?post=2149"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/2149\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media?parent=2149"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=2149"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=2149"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=2149"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}