{"id":2334,"date":"2016-07-14T15:00:00","date_gmt":"2016-07-14T15:00:00","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2334"},"modified":"2025-06-13T20:59:40","modified_gmt":"2025-06-14T03:59:40","slug":"using-full-text-search-fts-in-couchbase-with-the-nodejs-sdk","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-in-couchbase-with-the-nodejs-sdk\/","title":{"rendered":"Using Full Text Search (FTS) in Couchbase with the Node.js SDK"},"content":{"rendered":"<p>When I develop applications I always find myself running into a scenario where I need to search for a particular set of text within a chunk of data. I, like many others, often find myself taking the easy way out and doing a wildcard query. However, making use of wildcards in a query can have significant performance drains and inefficiencies within your application or database. This is where full text search (FTS) comes into play.<\/p>\n<p>Full text search operates on full text indexes and is far more efficient than working with wildcards when it comes to search for words and phrases in a database. Up until now to make this possible you&#8217;d have to use other search software such as Solr or ElasticSearch. Starting in Couchbase 4.5, FTS is available as developer preview to bring it into a single platform.<\/p>\n<p>We&#8217;re going to take a look at how to make use of full text search in a Node.js application using the Node.js SDK for Couchbase Server. What comes next assumes that you already have Node.js installed and ready for development. It also assumes that you are using Couchbase Server 4.5 or higher.<\/p>\n<p>To keep things simple we&#8217;re going to work on a new Node.js project with a simple story. Let&#8217;s start by creating a new project somewhere on our machine. I&#8217;m going to call this project <strong>resume<\/strong>. As you can probably guess from the project name, we&#8217;re going to create a parsing type application for job applicant resumes. We can use FTS to scan for keywords or phrases that are relevant for certain job positions. Since FTS offers search scoring, we can see which candidates might be more qualified for the job.<\/p>\n<h2>Creating a New Node.js Project<\/h2>\n<p>Using a Terminal (Mac and Linux) or Command Prompt (Windows), execute the following with the project as the current active directory:<\/p>\n<pre><code>\r\nnpm init -y\r\n<\/code><\/pre>\n<p>The above command will initialize a new Node.js project. Going forward, all Terminal and Command Prompt activity will be done with the project as the current working directory.<\/p>\n<p>We&#8217;re going to create more of a Node.js script rather than a RESTful application. That said, there is only one dependency requirement, and that is the Couchbase Node.js SDK. To install it, execute the following from the Command Prompt or Terminal:<\/p>\n<pre><code>\r\nnpm install couchbase --save\r\n<\/code><\/pre>\n<p>Although we won&#8217;t start coding yet, we want to create our main Node.js file. Create <strong>app.js<\/strong> at the root of your project.<\/p>\n<h2>Creating a Full Text Search Index<\/h2>\n<p>Before you can start using full text search, you must create a special index. This can be done from the <strong>Indexes -&gt; Full Text<\/strong> tab of the Couchbase administrative dashboard.<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2016\/july\/using-full-text-search-fts-in-couchbase-with-the-nodejs-sdk\/fts-create-index.gif\" \/><\/p>\n<p>From this section you&#8217;ll want to choose <strong>New Full Text Index<\/strong> and choose the name and bucket to apply it on. For this example we&#8217;ll be using the <strong>default<\/strong> bucket and an index of <strong>resume-search<\/strong>. Our index will be very basic, so I encourage you to check out the <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/current\/fts\/fts-creating-indexes.html#topic_ksl_wwk_1v\">documentation<\/a> so you can best meet your needs.<\/p>\n<p>After the index has been created, click the refresh button. At this point you can test it out via the dashboard or your own code.<\/p>\n<h2>Developing the Node.js Application<\/h2>\n<p>Just to re-iterate, this project will be kept rather simple. You can certainly expand upon this idea and make a full on resume evaluation application. For us, we&#8217;re only scratching the surface of possibilities.<\/p>\n<p>Open the project&#8217;s <strong>app.js<\/strong> file and include the following JavaScript code:<\/p>\n<pre><code>\r\nvar Couchbase = require(\"couchbase\");\r\n\r\nvar cluster = new Couchbase.Cluster(\"couchbase:\/\/localhost\")\r\nvar bucket = cluster.openBucket(\"default\");\r\n<\/code><\/pre>\n<p>In the above, we&#8217;re importing the dependency that we downloaded and we&#8217;re establishing a connection to the Couchbase cluster of our choosing. In this case it is a single node cluster on my local machine.<\/p>\n<p>Before we start performing full text search operations, let&#8217;s think about our data model. Let&#8217;s say that each resume is a document in the database. For example, here is my resume:<\/p>\n<pre><code>\r\n{\r\n    \"firstname\": \"Nic\",\r\n    \"lastname\": \"Raboy\",\r\n    \"skills\": [\r\n        \"java\",\r\n        \"node.js\",\r\n        \"golang\",\r\n        \"nosql\"\r\n    ],\r\n    \"summary\": \"\",\r\n    \"social\": {\r\n        \"github\": \"https:\/\/www.github.com\/nraboy\",\r\n        \"twitter\": \"https:\/\/www.twitter.com\/nraboy\"\r\n    },\r\n    \"employment\": [\r\n        {\r\n            \"employer\": \"Couchbase\",\r\n            \"title\": \"Developer Advocate\",\r\n            \"location\": \"San Francisco\"\r\n        }\r\n    ]\r\n}\r\n<\/code><\/pre>\n<p>Yes, of course above is not my real resume. It is only an example to see what we&#8217;re going to be working with. Now let&#8217;s say we want to find all resumes where the person has prior developer advocate experience. In Node.js we might create the following:<\/p>\n<pre><code>\r\nvar SearchQuery = Couchbase.SearchQuery;\r\nvar query = SearchQuery.new(\"resume-search\", SearchQuery.match(\"developer advocate\"));\r\nbucket.query(query, function(error, result, meta) {\r\n    if(error) {\r\n        return console.log(\"ERROR: \", error);\r\n    }\r\n    for (var i = 0; i &lt; result.length; i++) {\r\n        console.log({\"id\": result[i].id, \"score\": result[i].score});\r\n    }\r\n    return;\r\n});\r\n<\/code><\/pre>\n<p>Since I listed I was a Developer Advocate in my employment history, my record will appear. However, the above FTS query is rather vague. As long as &#8220;developer advocate&#8221; in any property of the document, we&#8217;ll know about it. Maybe we want to narrow it down, to specifically the employment history. In this case we can change our <code>SearchQuery<\/code> to the following:<\/p>\n<pre><code>\r\nvar query = SearchQuery.new(\"resume-search\", SearchQuery.match(\"developer advocate\").field(\"employment.title\"));\r\n<\/code><\/pre>\n<p>Notice the use of the <code>field<\/code> function? You can also use <code>fields<\/code> and pass an array of fields to search in.<\/p>\n<p>There are plenty of other ways to search for data using FTS and the Node.js SDK. For some information on using FTS, check out the <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/current\/sdk\/full-text-search-overview.html#full-text-search__facets\">developer documentation<\/a> or the <a href=\"https:\/\/docs.couchbase.com\/sdk-api\/couchbase-node-client-2.2.0\/SearchQuery.html\">Node.js API documentation<\/a>.<\/p>\n<h2>Conclusion<\/h2>\n<p>If you ever find yourself needing to query for wildcard data in an efficient manner, Couchbase and the Node.js SDK has you covered with its support for full text search (FTS). There are far more complex scenarios to full text search than the ones I gave. For example maybe you want to start adding conditions to the search or view facet information. All of this can be read about in the <a href=\"https:\/\/www.couchbase.com\/developers\/?utm_source=blogs&amp;utm_medium=link&amp;utm_campaign=blogs\">Couchbase Developer Portal<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>When I develop applications I always find myself running into a scenario where I need to search for a particular set of text within a chunk of data. I, like many others, often find myself taking the easy way out [&hellip;]<\/p>\n","protected":false},"author":63,"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,1822,1812],"tags":[1505],"ppma_author":[9032],"class_list":["post-2334","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server","category-full-text-search","category-node-js","category-n1ql-query","tag-index"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.2 (Yoast SEO v26.2) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Full Text Search (FTS) in Couchbase with the Node.js SDK<\/title>\n<meta name=\"description\" content=\"Learn how to use full text search in a Node.js application using the Node.js SDK for Couchbase Server and what all you should already have installed.\" \/>\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\/using-full-text-search-fts-in-couchbase-with-the-nodejs-sdk\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Using Full Text Search (FTS) in Couchbase with the Node.js SDK\" \/>\n<meta property=\"og:description\" content=\"Learn how to use full text search in a Node.js application using the Node.js SDK for Couchbase Server and what all you should already have installed.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-in-couchbase-with-the-nodejs-sdk\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/thepolyglotdeveloper\" \/>\n<meta property=\"article:published_time\" content=\"2016-07-14T15:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T03:59:40+00:00\" \/>\n<meta name=\"author\" content=\"Nic Raboy, Developer Advocate, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@nraboy\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nic Raboy, Developer Advocate, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-in-couchbase-with-the-nodejs-sdk\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-in-couchbase-with-the-nodejs-sdk\/\"},\"author\":{\"name\":\"Nic Raboy, Developer Advocate, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/bb545ebe83bb2d12f91095811d0a72e1\"},\"headline\":\"Using Full Text Search (FTS) in Couchbase with the Node.js SDK\",\"datePublished\":\"2016-07-14T15:00:00+00:00\",\"dateModified\":\"2025-06-14T03:59:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-in-couchbase-with-the-nodejs-sdk\/\"},\"wordCount\":912,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-in-couchbase-with-the-nodejs-sdk\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"Index\"],\"articleSection\":[\"Couchbase Server\",\"Full-Text Search\",\"Node.js\",\"SQL++ \/ N1QL Query\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-in-couchbase-with-the-nodejs-sdk\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-in-couchbase-with-the-nodejs-sdk\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-in-couchbase-with-the-nodejs-sdk\/\",\"name\":\"Full Text Search (FTS) in Couchbase with the Node.js SDK\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-in-couchbase-with-the-nodejs-sdk\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-in-couchbase-with-the-nodejs-sdk\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2016-07-14T15:00:00+00:00\",\"dateModified\":\"2025-06-14T03:59:40+00:00\",\"description\":\"Learn how to use full text search in a Node.js application using the Node.js SDK for Couchbase Server and what all you should already have installed.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-in-couchbase-with-the-nodejs-sdk\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-in-couchbase-with-the-nodejs-sdk\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-in-couchbase-with-the-nodejs-sdk\/#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\/using-full-text-search-fts-in-couchbase-with-the-nodejs-sdk\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Using Full Text Search (FTS) in Couchbase with the Node.js 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\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@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\/bb545ebe83bb2d12f91095811d0a72e1\",\"name\":\"Nic Raboy, Developer Advocate, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/8863514d8bed0cf6080f23db40e00354\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g\",\"caption\":\"Nic Raboy, Developer Advocate, Couchbase\"},\"description\":\"Nic Raboy is an advocate of modern web and mobile development technologies. He has experience in Java, JavaScript, Golang and a variety of frameworks such as Angular, NativeScript, and Apache Cordova. Nic writes about his development experiences related to making web and mobile development easier to understand.\",\"sameAs\":[\"https:\/\/www.thepolyglotdeveloper.com\",\"https:\/\/www.facebook.com\/thepolyglotdeveloper\",\"https:\/\/x.com\/nraboy\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/author\/nic-raboy-2\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Full Text Search (FTS) in Couchbase with the Node.js SDK","description":"Learn how to use full text search in a Node.js application using the Node.js SDK for Couchbase Server and what all you should already have installed.","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\/using-full-text-search-fts-in-couchbase-with-the-nodejs-sdk\/","og_locale":"en_US","og_type":"article","og_title":"Using Full Text Search (FTS) in Couchbase with the Node.js SDK","og_description":"Learn how to use full text search in a Node.js application using the Node.js SDK for Couchbase Server and what all you should already have installed.","og_url":"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-in-couchbase-with-the-nodejs-sdk\/","og_site_name":"The Couchbase Blog","article_author":"https:\/\/www.facebook.com\/thepolyglotdeveloper","article_published_time":"2016-07-14T15:00:00+00:00","article_modified_time":"2025-06-14T03:59:40+00:00","author":"Nic Raboy, Developer Advocate, Couchbase","twitter_card":"summary_large_image","twitter_creator":"@nraboy","twitter_misc":{"Written by":"Nic Raboy, Developer Advocate, Couchbase","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-in-couchbase-with-the-nodejs-sdk\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-in-couchbase-with-the-nodejs-sdk\/"},"author":{"name":"Nic Raboy, Developer Advocate, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/bb545ebe83bb2d12f91095811d0a72e1"},"headline":"Using Full Text Search (FTS) in Couchbase with the Node.js SDK","datePublished":"2016-07-14T15:00:00+00:00","dateModified":"2025-06-14T03:59:40+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-in-couchbase-with-the-nodejs-sdk\/"},"wordCount":912,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-in-couchbase-with-the-nodejs-sdk\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["Index"],"articleSection":["Couchbase Server","Full-Text Search","Node.js","SQL++ \/ N1QL Query"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-in-couchbase-with-the-nodejs-sdk\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-in-couchbase-with-the-nodejs-sdk\/","url":"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-in-couchbase-with-the-nodejs-sdk\/","name":"Full Text Search (FTS) in Couchbase with the Node.js SDK","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-in-couchbase-with-the-nodejs-sdk\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-in-couchbase-with-the-nodejs-sdk\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2016-07-14T15:00:00+00:00","dateModified":"2025-06-14T03:59:40+00:00","description":"Learn how to use full text search in a Node.js application using the Node.js SDK for Couchbase Server and what all you should already have installed.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-in-couchbase-with-the-nodejs-sdk\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-in-couchbase-with-the-nodejs-sdk\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/using-full-text-search-fts-in-couchbase-with-the-nodejs-sdk\/#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\/using-full-text-search-fts-in-couchbase-with-the-nodejs-sdk\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Using Full Text Search (FTS) in Couchbase with the Node.js 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":"en-US"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"The Couchbase Blog","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@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\/bb545ebe83bb2d12f91095811d0a72e1","name":"Nic Raboy, Developer Advocate, Couchbase","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/8863514d8bed0cf6080f23db40e00354","url":"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g","caption":"Nic Raboy, Developer Advocate, Couchbase"},"description":"Nic Raboy is an advocate of modern web and mobile development technologies. He has experience in Java, JavaScript, Golang and a variety of frameworks such as Angular, NativeScript, and Apache Cordova. Nic writes about his development experiences related to making web and mobile development easier to understand.","sameAs":["https:\/\/www.thepolyglotdeveloper.com","https:\/\/www.facebook.com\/thepolyglotdeveloper","https:\/\/x.com\/nraboy"],"url":"https:\/\/www.couchbase.com\/blog\/author\/nic-raboy-2\/"}]}},"authors":[{"term_id":9032,"user_id":63,"is_guest":0,"slug":"nic-raboy-2","display_name":"Nic Raboy, Developer Advocate, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g","author_category":"","last_name":"Raboy","first_name":"Nic","job_title":"","user_url":"https:\/\/www.thepolyglotdeveloper.com","description":"Nic Raboy is an advocate of modern web and mobile development technologies. He has experience in Java, JavaScript, Golang and a variety of frameworks such as Angular, NativeScript, and Apache Cordova. Nic writes about his development experiences related to making web and mobile development easier to understand."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/2334","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/users\/63"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/comments?post=2334"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/2334\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media?parent=2334"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/categories?post=2334"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/tags?post=2334"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=2334"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}