{"id":11156,"date":"2021-05-10T02:37:44","date_gmt":"2021-05-10T09:37:44","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=11156"},"modified":"2025-06-13T20:27:34","modified_gmt":"2025-06-14T03:27:34","slug":"the-life-of-a-full-text-search-query","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/ko\/the-life-of-a-full-text-search-query\/","title":{"rendered":"\uc804\uccb4 \ud14d\uc2a4\ud2b8 \uac80\uc0c9 \ucffc\ub9ac\uc758 \uc218\uba85"},"content":{"rendered":"\r\n<p>This technical article showcases the life of a Full Text Search query through a distributed Couchbase system as it originates from a client to until a response is received.<\/p>\r\n\r\n\r\n\r\n<p>Before diving into the server world, a little about the client &#8211; here&#8217;s where or what it could be &#8230;<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>on a system where the user has an application\/program that uses one of Couchbase\u2019s SDKs or simply a curl\/HTTP (REST) request typed up to connect to a distributed Couchbase cluster<\/li>\r\n<li>the Couchbase search UI on one of the servers in the cluster<\/li>\r\n<li>the Couchbase query workbench on one of the servers in the cluster<\/li>\r\n<li>the Couchbase query command line interface on one of the servers in the cluster<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p>Think this might be the right time to know (if you don\u2019t already) that Couchbase hosts a distributed Full Text Search service that requires configuration. This means that if you set up a Full Text Search index over one such cluster to ingest data from a Couchbase bucket, you will be allowed to partition the index among multiple servers.<\/p>\r\n\r\n\r\n\r\n<p>If you\u2019re unfamiliar with how to set up a Full Text Search index on Couchbase, now may be a great time to check out our documentation <a href=\"https:\/\/docs.couchbase.com\/server\/6.6\/fts\/full-text-intro.html\">here<\/a>. For details on the various kinds of queries that the search service supports, click <a href=\"https:\/\/docs.couchbase.com\/server\/6.6\/fts\/fts-query-types.html\">here<\/a>.<\/p>\r\n\r\n\r\n\r\n<p>An advanced user would likely split their index into enough partitions so the indexed data is evenly (more or less) distributed across the cluster of servers hosting the &#8220;search&#8221; service. They will also NOT need to worry about searching across the distributed data when they shoot a query to the system &#8211; the search services will communicate within the cluster to put together a complete response for the user.<\/p>\r\n\r\n\r\n\r\n<p>Before we go into the details, here\u2019s a GIF illustrating a user that receives a response after sending a request (query) from a client. Their Couchbase cluster has a Full Text Search index that\u2019s partitioned into <strong>six<\/strong> parts over <strong>three<\/strong> servers hosting the search service.<\/p>\r\n\r\n\r\n\r\n<div class=\"wp-block-image\">\r\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/XKrIMUcBnjNF4ctForwXdFe3zH4PiP5V6--Ffw7HTeXZTzyPre6BSQ9SF5dNwwkx_vvuwLJT3Q-eH8zzOB2Js2HqjpugBIFNgucKni1dZHFfMTCtopGPoJWQn-J-dMc88LGpCZVT\" alt=\"\" \/><\/figure>\r\n<\/div>\r\n\r\n\r\n\r\n<p>A Full Text Search query once built at the client can be targeted to any server in the Couchbase cluster hosting the search service. Here are the stages it goes through &#8230;<\/p>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\">\r\n<li>The server that the client targets the search request to assumes the role of the orchestrator or the <strong>coordinating node<\/strong> once it receives the external request.<\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\" start=\"2\">\r\n<li>The coordinating node first looks up the index (making sure it exists).<\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\" start=\"3\">\r\n<li>The coordinating node obtains the &#8220;plan&#8221; that the index was deployed with. The plan contains details on how many partitions the index was split into and all the servers\u2019 information where any of these partitions reside.<\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\" start=\"4\">\r\n<li>The coordinating node sets up a unique list of servers that it needs to dispatch an &#8220;internal&#8221; request to. A server in the Couchbase cluster is eligible if and only if it hosts a partition belonging to the index under consideration.<\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\" start=\"5\">\r\n<li>Once the internal requests have been dispatched by the coordinating node to each of the servers, it&#8217;ll wait to hear back from them. Simultaneously, if any of the index\u2019s partitions are resident on the coordinating node &#8211; search requests are dispatched to each of those partitions as well (disk-bound).<\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\" start=\"6\">\r\n<li>Those servers in the cluster that receive the &#8220;internal&#8221; request from the coordinating node will forward it to each of the index partitions they host (disk-bound).<\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\" start=\"7\">\r\n<li>Separate search requests that are dispatched concurrently to all index partitions resident within a server and the server waits to hear back from them.<\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\" start=\"8\">\r\n<li>Once the server hears back from all the partitions it hosts, it merges the results obtained from each of the partitions before packaging them into a response and shipping it back to the coordinating node.<\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\" start=\"9\">\r\n<li>So to sum it up, the coordinating node waits for responses from &#8230;\r\n<ul>\r\n<li>each of the index partitions resident within the node<\/li>\r\n<li>each of the servers in the cluster that it dispatched the internal request to<\/li>\r\n<\/ul>\r\n<\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\" start=\"10\">\r\n<li>Once all the results from the local index partitions and the remote index partitions are obtained, the coordinating node merges all of them, packages them into a response,and ships them back to the client where the request originated.<\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<p>This sequence of steps is what we, here at Couchbase refer to as the Full Text Search service\u2019s <em>scatter-gather<\/em> operation.<\/p>\r\n\r\n\r\n\r\n<p>The search request that the user needs to\u00a0 put together at the client encapsulates the search query and optionally &#8211; a number of filters for pagination, sorting, scoring, etc. Click <a href=\"https:\/\/docs.couchbase.com\/server\/6.6\/fts\/fts-queries.html\">here<\/a> for documentation on search request settings and available options. Here&#8217;s a sample search request on the index <code>travels<\/code> using curl &#8230;<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\">curl -XPOST -H \"Content-type:application\/json\" -u username:password\r\nhttps:\/\/127.0.0.1:8094\/api\/index\/travels\/query -d\r\n'{\"query\": {\"match\": \"travel\"}, \"size\": 3}'<\/pre>\r\n\r\n\r\n\r\n<p>Like the search request, the search response is also in JSON format. Here\u2019s a sample response showing the top three hits aggregated from six index partitions for the above request &#8230;<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\">{\r\n  \"status\": {\r\n    \"total\": 6,\r\n    \"failed\": 0,\r\n    \"successful\": 6\r\n  },\r\n  \"request\": {\r\n    \"query\": {\r\n      \"match\": \"travel\",\r\n      \"prefix_length\": 0,\r\n      \"fuzziness\": 0,\r\n      \"operator\": \"or\"\r\n    },\r\n    \"size\": 3,\r\n    \"from\": 0,\r\n    \"highlight\": null,\r\n    \"fields\": null,\r\n    \"facets\": null,\r\n    \"explain\": false,\r\n    \"sort\": [\r\n        \"-_score\"\r\n    ],\r\n    \"includeLocations\": false,\r\n    \"search_after\": null,\r\n    \"search_before\": null\r\n  },\r\n  \"hits\": [\r\n    {\r\n      \"index\": \"travels_171257755a51518a_54820232\",\r\n      \"id\": \"landmark_22398\",\r\n      \"score\": 0.7297252942480978,\r\n      \"sort\": [\r\n        \"_score\"\r\n      ]\r\n    },\r\n    {\r\n      \"index\": \"travels_171257755a51518a_13aa53f3\",\r\n      \"id\": \"landmark_12338\",\r\n      \"score\": 0.6413638317042266,\r\n      \"sort\": [\r\n        \"_score\"\r\n      ]\r\n    },\r\n    {\r\n      \"index\": \"travels_171257755a51518a_f4e0a48a\",\r\n      \"id\": \"landmark_7369\",\r\n      \"score\": 0.6156080123720656,\r\n      \"sort\": [\r\n        \"_score\"\r\n      ]\r\n    }\r\n  ],\r\n  \"total_hits\": 205,\r\n  \"max_score\": 0.7297252942480978,\r\n  \"took\": 804766,\r\n  \"facets\": null\r\n}<\/pre>\r\n\r\n\r\n\r\n<p>As for the contents of the search response &#8230;<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>The &#8220;<strong>status<\/strong>&#8221; field contains &#8230;\r\n<ul>\r\n<li>the &#8220;<strong>total<\/strong>&#8221; number of partitions for the index that the results were obtained and merged from<\/li>\r\n<li>the number of those partitions that were &#8220;<strong>successful<\/strong>&#8221; in responding to the request<\/li>\r\n<li>the number of those partitions that &#8220;<strong>failed<\/strong>&#8221; to respond to the request for whatever reason<\/li>\r\n<\/ul>\r\n<\/li>\r\n<li>The &#8220;<strong>request<\/strong>&#8221; field holds the search request (query) that was received from the client.<\/li>\r\n<li>&#8220;<strong>hits<\/strong>&#8221; is an array of objects, where each object is essentially a result or a document hit.\r\n<ul>\r\n<li>The &#8220;<strong>index<\/strong>&#8221; field within each object is the index partition where the document resides<\/li>\r\n<li>The &#8220;<strong>id<\/strong>&#8221; is the document key as inserted into the couchbase bucket<\/li>\r\n<li>The &#8220;<strong>score<\/strong>&#8221; is the relevance of the document for the search parameters, calculated using the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Tf%E2%80%93idf\">tf-idf<\/a> algorithm.<\/li>\r\n<li>The &#8220;<strong>sort<\/strong>&#8221; indicates what field was used to order the hits obtained.<\/li>\r\n<\/ul>\r\n<\/li>\r\n<li>&#8220;<strong>total_hits<\/strong>&#8221; is the total number of results available for the search request (query).<\/li>\r\n<li>&#8220;<strong>max_score<\/strong>&#8221; is the max tf-idf (relevance) score for any of the document hits.<\/li>\r\n<li>&#8220;<strong>took<\/strong>&#8221; is the amount of time in nanoseconds taken by the coordinating node to process the request and ship the aggregated response.<\/li>\r\n<li>&#8220;<strong>facets<\/strong>&#8221; contains relevant content if the search query requests for any facet\/aggregated information.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p>Additionally, not included in this search response &#8230;<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>If any of the index partitions failed to respond to the request due to any error, a separate &#8220;<strong>errors<\/strong>&#8221; sub field will be included indicating the nature of the error(s). Here\u2019s a sample &#8230;<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<pre class=\"wp-block-preformatted\">\"status\": {\r\n  \"total\": 6,\r\n  \"failed\": 2,\r\n  \"successful\": 4,\r\n  \"errors\": {\r\n    \"pindex_name_1\": \"reason for failure\",\r\n    \"pindex_name_2\": \"reason for failure\"\r\n    \r\n  }\r\n}<\/pre>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>The above example is a situation where the search service responds to the user with a &#8220;partial&#8221; response of results aggregated from only those index partitions that were successful. The user should investigate the health of a cluster and what&#8217;s caused some of the index partitions to fail or become unresponsive.<\/li>\r\n<\/ul>\r\n\r\n\r\n<hr class=\"wp-block-separator\" \/>\r\n\r\n\r\n<p>Hope you find this article of some help. Get the latest release of Couchbase Server from the <a href=\"https:\/\/www.couchbase.com\/downloads\/\">Downloads<\/a> page!<\/p>\r\n","protected":false},"excerpt":{"rendered":"<p>This technical article showcases the life of a Full Text Search query through a distributed Couchbase system as it originates from a client to until a response is received. Before diving into the server world, a little about the client [&hellip;]<\/p>\n","protected":false},"author":37266,"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,1812],"tags":[8622],"ppma_author":[8925],"class_list":["post-11156","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server","category-full-text-search","category-n1ql-query","tag-distributed-search"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>The life of a Full Text Search query - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"This article showcases the life of a Full Text Search query through a distributed Couchbase system.\" \/>\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\/the-life-of-a-full-text-search-query\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The life of a Full Text Search query\" \/>\n<meta property=\"og:description\" content=\"This article showcases the life of a Full Text Search query through a distributed Couchbase system.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/ko\/the-life-of-a-full-text-search-query\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2021-05-10T09:37:44+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T03:27:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/lh6.googleusercontent.com\/XKrIMUcBnjNF4ctForwXdFe3zH4PiP5V6--Ffw7HTeXZTzyPre6BSQ9SF5dNwwkx_vvuwLJT3Q-eH8zzOB2Js2HqjpugBIFNgucKni1dZHFfMTCtopGPoJWQn-J-dMc88LGpCZVT\" \/>\n<meta name=\"author\" content=\"Abhinav Dangeti, Software Engineer\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Abhinav Dangeti, Software Engineer\" \/>\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\\\/the-life-of-a-full-text-search-query\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/the-life-of-a-full-text-search-query\\\/\"},\"author\":{\"name\":\"Abhinav Dangeti, Software Engineering, Couchbase inc.\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#\\\/schema\\\/person\\\/574480df99d76a8837bba934d7324711\"},\"headline\":\"The life of a Full Text Search query\",\"datePublished\":\"2021-05-10T09:37:44+00:00\",\"dateModified\":\"2025-06-14T03:27:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/the-life-of-a-full-text-search-query\\\/\"},\"wordCount\":1125,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/the-life-of-a-full-text-search-query\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/1\\\/2022\\\/11\\\/couchbase-nosql-dbaas.png\",\"keywords\":[\"distributed search\"],\"articleSection\":[\"Couchbase Server\",\"Full-Text Search\",\"SQL++ \\\/ N1QL Query\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/the-life-of-a-full-text-search-query\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/the-life-of-a-full-text-search-query\\\/\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/the-life-of-a-full-text-search-query\\\/\",\"name\":\"The life of a Full Text Search query - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/the-life-of-a-full-text-search-query\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/the-life-of-a-full-text-search-query\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/1\\\/2022\\\/11\\\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2021-05-10T09:37:44+00:00\",\"dateModified\":\"2025-06-14T03:27:34+00:00\",\"description\":\"This article showcases the life of a Full Text Search query through a distributed Couchbase system.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/the-life-of-a-full-text-search-query\\\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/the-life-of-a-full-text-search-query\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/the-life-of-a-full-text-search-query\\\/#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\\\/the-life-of-a-full-text-search-query\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The life of a Full Text Search query\"}]},{\"@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\\\/574480df99d76a8837bba934d7324711\",\"name\":\"Abhinav Dangeti, Software Engineering, Couchbase inc.\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6119ccf4cd5cba9ca4abd6f338d737445c23575e60f2b2729806c28185d0ee9b?s=96&d=mm&r=g9fa9293925a63fb1fab65e43636c534b\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6119ccf4cd5cba9ca4abd6f338d737445c23575e60f2b2729806c28185d0ee9b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6119ccf4cd5cba9ca4abd6f338d737445c23575e60f2b2729806c28185d0ee9b?s=96&d=mm&r=g\",\"caption\":\"Abhinav Dangeti, Software Engineering, Couchbase inc.\"},\"description\":\"Work on Couchbase's Distributed Full Text Search\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/ko\\\/author\\\/abhinav\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"The life of a Full Text Search query - The Couchbase Blog","description":"\uc774 \ubb38\uc11c\uc5d0\uc11c\ub294 \ubd84\uc0b0\ud615 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc2dc\uc2a4\ud15c\uc744 \ud1b5\ud55c \uc804\uccb4 \ud14d\uc2a4\ud2b8 \uac80\uc0c9 \ucffc\ub9ac\uc758 \uc218\uba85\uc744 \ubcf4\uc5ec\uc90d\ub2c8\ub2e4.","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\/the-life-of-a-full-text-search-query\/","og_locale":"ko_KR","og_type":"article","og_title":"The life of a Full Text Search query","og_description":"This article showcases the life of a Full Text Search query through a distributed Couchbase system.","og_url":"https:\/\/www.couchbase.com\/blog\/ko\/the-life-of-a-full-text-search-query\/","og_site_name":"The Couchbase Blog","article_published_time":"2021-05-10T09:37:44+00:00","article_modified_time":"2025-06-14T03:27:34+00:00","og_image":[{"url":"https:\/\/lh6.googleusercontent.com\/XKrIMUcBnjNF4ctForwXdFe3zH4PiP5V6--Ffw7HTeXZTzyPre6BSQ9SF5dNwwkx_vvuwLJT3Q-eH8zzOB2Js2HqjpugBIFNgucKni1dZHFfMTCtopGPoJWQn-J-dMc88LGpCZVT","type":"","width":"","height":""}],"author":"Abhinav Dangeti, Software Engineer","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Abhinav Dangeti, Software Engineer","Est. reading time":"6\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/the-life-of-a-full-text-search-query\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/the-life-of-a-full-text-search-query\/"},"author":{"name":"Abhinav Dangeti, Software Engineering, Couchbase inc.","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/574480df99d76a8837bba934d7324711"},"headline":"The life of a Full Text Search query","datePublished":"2021-05-10T09:37:44+00:00","dateModified":"2025-06-14T03:27:34+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/the-life-of-a-full-text-search-query\/"},"wordCount":1125,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/the-life-of-a-full-text-search-query\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["distributed search"],"articleSection":["Couchbase Server","Full-Text Search","SQL++ \/ N1QL Query"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/the-life-of-a-full-text-search-query\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/the-life-of-a-full-text-search-query\/","url":"https:\/\/www.couchbase.com\/blog\/the-life-of-a-full-text-search-query\/","name":"The life of a Full Text Search query - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/the-life-of-a-full-text-search-query\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/the-life-of-a-full-text-search-query\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2021-05-10T09:37:44+00:00","dateModified":"2025-06-14T03:27:34+00:00","description":"\uc774 \ubb38\uc11c\uc5d0\uc11c\ub294 \ubd84\uc0b0\ud615 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc2dc\uc2a4\ud15c\uc744 \ud1b5\ud55c \uc804\uccb4 \ud14d\uc2a4\ud2b8 \uac80\uc0c9 \ucffc\ub9ac\uc758 \uc218\uba85\uc744 \ubcf4\uc5ec\uc90d\ub2c8\ub2e4.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/the-life-of-a-full-text-search-query\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/the-life-of-a-full-text-search-query\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/the-life-of-a-full-text-search-query\/#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\/the-life-of-a-full-text-search-query\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"The life of a Full Text Search query"}]},{"@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\/574480df99d76a8837bba934d7324711","name":"Abhinav Dangeti, \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uc5d4\uc9c0\ub2c8\uc5b4\ub9c1, Couchbase Inc.","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/secure.gravatar.com\/avatar\/6119ccf4cd5cba9ca4abd6f338d737445c23575e60f2b2729806c28185d0ee9b?s=96&d=mm&r=g9fa9293925a63fb1fab65e43636c534b","url":"https:\/\/secure.gravatar.com\/avatar\/6119ccf4cd5cba9ca4abd6f338d737445c23575e60f2b2729806c28185d0ee9b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6119ccf4cd5cba9ca4abd6f338d737445c23575e60f2b2729806c28185d0ee9b?s=96&d=mm&r=g","caption":"Abhinav Dangeti, Software Engineering, Couchbase inc."},"description":"Couchbase\uc758 \ubd84\uc0b0\ud615 \uc804\uccb4 \ud14d\uc2a4\ud2b8 \uac80\uc0c9 \uc791\uc5c5","url":"https:\/\/www.couchbase.com\/blog\/ko\/author\/abhinav\/"}]}},"acf":[],"authors":[{"term_id":8925,"user_id":37266,"is_guest":0,"slug":"abhinav","display_name":"Abhinav Dangeti, Software Engineer","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/6119ccf4cd5cba9ca4abd6f338d737445c23575e60f2b2729806c28185d0ee9b?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/11156","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\/37266"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/comments?post=11156"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/11156\/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=11156"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=11156"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=11156"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=11156"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}