{"id":9797,"date":"2021-08-19T00:00:44","date_gmt":"2021-08-19T07:00:44","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=9797"},"modified":"2025-06-13T20:59:03","modified_gmt":"2025-06-14T03:59:03","slug":"searching-collections-with-full-text-search","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/searching-collections-with-full-text-search\/","title":{"rendered":"How to Use Full-Text Search across Couchbase Scopes &amp; Collections"},"content":{"rendered":"<p><strong>The Full-Text Search Service now offers<\/strong> better search performance and resource utilization across your cluster with the introduction of Scopes and Collections in Couchbase 7.0.<\/p>\n<p>Let&#8217;s take a quick step back: The <a href=\"https:\/\/www.couchbase.com\/blog\/couchbase-server-7-0-release\/?ref=blog\" target=\"_blank\" rel=\"noopener\">7.0 release of Couchbase Server<\/a> introduces the concept of <a href=\"https:\/\/www.couchbase.com\/blog\/scopes-and-collections-for-modern-multi-tenant-applications-couchbase-7-0\/?ref=blog\" target=\"_blank\" rel=\"noopener\">Scopes and Collections<\/a> that enable you to namespace data within a Couchbase Bucket. Instead of all <a href=\"https:\/\/www.couchbase.com\/blog\/json-database\/?ref=blog\" target=\"_blank\" rel=\"noopener\">JSON<\/a> documents having to reside in a single shared namespace, Scopes and Collections provide you a built-in capability to group documents together rather than having to add manual attributes like `type` to a document.<\/p>\n<p>Let\u2019s explore how you can index and search the data in your Scopes and Collections using the Search Service in <a href=\"https:\/\/www.couchbase.com\/products\/capella\/\" target=\"_blank\" rel=\"noopener\">Couchbase<\/a>.<\/p>\n<h2>How to Index Data for Search within a Single Collection<\/h2>\n<p>The <a href=\"https:\/\/www.couchbase.com\/products\/full-text-search\/?ref=blog\" target=\"_blank\" rel=\"noopener\">Couchbase Full-Text Search (FTS) Service<\/a> works exactly the same as before when it comes to operating and defining new indexes on documents residing within a Bucket. With Scopes and Collections, all existing (pre-7.0) documents in a Bucket are sorted into the `_default` Scope and `_default` Collection. And existing indexes continue to index newer mutations and all queries work as usual.<\/p>\n<p>Once your team adopts Scopes and Collections, database users will start to namespace multi-schema documents into various Collections. Here\u2019s where Couchbase Full-Text Search changes with the 7.0 release.<\/p>\n<p>The Search Service supports <a href=\"https:\/\/docs.couchbase.com\/server\/current\/n1ql\/n1ql-language-reference\/createindex.html\">index creations<\/a> on a single source Collection as well as on multiple source Collections as long as all the Collections belong to a <strong>single<\/strong> Scope.<\/p>\n<p>Essentially, the <em><strong>search indexes can span across multiple Collections but not across multiple Scopes<\/strong><\/em>.<\/p>\n<h3>Example: Full-Text Search with a CRM<\/h3>\n<p>Let\u2019s delve into more details with the help of an example.<\/p>\n<p>Consider a CRM use case where your customer details are captured in a `Customers` Bucket and your Order details into an `Orders` Bucket.<\/p>\n<p>Let\u2019s assume that you\u2019ve organized various customers into different Scopes based on the geographical regions. For example, mapping all the customers from the Asia Pacific region to a specific Scope named `apac` and so on.<\/p>\n<p>The diagram below illustrates how you might organize your Buckets, Scopes and Collections for your CRM.<\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-9798\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/11\/Collection_heirarchy-300x153.png\" alt=\"An example Scope and Collection hierarchy in Couchbase\" width=\"700\" height=\"357\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/Collection_heirarchy-300x153.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/Collection_heirarchy-1024x522.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/Collection_heirarchy-768x392.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/Collection_heirarchy-1536x784.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/Collection_heirarchy-2048x1045.png 2048w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/Collection_heirarchy-20x10.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/Collection_heirarchy-1320x673.png 1320w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p>With Collections, indexing and searching data from a single source Collection is the most common and natural use case. It works similar to the existing Bucket-based index creation process. The only difference is that the user has to specify the Scope and Collection details while creating the index definition.<\/p>\n<p>If you\u2019re indexing the default Scope and Collection within a Bucket, then the <a href=\"https:\/\/www.couchbase.com\/blog\/indexing-service-optimizations-with-couchbase-collections\/?ref=blog\" target=\"_blank\" rel=\"noopener\">index creation steps<\/a> look exactly the same as in the pre-Collection days.<\/p>\n<p>If you want to index a non-default Scope and\/or Collection(s), then you need to tick the checkbox for \u201cUse non-default Scope\/Collection(s)\u201d in the Couchbase Web UI. Once you complete this step, the index creation process asks you to enter the source Scope and Collection details, as in the diagram below.<\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-9799\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/11\/CC_NonDefault_IndexDefn-300x113.png\" alt=\"A non-default Scope\/Collection(s) indexing process in the Couchbase Web UI\" width=\"700\" height=\"264\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_NonDefault_IndexDefn-300x113.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_NonDefault_IndexDefn-1024x386.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_NonDefault_IndexDefn-768x289.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_NonDefault_IndexDefn-1536x578.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_NonDefault_IndexDefn-20x8.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_NonDefault_IndexDefn-1320x497.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_NonDefault_IndexDefn.png 2040w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p>Once you enable the non-default Scope\/Collection(s) checkbox, then you can choose the source Scope for the documents (see below). You may note that the Scope dropdown now lists all the available Scopes within your chosen Bucket (the CRM, in our example).<\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-9800\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/11\/CC_Scope_Dropdowns-300x83.png\" alt=\"Scope drop downs\" width=\"700\" height=\"193\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_Scope_Dropdowns-300x83.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_Scope_Dropdowns-1024x282.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_Scope_Dropdowns-768x211.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_Scope_Dropdowns-1536x423.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_Scope_Dropdowns-20x6.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_Scope_Dropdowns-1320x363.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_Scope_Dropdowns.png 1810w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p>As shown in the screenshot above, you can select the Scope that the Collection belongs to from the dropdown list as shown above.<\/p>\n<h3>Specifying Type Mappings<\/h3>\n<p>Once you select the Scope, you\u2019re all set to specify the type of documents you want to index.<\/p>\n<p>The convention is to specify the type of documents over the Type mappings, and this same type mapping definition pattern continues here too. Upon adding a new Type mapping, the user is given an option to specify the source Collection as shown below.<\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-9801\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/11\/CC_TypeMappings-300x139.png\" alt=\"Collection type mappings\" width=\"700\" height=\"323\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_TypeMappings-300x139.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_TypeMappings-1024x473.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_TypeMappings-768x355.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_TypeMappings-1536x710.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_TypeMappings-2048x946.png 2048w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_TypeMappings-20x9.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_TypeMappings-1320x610.png 1320w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p>The user should be able to see all the available Collections in the aforementioned Scope (e.g., `emea`) as a dropdown list like above.<\/p>\n<h4>Indexing All Document Types within a Given Collection<\/h4>\n<p>You can index <em>every<\/em> type of document in a Collection by selecting the Collection name from the drop-down list for the type mapping name. See the image below for an example.<\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-9804\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/11\/CC_TypeMappings_Collection_dropdown-300x137.png\" alt=\"Collection dropdown for typemappings\" width=\"700\" height=\"320\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_TypeMappings_Collection_dropdown-300x137.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_TypeMappings_Collection_dropdown-1024x468.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_TypeMappings_Collection_dropdown-768x351.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_TypeMappings_Collection_dropdown-1536x701.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_TypeMappings_Collection_dropdown-2048x935.png 2048w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_TypeMappings_Collection_dropdown-20x9.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_TypeMappings_Collection_dropdown-1320x603.png 1320w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<h4>Indexing Multiple Document Types within a Collection<\/h4>\n<p>If the Collection hosts multiple document types, then you can specify any number of the interested type mapping names followed by the Collection name as shown below.<\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-9806\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/11\/CC_IndexMultipleTypeMappings-300x125.png\" alt=\"multiple Collection type mappings\" width=\"700\" height=\"291\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_IndexMultipleTypeMappings-300x125.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_IndexMultipleTypeMappings-1024x426.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_IndexMultipleTypeMappings-768x319.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_IndexMultipleTypeMappings-1536x639.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_IndexMultipleTypeMappings-2048x852.png 2048w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_IndexMultipleTypeMappings-20x8.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_IndexMultipleTypeMappings-1320x549.png 1320w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p>The above example would index document types like `deptOrders` and `inventoryOrders` from the Collection `customer1` under the Scope `emea`.<\/p>\n<h5>Scaling Notes<\/h5>\n<p>Since your Bucket data is now sliced up to a higher granularity from Scopes and Collections, it\u2019s more likely that documents within each of your Collections will have a smaller cardinality.<\/p>\n<p>Depending on the specific of your Collections, you might <em>not<\/em> need to use the default partition settings of `6` per index to power a smaller dataset.<\/p>\n<p>Using the appropriate partition count for a given amount of data helps support:<\/p>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li>Better utilization of resources on a node<\/li>\n<li>A higher number of indexes on any given node<\/li>\n<li>Better search performance<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>As a result, we recommend you explore overriding the default partition count to a <em>lower<\/em> value during the cluster sizing.<\/p>\n<h5>RBAC Notes<\/h5>\n<p>You can now administer <a href=\"https:\/\/www.couchbase.com\/blog\/introducing-rbac-security-for-collections\/?ref=blog\" target=\"_blank\" rel=\"noopener\">role-based access control (RBAC) for full-text search indexes at a Bucket, Scope or Collection(s) level<\/a>.<\/p>\n<p>A user with at least `search reader` permissions at the source Collection level will be able to access the full-text search index.<\/p>\n<h2>How to Index Data for Search across Multiple Collections<\/h2>\n<p>Multi-Collection indexes help your users index and search across multiple Collections within a single Scope \u2013 all from a single index. A few multi-Collection-favorable use cases include:<\/p>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li>Users have sliced the data across many Collections where each Collection or namespace could be either a customer account or the brand of a product, etc. (i.e., homogeneous data across Collections).<\/li>\n<li>Users have a lot of relatively small-sized Collections in their data set due to the logical partitioning of the data (i.e., heterogeneous data across Collections).<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>In all such cases, you might have to create numerous indexes to enable full-text search on data across multiple Collections. However, it\u2019s a cumbersome mandate for you to have to create \u2013 and maintain \u2013 such a large number of indexes.<\/p>\n<p>That\u2019s where multi-Collection indexes come in.<\/p>\n<p>Multi-Collection indexes alleviate overhead by just letting you create an umbrella index covering many Collections. These Collections can contain homogeneous <em>or<\/em> heterogeneous data.<\/p>\n<h3>Specifying Type Mappings<\/h3>\n<p>In the screenshot below, you can see the definition of type mappings for indexing heterogeneous data types from different Collections like `customer1`, `customer2` and `customer3`. You could also use similar data types from various Collections like `customer1.travels` and `customer3.travels` and the like.<\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-9812\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/11\/CC_MultiCollectionMappings-300x161.png\" alt=\"Multiple Collection mapping for full-text search indexes\" width=\"700\" height=\"375\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_MultiCollectionMappings-300x161.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_MultiCollectionMappings-1024x548.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_MultiCollectionMappings-768x411.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_MultiCollectionMappings-1536x822.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_MultiCollectionMappings-20x11.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_MultiCollectionMappings-1320x706.png 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_MultiCollectionMappings.png 1824w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<h5>Lifecycle Notes<\/h5>\n<p>If any of the source Collections get deleted in a multi-Collection index, then the index is deleted too(!).<\/p>\n<p>Hence multi-Collection indexes are best suited for Collections with similar lifespans.<\/p>\n<h5>RBAC Notes<\/h5>\n<p>Under Couchbase RBAC security, you must have `search reader` permissions for all source Collections in order to access a multi-Collection index.<\/p>\n<h2>How to Search the Data in a Collection Using Full-Text Search<\/h2>\n<p><strong>Single-Collection Index:<\/strong> You can search and retrieve data from a single-Collection index in the same way as you did before with a Bucket-based index.<\/p>\n<p><strong>Multi-Collection Index:<\/strong> You can search multi-Collection indexes using the same old search requests. Since a multi-Collection index contains data from multiple source Collections, it\u2019s useful to know the source Collection of their relevant hits.<\/p>\n<p>With multi-Collection indexes, each hit in the search results contains information about the Collection to which it belongs. This source Collection detail is available in the `Fields` section of each hit under the key `_$c`. See the image below for an example.<\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-9874\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/11\/CC_SearchResults-300x151.png\" alt=\"multi-Collection index search results in Couchbase 7.0\" width=\"700\" height=\"351\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_SearchResults-300x151.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_SearchResults-1024x514.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_SearchResults-768x385.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_SearchResults-1536x771.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_SearchResults-2048x1028.png 2048w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_SearchResults-20x10.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/CC_SearchResults-1320x662.png 1320w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/p>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p>You can also narrow your full-text search requests to only specific Collection(s) within the multi-Collection index. This focus speeds up your searches on a large index.<\/p>\n<p>Below is a sample Collection search request for Collections `customer1` and `customer3`.<\/p>\n<pre class=\"lang:default decode:true\">{\r\n  \"query\": {\r\n    \"match_phrase\": \"exceeding budget\"\r\n  },\r\n  \"collections\": [\r\n    \"customer1\",\r\n    \"customer3\"\r\n  ]\r\n}\r\n<\/pre>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<h5>Upgrade Notes<\/h5>\n<p>You can only take advantage of Collection(s) support for the Full-Text Search Service on a fully upgraded Couchbase 7.0 cluster.<\/p>\n<p>You can\u2019t enable Collections support for FTS on a mixed-version cluster.<\/p>\n<h2>Conclusion<\/h2>\n<p>I hope you enjoy using the Couchbase Full-Text Search Service with the new Scopes and Collections features introduced in the 7.0 release.<\/p>\n<p>If you want to learn more about Couchbase Server 7, <a href=\"https:\/\/docs.couchbase.com\/server\/7.0\/introduction\/whats-new.html?ref=blog\" target=\"_blank\" rel=\"noopener\">check out What&#8217;s New<\/a> and\/or <a href=\"https:\/\/docs.couchbase.com\/server\/7.0\/release-notes\/relnotes.html?ref=blog\" target=\"_blank\" rel=\"noopener\">the 7.0 release notes<\/a>.<\/p>\n<div class=\"wp-block-spacer\" style=\"height: 30px\" aria-hidden=\"true\"><\/div>\n<div style=\"text-align: center\"><strong>Give Full-Text Search a test run:&lt;br\/ &gt;<a href=\"https:\/\/www.couchbase.com\/downloads\/?ref=blog\" target=\"_blank\" rel=\"noopener\">Try out Couchbase 7<\/a><\/strong><\/div>\n<div class=\"wp-block-spacer\" style=\"height: 15px\" aria-hidden=\"true\"><\/div>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Full-Text Search Service now offers better search performance and resource utilization across your cluster with the introduction of Scopes and Collections in Couchbase 7.0. Let&#8217;s take a quick step back: The 7.0 release of Couchbase Server introduces the concept [&hellip;]<\/p>\n","protected":false},"author":26446,"featured_media":11734,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1815,1816,2165,9381,9336,9936],"tags":[9299,1696,1261,1903,1962],"ppma_author":[9075],"class_list":["post-9797","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-best-practices-and-tutorials","category-couchbase-server","category-full-text-search","category-indexing","category-scopes-and-collections","category-search","tag-crm","tag-indexing","tag-json","tag-rbac","tag-role-based-access-control"],"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>How to Use Full-Text Search across Couchbase Scopes &amp; Collections<\/title>\n<meta name=\"description\" content=\"Read how to index your Couchbase data for better search performance using Scopes and Collections \u2013 new in 7.0 \u2013 and how your FTS queries improve at scale.\" \/>\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\/searching-collections-with-full-text-search\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Use Full-Text Search across Couchbase Scopes &amp; Collections\" \/>\n<meta property=\"og:description\" content=\"Read how to index your Couchbase data for better search performance using Scopes and Collections \u2013 new in 7.0 \u2013 and how your FTS queries improve at scale.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/searching-collections-with-full-text-search\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2021-08-19T07:00:44+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T03:59:03+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/how-to-full-text-search-fts-Couchbase-Scopes-Collections-7-0-social.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"418\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Sreekanth Sivasankaran\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/how-to-full-text-search-fts-Couchbase-Scopes-Collections-7-0-social.jpg\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sreekanth Sivasankaran\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"TechArticle\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/searching-collections-with-full-text-search\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/searching-collections-with-full-text-search\/\"},\"author\":{\"name\":\"Sreekanth Sivasankaran\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/7bbda3cf57beae8bd9cba686c0c6fe7a\"},\"headline\":\"How to Use Full-Text Search across Couchbase Scopes &amp; Collections\",\"datePublished\":\"2021-08-19T07:00:44+00:00\",\"dateModified\":\"2025-06-14T03:59:03+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/searching-collections-with-full-text-search\/\"},\"wordCount\":1392,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/searching-collections-with-full-text-search\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/how-to-full-text-search-fts-Couchbase-Scopes-Collections-7-0.jpg\",\"keywords\":[\"CRM\",\"Indexing\",\"JSON\",\"RBAC\",\"Role Based Access Control (RBAC)\"],\"articleSection\":[\"Best Practices and Tutorials\",\"Couchbase Server\",\"Full-Text Search\",\"Indexing\",\"Scopes and Collections\",\"Search\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/searching-collections-with-full-text-search\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/searching-collections-with-full-text-search\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/searching-collections-with-full-text-search\/\",\"name\":\"How to Use Full-Text Search across Couchbase Scopes &amp; Collections\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/searching-collections-with-full-text-search\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/searching-collections-with-full-text-search\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/how-to-full-text-search-fts-Couchbase-Scopes-Collections-7-0.jpg\",\"datePublished\":\"2021-08-19T07:00:44+00:00\",\"dateModified\":\"2025-06-14T03:59:03+00:00\",\"description\":\"Read how to index your Couchbase data for better search performance using Scopes and Collections \u2013 new in 7.0 \u2013 and how your FTS queries improve at scale.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/searching-collections-with-full-text-search\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/searching-collections-with-full-text-search\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/searching-collections-with-full-text-search\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/how-to-full-text-search-fts-Couchbase-Scopes-Collections-7-0.jpg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/how-to-full-text-search-fts-Couchbase-Scopes-Collections-7-0.jpg\",\"width\":1200,\"height\":628,\"caption\":\"Learn how to index data for better full-text search (FTS) performance at scale in Couchbase 7.0\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/searching-collections-with-full-text-search\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Use Full-Text Search across Couchbase Scopes &amp; Collections\"}]},{\"@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\/7bbda3cf57beae8bd9cba686c0c6fe7a\",\"name\":\"Sreekanth Sivasankaran\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/a60af16118050d1ea3a927388dc4dfb7\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/01af11c4c81e84e518ab465b39b7a5b3c874de79270af74043cc3d4edb92ff4e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/01af11c4c81e84e518ab465b39b7a5b3c874de79270af74043cc3d4edb92ff4e?s=96&d=mm&r=g\",\"caption\":\"Sreekanth Sivasankaran\"},\"description\":\"Sreekanth Sivasankaran is a Principal Engineer\/Senior Engineering manager at Couchbase R&amp;D. He leads the design and development of distributed and highly performant Search functionality. And he has over 17 years of product development experience in various domains like telecom, handsets, enterprise software, big data technologies, and distributed systems.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/author\/sreekanth-sivasankaran\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to Use Full-Text Search across Couchbase Scopes &amp; Collections","description":"Read how to index your Couchbase data for better search performance using Scopes and Collections \u2013 new in 7.0 \u2013 and how your FTS queries improve at scale.","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\/searching-collections-with-full-text-search\/","og_locale":"en_US","og_type":"article","og_title":"How to Use Full-Text Search across Couchbase Scopes &amp; Collections","og_description":"Read how to index your Couchbase data for better search performance using Scopes and Collections \u2013 new in 7.0 \u2013 and how your FTS queries improve at scale.","og_url":"https:\/\/www.couchbase.com\/blog\/searching-collections-with-full-text-search\/","og_site_name":"The Couchbase Blog","article_published_time":"2021-08-19T07:00:44+00:00","article_modified_time":"2025-06-14T03:59:03+00:00","og_image":[{"width":800,"height":418,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/how-to-full-text-search-fts-Couchbase-Scopes-Collections-7-0-social.jpg","type":"image\/jpeg"}],"author":"Sreekanth Sivasankaran","twitter_card":"summary_large_image","twitter_image":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/how-to-full-text-search-fts-Couchbase-Scopes-Collections-7-0-social.jpg","twitter_misc":{"Written by":"Sreekanth Sivasankaran","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"TechArticle","@id":"https:\/\/www.couchbase.com\/blog\/searching-collections-with-full-text-search\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/searching-collections-with-full-text-search\/"},"author":{"name":"Sreekanth Sivasankaran","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/7bbda3cf57beae8bd9cba686c0c6fe7a"},"headline":"How to Use Full-Text Search across Couchbase Scopes &amp; Collections","datePublished":"2021-08-19T07:00:44+00:00","dateModified":"2025-06-14T03:59:03+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/searching-collections-with-full-text-search\/"},"wordCount":1392,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/searching-collections-with-full-text-search\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/how-to-full-text-search-fts-Couchbase-Scopes-Collections-7-0.jpg","keywords":["CRM","Indexing","JSON","RBAC","Role Based Access Control (RBAC)"],"articleSection":["Best Practices and Tutorials","Couchbase Server","Full-Text Search","Indexing","Scopes and Collections","Search"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/searching-collections-with-full-text-search\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/searching-collections-with-full-text-search\/","url":"https:\/\/www.couchbase.com\/blog\/searching-collections-with-full-text-search\/","name":"How to Use Full-Text Search across Couchbase Scopes &amp; Collections","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/searching-collections-with-full-text-search\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/searching-collections-with-full-text-search\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/how-to-full-text-search-fts-Couchbase-Scopes-Collections-7-0.jpg","datePublished":"2021-08-19T07:00:44+00:00","dateModified":"2025-06-14T03:59:03+00:00","description":"Read how to index your Couchbase data for better search performance using Scopes and Collections \u2013 new in 7.0 \u2013 and how your FTS queries improve at scale.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/searching-collections-with-full-text-search\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/searching-collections-with-full-text-search\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/searching-collections-with-full-text-search\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/how-to-full-text-search-fts-Couchbase-Scopes-Collections-7-0.jpg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/11\/how-to-full-text-search-fts-Couchbase-Scopes-Collections-7-0.jpg","width":1200,"height":628,"caption":"Learn how to index data for better full-text search (FTS) performance at scale in Couchbase 7.0"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/searching-collections-with-full-text-search\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Use Full-Text Search across Couchbase Scopes &amp; Collections"}]},{"@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\/7bbda3cf57beae8bd9cba686c0c6fe7a","name":"Sreekanth Sivasankaran","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/a60af16118050d1ea3a927388dc4dfb7","url":"https:\/\/secure.gravatar.com\/avatar\/01af11c4c81e84e518ab465b39b7a5b3c874de79270af74043cc3d4edb92ff4e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/01af11c4c81e84e518ab465b39b7a5b3c874de79270af74043cc3d4edb92ff4e?s=96&d=mm&r=g","caption":"Sreekanth Sivasankaran"},"description":"Sreekanth Sivasankaran is a Principal Engineer\/Senior Engineering manager at Couchbase R&amp;D. He leads the design and development of distributed and highly performant Search functionality. And he has over 17 years of product development experience in various domains like telecom, handsets, enterprise software, big data technologies, and distributed systems.","url":"https:\/\/www.couchbase.com\/blog\/author\/sreekanth-sivasankaran\/"}]}},"authors":[{"term_id":9075,"user_id":26446,"is_guest":0,"slug":"sreekanth-sivasankaran","display_name":"Sreekanth Sivasankaran","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/01af11c4c81e84e518ab465b39b7a5b3c874de79270af74043cc3d4edb92ff4e?s=96&d=mm&r=g","author_category":"","last_name":"Sivasankaran","first_name":"Sreekanth","job_title":"","user_url":"","description":"Sreekanth Sivasankaran is a Principal Engineer\/Senior Engineering Manager at Couchbase R&amp;D. He leads the design and development of distributed and highly performant Search functionality. And he has over 17 years of product development experience in various domains like telecom, handsets, enterprise software, big data technologies, and distributed systems."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/9797","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\/26446"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/comments?post=9797"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/9797\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media\/11734"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media?parent=9797"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/categories?post=9797"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/tags?post=9797"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=9797"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}