{"id":16269,"date":"2024-09-11T09:59:55","date_gmt":"2024-09-11T16:59:55","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=16269"},"modified":"2025-06-13T16:36:44","modified_gmt":"2025-06-13T23:36:44","slug":"couchbase-shell-cbsh-v1-0-vector-search","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/couchbase-shell-cbsh-v1-0-vector-search\/","title":{"rendered":"Couchbase Shell (cbsh) Reaches v1.0: Unlocking the Power of Vector Search &#038; Beyond"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">We are thrilled to announce the General Availability (GA) of <\/span><a href=\"https:\/\/couchbase.sh\/\"><span style=\"font-weight: 400;\">Couchbase Shell (cbsh)<\/span><\/a><span style=\"font-weight: 400;\">, a powerful command-line tool built on top of <\/span><a href=\"https:\/\/www.nushell.sh\/\"><span style=\"font-weight: 400;\">nushell<\/span><\/a><span style=\"font-weight: 400;\"> designed to make your interactions with Couchbase easier and more efficient. Couchbase shell supports powerful <\/span><a href=\"https:\/\/www.couchbase.com\/blog\/announcing-vector-search\/\"><span style=\"font-weight: 400;\">vector search capabilities<\/span><\/a><span style=\"font-weight: 400;\"> that can be used to power GenAI applications by allowing applications to retrieve semantically similar items based on <\/span><a href=\"https:\/\/www.couchbase.com\/blog\/what-are-vector-embeddings\/\"><span style=\"font-weight: 400;\">vector embedding<\/span><\/a><span style=\"font-weight: 400;\"> representations of the items in a multi-dimensional space. With this release, cbsh introduces <\/span><a href=\"https:\/\/www.couchbase.com\/products\/vector-search\/\"><span style=\"font-weight: 400;\">vector search<\/span><\/a><span style=\"font-weight: 400;\"> support enabling users to create vector indexes and conduct vector searches (such as similarity search) right from the command line. This enables many use cases for users such as testing and modifying model parameters, ad hoc vector querying, and scripting from a simple command line interface.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium\" src=\"https:\/\/couchbase.sh\/img\/intro.gif\" width=\"1622\" height=\"1020\" \/><\/p>\n<h2><span style=\"font-weight: 400;\">What is Couchbase Shell?<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Couchbase Shell is an open source CLI tool tailored for developers and administrators working with <\/span><a href=\"https:\/\/cloud.couchbase.com\/\"><span style=\"font-weight: 400;\">Couchbase Capella<\/span><\/a><span style=\"font-weight: 400;\"> and Couchbase Server. It allows users to quickly monitor, query, load data, export data, and conduct full vector searches via a simple command line tool that is easily extendable and has modern features such as syntax highlighting, intelligent autocomplete, contextual help, and error messages.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The tool is available as a Couchbase<\/span><a href=\"https:\/\/docs.couchbase.com\/cloud\/third-party\/integrations.html#support-model\"><span style=\"font-weight: 400;\"> Community supported<\/span><\/a><span style=\"font-weight: 400;\"> project.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Compatible with Linux, Mac, Windows (visit <\/span><a href=\"https:\/\/couchbase.sh\/docs\/#_installation\"><span style=\"font-weight: 400;\">installation<\/span><\/a><span style=\"font-weight: 400;\"> documentation for the complete list).<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Key features<\/span><\/h2>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Command pipelines, syntax highlighting and auto-completer<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Connection Management<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Loading Data<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Exporting Data<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Vector Search<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Key-Value (KV) Operation Support<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Query Data using SQL++<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Here are some of the standout features of the Couchbase Shell.\u00a0<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Command pipelines, syntax highlighting and auto-completer<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">In nushell, <\/span><a href=\"https:\/\/www.nushell.sh\/book\/pipelines.html\"><span style=\"font-weight: 400;\">pipelines<\/span><\/a><span style=\"font-weight: 400;\"> allow the combination of many commands, similar to Linux pipes (|). Cbsh builds upon this by adding custom Couchbase commands to interact with your cluster. Additionally depending upon your shell it will enable syntax highlight and suggest you auto-complete. For example, the following uses basic nushell commands to open a local JSON file, then format it into a table:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Note that the syntax highlighting may be different for you based on shell of your choice<\/span><\/p>\n<pre class=\"nums:false lang:default decode:true\">&gt; open user.json | wrap content | insert id {$in.content.id}\r\n\r\n\u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\r\n\u2502 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e \u2502\r\n\u2502 content \u2502 \u2502 id \u00a0 \u00a0     \u2502 20397\u00a0 \u00a0 \u00a0 \u2502 \u2502\r\n\u2502 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502 username\u00a0 \u00a0\u2502 Charlie \u00a0 \u00a0\u2502 \u2502\r\n\u2502 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f \u2502\r\n\u2502 id\u00a0 \u00a0 \u00a0 \u2502 20397 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502\r\n\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f<\/pre>\n<p><span style=\"font-weight: 400;\">Once <\/span><a href=\"https:\/\/couchbase.sh\/docs\/#_a_note_on_data_format\"><span style=\"font-weight: 400;\">formatted in this way<\/span><\/a><span style=\"font-weight: 400;\"> you can pipe the result into the custom cbsh <\/span><a href=\"https:\/\/couchbase.sh\/docs\/#_a_note_on_data_format\"><span style=\"font-weight: 400;\">doc upsert command<\/span><\/a><span style=\"font-weight: 400;\"> to insert\u00a0 the JSON into your Couchbase cluster. The full pipeline to open the doc, format and then upsert is:\u00a0<\/span><\/p>\n<pre class=\"nums:false nums-toggle:false wrap-toggle:false lang:default decode:true \">&gt; open user.json | wrap content | insert id {$in.content.id} | doc upsert<\/pre>\n<h2><span style=\"font-weight: 400;\">Connection management<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Couchbase Shell simplifies <\/span><a href=\"https:\/\/couchbase.sh\/docs\/#_connecting_to_a_cluster\"><span style=\"font-weight: 400;\">connection management<\/span><\/a><span style=\"font-weight: 400;\">, allowing you to establish and manage connections to Couchbase with minimal effort. Users have two options to connect to Couchbase:<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Command inline connection management (CLI arguments)<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Connecting to Couchbase Shell via CLI arguments is straightforward and allows you to quickly start working with your Couchbase clusters from the command line. The primary arguments you&#8217;ll need to provide are the cluster connection string, your username, and your password. Additionally, you can specify other parameters like the bucket you wish to interact with, the specific scope and collection, and even the authentication mechanism if needed.<\/span><\/p>\n<h4><span style=\"font-weight: 400;\">Basic connection example<\/span><\/h4>\n<p><span style=\"font-weight: 400;\">To <\/span><a href=\"https:\/\/couchbase.sh\/docs\/#_connecting_to_a_cluster\"><span style=\"font-weight: 400;\">connect to a Couchbase cluster<\/span><\/a><span style=\"font-weight: 400;\">, you can use the following command:<\/span><\/p>\n<pre class=\"nums:false lang:default decode:true \">&gt; .\/cbsh --username Administrator --connstr 127.0.0.1 -p password --disable-tls<\/pre>\n<h4><span style=\"font-weight: 400;\">Connecting to a specific bucket<\/span><\/h4>\n<p><span style=\"font-weight: 400;\">To connect to a bucket on a Couchbase cluster, you can use the following command:<\/span><\/p>\n<pre class=\"nums:false lang:default decode:true \">&gt; .\/cbsh --username Administrator --connstr 127.0.0.1 -p password --disable-tls \u2013bucket mybucket \u2013collection mycollection<\/pre>\n<h3><span style=\"font-weight: 400;\">Connection via config file<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">The first time that you run <em>.\/cbsh<\/em> you will receive a prompt asking if you\u2019d like to create a config file. If you choose \u201cyes\u201d, then the shell will provide you with a series of prompts to provide information about your default cluster. If you choose \u201cno\u201d then it will try to connect to a local cluster running on localhost using the \u201cAdministrator\u201d username and the password of \u201cpassword\u201d. The config file must be called <\/span><i><span style=\"font-weight: 400;\">config<\/span><\/i><span style=\"font-weight: 400;\"> and be placed in a <\/span><i><span style=\"font-weight: 400;\">.cbsh<\/span><\/i><span style=\"font-weight: 400;\"> dot file either in your home directory or in the directory from which the shell is being run. More details can be found on our <\/span><a href=\"https:\/\/couchbase.sh\/docs\/#_the_config_dotfiles\"><span style=\"font-weight: 400;\">documentation website<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Below configuration example shows you how to define two different clusters &#8211; one in Capella and another in a local Couchbase cluster. Optionally, users can also add a large language model (LLM) configuration which we will describe later in the Vector Search section.<\/span><\/p>\n<pre class=\"nums:false lang:default decode:true\">version = 1\r\n\r\n[[cluster]]\r\nidentifier = \"capella\"\r\nconnstr = \"couchbases:\/\/uri.cloud.couchbase.com\"\r\nuser-display-name = \"Vishal Dhiman\"\r\nusername = \"vishal\"\r\npassword = \"password\" # Replace this with password from database access credentials\r\n\r\n[[cluster]]\r\nidentifier = \"local\"\r\nconnstr = \"couchbase:\/\/127.0.0.1\"\r\ndefault-bucket = \"travel-sample\"\r\nusername = \"vishal\"\r\npassword = \"password\"\r\ndata-timeout = \"5s\"\r\nconnect-timeout = \"1m 15s\"\r\nsearch-timeout = \"1m 15s\"\r\nanalytics-timeout = \"1m 15s\"\r\nmanagement-timeout = \"1m 15s\"\r\ntransaction-timeout = \"1m 15s\"\r\ntls-enabled = false\r\n\r\n[[llm]]\r\nidentifier = \"OpenAI-small\"\r\nprovider = \"OpenAI\"\r\nembed_model = \"text-embedding-3-small\"\r\nchat_model = \"gpt-4o-mini\"\r\napi_key = \"model_key\"\r\n\r\n#[llm]\r\n#provider = \"Gemini\"\r\n#api_key = \"gogetyourown\"\r\n<\/pre>\n<h2><span style=\"font-weight: 400;\">Loading data<\/span><\/h2>\n<p><a href=\"https:\/\/couchbase.sh\/docs\/#_importing_data\"><span style=\"font-weight: 400;\">Loading data<\/span><\/a><span style=\"font-weight: 400;\"> into Couchbase using Couchbase Shell is a straightforward process that allows you to quickly populate your database with options to load data:<\/span><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Single document JSON files<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Multiple documents JSON files<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">CSV files<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Any call to CLI that will output structured text supported by nushell<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Users can use <\/span><i><span style=\"font-weight: 400;\">open<\/span><\/i><span style=\"font-weight: 400;\"> or <\/span><i><span style=\"font-weight: 400;\">from<\/span><\/i><span style=\"font-weight: 400;\"> command to first load data into Couchbase Shell which can then be sent to Couchbase Server using <\/span><a href=\"https:\/\/couchbase.sh\/docs\/#_doc_import\"><i><span style=\"font-weight: 400;\">doc import<\/span><\/i><\/a><span style=\"font-weight: 400;\"> or <\/span><a href=\"https:\/\/couchbase.sh\/docs\/#_doc_import\"><i><span style=\"font-weight: 400;\">doc upsert<\/span><\/i> <\/a><span style=\"font-weight: 400;\">commands.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Visit our documentation for <\/span><a href=\"https:\/\/couchbase.sh\/docs\/#_loading_data_into_the_shell\"><span style=\"font-weight: 400;\">code samples<\/span><\/a><span style=\"font-weight: 400;\"> and <\/span><a href=\"https:\/\/couchbase.sh\/docs\/#_importing_data\"><span style=\"font-weight: 400;\">load data recipes<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Exporting data<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Exporting data from Couchbase using the Couchbase Shell is a powerful way to back up your data, move it between environments, or simply extract it for analysis. The cbsh tool provides a straightforward command to export data directly from your Couchbase cluster into JSON files, making it easy to handle data outside of the database environment. The export counterparts to <\/span><i><span style=\"font-weight: 400;\">open<\/span><\/i><span style=\"font-weight: 400;\"> and <\/span><i><span style=\"font-weight: 400;\">from<\/span><\/i><span style=\"font-weight: 400;\">, are <\/span><i><span style=\"font-weight: 400;\">save<\/span><\/i><span style=\"font-weight: 400;\"> and <\/span><i><span style=\"font-weight: 400;\">to<\/span><\/i><span style=\"font-weight: 400;\">. You can use both commands to take tabular data from the shell and store it in files of the needed target format.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Visit our documentation for <\/span><a href=\"https:\/\/couchbase.sh\/docs\/#_exporting_data_from_the_shell\"><span style=\"font-weight: 400;\">code samples<\/span><\/a><span style=\"font-weight: 400;\"> and <\/span><a href=\"https:\/\/couchbase.sh\/docs\/#_exporting_data\"><span style=\"font-weight: 400;\">export data recipes<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Vector search<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">The headline feature of this release is the support for <a href=\"https:\/\/www.couchbase.com\/blog\/tag\/vector-search\/\">vector search<\/a>. This capability allows you to perform similarity searches on a given corpus of document, all from a command line (CLI) interface. This is super useful to try and test your models and conduct ad-hoc vector searches easily via command line.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Vector search in Couchbase is powered by the integration of AI\/ML models that convert text, images, or other data types into vectors. These vectors can then be compared to find similar items, providing a more relevant search experience compared to traditional keyword-based approaches.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Before users can start vector search, users need to define which large language model (LLM) they want to use. Currently, cbsh supports the following LLMs:<\/span><\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">OpenAI<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Gemini (Google)<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Bedrock (AWS)<\/span><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">Visit the <\/span><a href=\"https:\/\/couchbase.sh\/docs\/#_cb_env_llm\"><span style=\"font-weight: 400;\">LLM documentation<\/span><\/a><span style=\"font-weight: 400;\"> for configuration samples.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Typically, vector search is a three step process:<\/span><\/p>\n<h3>1 &#8211; Generate embeddings for fields in a collection<\/h3>\n<p><span style=\"font-weight: 400;\">This is typically done when documents are created or updated, or if already have an existing dataset, do it as a bulk operation. With cbsh, this can be accomplished using the <\/span><a href=\"https:\/\/couchbase.sh\/docs\/#_vector_enrich_doc\"><i><span style=\"font-weight: 400;\">vector enrich-doc<\/span><\/i><\/a><span style=\"font-weight: 400;\">\u00a0command. For example, the following example has 3 parts piped together:<\/span><\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Query for documents in landmark collection.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Send the <em>content<\/em>\u00a0field from the previous part\u2019s <em>resultset<\/em> to LLM to generate vector embeddings. In this step the specified field is sent to LLM\u2019s endpoint and the response is captured. Note that you must have LLM definition configured in the config file. If you have multiple models you want to experiment with, you can define multiple LLM in the config file and switch the LLM using <\/span><a href=\"https:\/\/couchbase.sh\/docs\/#_cb_env_llm\"><i><span style=\"font-weight: 400;\">cb-env LLM<\/span><\/i><\/a><i><span style=\"font-weight: 400;\"> &lt;identifier&gt;<\/span><\/i><span style=\"font-weight: 400;\"> command. All the LLM\u2019s return back a default number of dimensions but you can override it using the <\/span><a href=\"https:\/\/couchbase.sh\/docs\/#_vector_enrich_doc\"><i><span style=\"font-weight: 400;\">&#8211;dimensions<\/span><\/i><\/a><span style=\"font-weight: 400;\"> options. This command, by default, stores the vector in a field called fieldVector, which is <em>contentVector<\/em> in our example since the name of our field is <em>content<\/em>. You can override the default name of the vector field by using the <\/span><a href=\"https:\/\/couchbase.sh\/docs\/#_vector_enrich_doc\"><i><span style=\"font-weight: 400;\">&#8211;vectorField<\/span><\/i><\/a><span style=\"font-weight: 400;\">\u00a0option.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Save the vector embeddings by upserting it back to the database.\u00a0<\/span><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">This command sends the specified field (content) to the LLM defined in the config file which generates and returns vector embeddings. The returned vector embeddings are saved in the document, assuming the piped document has an id and content field. If not, user can specify a custom ID and content field.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Note that this command assumed that default bucket is set to <em>travel-sample.<\/em><\/span><\/p>\n<pre class=\"nums:false lang:default decode:true\">&gt; query\u00a0 'SELECT * FROM `travel-sample.inventory.landmark`' | vector enrich-doc --dimension 1024 content | doc upsert --bucket \"travel-sample\" --scope \"inventory\" --collection \"landmark\"\r\nBatch size limited to 2047\r\nEmbedding batch 1\/3\u00a0\r\nEmbedding batch 2\/3\u00a0\r\nEmbedding batch 3\/3\u00a0\r\n\u256d\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\r\n\u2502 # \u2502 processed \u2502 success \u2502 failed \u2502 failures \u2502 cluster \u2502\r\n\u251c\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\r\n\u2502 0 \u2502\u00a0 \u00a0 \u00a0 4495 \u2502\u00a0 \u00a0 4495 \u2502\u00a0 \u00a0 \u00a0 0 \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 capella \u2502\r\n\u2570\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f<\/pre>\n<h3>2 &#8211; Create a vector index for saved embeddings<\/h3>\n<p><span style=\"font-weight: 400;\">This is always run after step 1. With cbsh, this can be accomplished using the <\/span><a href=\"https:\/\/couchbase.sh\/docs\/#_vector_create_index\"><span style=\"font-weight: 400;\"><em>create-index<\/em><\/span><\/a><span style=\"font-weight: 400;\"> command The following command will create a new vector index named <em>landmark-contentVector-index<\/em>\u00a0over vectors with dimension 1024. Note that the dimensions specified here must match the dimensions value in step 1. If you use the default value of dimension from your LLM, you can check this number from LLM\u2019s documentation or just count the number of vector elements that were generated in step 1:<\/span><\/p>\n<pre class=\"wrap:true lang:default decode:true \">&gt; vector create-index --bucket \"travel-sample\" --scope \"inventory\" --collection \"landmark\" landmark-contentVector-index contentVector 1024<\/pre>\n<h3>3 &#8211; Generate vector embedding for search keyword<\/h3>\n<p><b>Step 3:<\/b><span style=\"font-weight: 400;\"> Generate vector embedding for a search keyword using <\/span><a href=\"https:\/\/couchbase.sh\/docs\/#_vector_enrich_text\"><i><span style=\"font-weight: 400;\">vector enrich-text<\/span><\/i><\/a><span style=\"font-weight: 400;\">\u00a0command and conduct a vector search against the vector index using the <\/span><a href=\"https:\/\/couchbase.sh\/docs\/#_vector_search\"><i><span style=\"font-weight: 400;\">vector search<\/span><\/i><\/a><span style=\"font-weight: 400;\">\u00a0command:<\/span><\/p>\n<pre class=\"nums:false lang:default decode:true\">&gt; \"physical activities\" | vector enrich-text --dimension 1024 |\u00a0 vector search landmark-contentVector-index contentVector\u00a0\r\nEmbedding batch 1\/1\u00a0\r\n\u256d\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\r\n\u2502 # \u2502 \u00a0 \u00a0 \u00a0 id \u00a0 \u00a0 \u00a0 \u2502 \u00a0 score\u00a0 \u00a0 \u2502 \u00a0 \u00a0 \u00a0 cluster \u00a0 \u00a0 \u00a0 \u2502\r\n\u251c\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\r\n\u2502 0 \u2502 landmark_11956 \u2502 0.92583716 \u2502 capella cbshtesting \u2502\r\n\u2502 1 \u2502 landmark_37999 \u2502 0.81547827 \u2502 capella cbshtesting \u2502\r\n\u2502 2 \u2502 landmark_22054 \u2502 0.81547827 \u2502 capella cbshtesting \u2502\r\n\u2570\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f<\/pre>\n<p><span style=\"font-weight: 400;\">Finally, the result of a vector search can be piped into a doc or subdoc <\/span><i><span style=\"font-weight: 400;\">get<\/span><\/i><span style=\"font-weight: 400;\"> to retrieve the contents of the found documents. Additionally, we can make the output prettier by only printing relevant fields:<\/span><\/p>\n<pre class=\"nums:false lang:default decode:true\">&gt; \"physical activities\" | vector enrich-text --dimension 1024 |\u00a0 vector search landmark-contentVector-index contentVector | subdoc get --collection landmark [title, name, phone, email, hours, address, content] | select id content\r\nEmbedding batch 1\/1\u00a0\r\n\u256d\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\r\n\u2502 # \u2502 \u00a0 \u00a0 \u00a0 id \u00a0 \u00a0 \u00a0 \u2502 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 content\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502\r\n\u251c\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\r\n\u2502 0 \u2502 landmark_11956 \u2502 \u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502\r\n\u2502 \u00a0 \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502 title \u00a0 \u2502 London\/Hornchurch \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502\r\n\u2502 \u00a0 \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502 name\u00a0 \u00a0 \u2502 Hornchurch Sports Centre\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502\r\n\u2502 \u00a0 \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502 phone \u00a0 \u2502 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502\r\n\u2502 \u00a0 \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502 email \u00a0 \u2502 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502\r\n\u2502 \u00a0 \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502 hours \u00a0 \u2502 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502\r\n\u2502 \u00a0 \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502 address \u2502 Hornchurch Road, Hornchurch, RM11 1JU \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502\r\n\u2502 \u00a0 \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502 content \u2502 You can find several activities like swimming, squash, cricket and gym. \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502\r\n\u2502 \u00a0 \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502\r\n\u2502 1 \u2502 landmark_22054 \u2502 \u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e \u2502\r\n\u2502 \u00a0 \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502 title \u00a0 \u2502 Pembrokeshire\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502\r\n\u2502 \u00a0 \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502 name\u00a0 \u00a0 \u2502 Celtic Quest Coasteering \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502\r\n\u2502 \u00a0 \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502 phone \u00a0 \u2502 +44 1348 881530\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502\r\n\u2502 \u00a0 \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502 email \u00a0 \u2502 info@celticquestcoasteering.com\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502\r\n\u2502 \u00a0 \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502 hours \u00a0 \u2502 Open all year, 9.30am &amp; 2pm daily (Booking is essential) \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502\r\n\u2502 \u00a0 \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502 address \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502\r\n\u2502 \u00a0 \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502 content \u2502 Water-based adventure activity that can include cliff jumping, adventure swimming, scramble climbing and more. \u2502 \u2502\r\n\u2502 \u00a0 \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f \u2502\r\n\u2502 2 \u2502 landmark_37999 \u2502 \u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e \u2502\r\n\u2502 \u00a0 \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502 title \u00a0 \u2502 Abereiddy\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502\r\n\u2502 \u00a0 \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502 name\u00a0 \u00a0 \u2502 Celtic Quest Coasteering \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502\r\n\u2502 \u00a0 \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502 phone \u00a0 \u2502 +44 1348 881530\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502\r\n\u2502 \u00a0 \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502 email \u00a0 \u2502 info@celticquestcoasteering.com\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502\r\n\u2502 \u00a0 \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502 hours \u00a0 \u2502 Open all year, 9.30am &amp; 2pm daily (Booking is essential) \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502\r\n\u2502 \u00a0 \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502 address \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502\r\n\u2502 \u00a0 \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502 content \u2502 Water-based adventure activity that can include cliff jumping, adventure swimming, scramble climbing and more. \u2502 \u2502\r\n\u2502 \u00a0 \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f \u2502\r\n\u2570\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f<\/pre>\n<h2><span style=\"font-weight: 400;\">Key-Value (KV) operation support<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Couchbase shell natively supports performing <\/span><a href=\"https:\/\/couchbase.sh\/docs\/#_reading_and_writing_documents\"><span style=\"font-weight: 400;\">key value operations<\/span><\/a><span style=\"font-weight: 400;\">. Key-value operations are unique to Couchbase and provide very fast CRUD operations for documents stored in Couchbase.\u00a0<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">cbsh command to read documents via KV service<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">You can retrieve a document with <\/span><em><a href=\"https:\/\/couchbase.sh\/docs\/#_reading\"><span style=\"font-weight: 400;\">doc get<\/span><\/a><\/em><span style=\"font-weight: 400;\">:<\/span><\/p>\n<pre class=\"nums:false lang:default decode:true\">&gt; doc get --collection airline airline_10\u00a0\r\n\u256d\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\r\n\u2502 # \u2502 \u00a0 \u00a0 id \u00a0 \u00a0 \u2502 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 content\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u00a0 \u00a0 \u00a0 \u00a0 cas \u00a0 \u00a0 \u00a0 \u00a0 \u2502 error \u2502 cluster \u2502\r\n\u251c\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\r\n\u2502 0 \u2502 airline_10 \u2502 \u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e \u2502 1722951864428789760 \u2502 \u00a0 \u00a0 \u00a0 \u2502 capella \u2502\r\n\u2502 \u00a0 \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502 id \u00a0 \u00a0 \u00a0 \u2502 10\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u00a0 \u00a0 \u00a0 \u2502 \u00a0 \u00a0 \u00a0 \u00a0 \u2502\r\n\u2502 \u00a0 \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502 type \u00a0 \u00a0 \u2502 airline \u00a0 \u00a0 \u00a0 \u2502 \u2502 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u00a0 \u00a0 \u00a0 \u2502 \u00a0 \u00a0 \u00a0 \u00a0 \u2502\r\n\u2502 \u00a0 \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502 name \u00a0 \u00a0 \u2502 40-Mile Air \u00a0 \u2502 \u2502 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u00a0 \u00a0 \u00a0 \u2502 \u00a0 \u00a0 \u00a0 \u00a0 \u2502\r\n\u2502 \u00a0 \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502 iata \u00a0 \u00a0 \u2502 Q5\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u00a0 \u00a0 \u00a0 \u2502 \u00a0 \u00a0 \u00a0 \u00a0 \u2502\r\n\u2502 \u00a0 \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502 icao \u00a0 \u00a0 \u2502 MLA \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u00a0 \u00a0 \u00a0 \u2502 \u00a0 \u00a0 \u00a0 \u00a0 \u2502\r\n\u2502 \u00a0 \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502 callsign \u2502 MILE-AIR\u00a0 \u00a0 \u00a0 \u2502 \u2502 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u00a0 \u00a0 \u00a0 \u2502 \u00a0 \u00a0 \u00a0 \u00a0 \u2502\r\n\u2502 \u00a0 \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2502 country\u00a0 \u2502 United States \u2502 \u2502 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u00a0 \u00a0 \u00a0 \u2502 \u00a0 \u00a0 \u00a0 \u00a0 \u2502\r\n\u2502 \u00a0 \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f \u2502 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 \u00a0 \u00a0 \u00a0 \u2502 \u00a0 \u00a0 \u00a0 \u00a0 \u2502\r\n\u2570\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f<\/pre>\n<p><span style=\"font-weight: 400;\">To distinguish the actual content from the metadata, the content is nested in the content field. If you want to have everything at the toplevel, you can pipe to the flatten command:<\/span><\/p>\n<pre class=\"nums:false lang:default decode:true\">&gt; doc get --collection airline airline_10 | flatten\r\n\u256d\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\r\n\u2502 # \u2502 \u00a0 \u00a0 id \u00a0 \u00a0 \u2502 content_id \u2502\u00a0 type \u00a0 \u2502\u00a0 \u00a0 name \u00a0 \u00a0 \u2502 iata \u2502 icao \u2502 callsign \u2502\u00a0 \u00a0 country\u00a0 \u00a0 \u2502 \u00a0 \u00a0 \u00a0 \u00a0 cas \u00a0 \u00a0 \u00a0 \u00a0 \u2502 error \u2502 cluster \u2502\r\n\u251c\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\r\n\u2502 0 \u2502 airline_10 \u2502 \u00a0 \u00a0 \u00a0 \u00a0 10 \u2502 airline \u2502 40-Mile Air \u2502 Q5 \u00a0 \u2502 MLA\u00a0 \u2502 MILE-AIR \u2502 United States \u2502 1722951864428789760 \u2502 \u00a0 \u00a0 \u00a0 \u2502 capella \u2502\r\n\u2570\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\r\n<\/pre>\n<p><span style=\"font-weight: 400;\">And you can get multiple documents by using a command like below:<\/span><\/p>\n<pre class=\"nums:false lang:default decode:true\">&gt; [airline_10 airline_10748 airline_137] | wrap id | doc get | flatten\r\n\u256d\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\r\n\u2502 # \u2502\u00a0 \u00a0 \u00a0 id \u00a0 \u00a0 \u00a0 \u2502 content_id \u2502\u00a0 type \u00a0 \u2502\u00a0 \u00a0 name \u00a0 \u00a0 \u2502 iata \u2502 icao \u2502 callsign \u2502\u00a0 \u00a0 country\u00a0 \u00a0 \u2502 \u00a0 \u00a0 \u00a0 \u00a0 cas \u00a0 \u00a0 \u00a0 \u00a0 \u2502 error \u2502 cluster \u2502\r\n\u251c\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\r\n\u2502 0 \u2502 airline_10\u00a0 \u00a0 \u2502 \u00a0 \u00a0 \u00a0 \u00a0 10 \u2502 airline \u2502 40-Mile Air \u2502 Q5 \u00a0 \u2502 MLA\u00a0 \u2502 MILE-AIR \u2502 United States \u2502 1722951864428789760 \u2502 \u00a0 \u00a0 \u00a0 \u2502 capella \u2502\r\n\u2502 1 \u2502 airline_10748 \u2502\u00a0 \u00a0 \u00a0 10748 \u2502 airline \u2502 Locair\u00a0 \u00a0 \u00a0 \u2502 ZQ \u00a0 \u2502 LOC\u00a0 \u2502 LOCAIR \u00a0 \u2502 United States \u2502 1722951863465607168 \u2502 \u00a0 \u00a0 \u00a0 \u2502 capella \u2502\r\n\u2502 2 \u2502 airline_137 \u00a0 \u2502\u00a0 \u00a0 \u00a0 \u00a0 137 \u2502 airline \u2502 Air France\u00a0 \u2502 AF \u00a0 \u2502 AFR\u00a0 \u2502 AIRFRANS \u2502 France\u00a0 \u00a0 \u00a0 \u00a0 \u2502 1722951862822764544 \u2502 \u00a0 \u00a0 \u00a0 \u2502 capella \u2502\r\n\u2570\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f<\/pre>\n<h3><span style=\"font-weight: 400;\">cbsh command to write documents via KV service<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Documents can be mutated with <\/span><i><span style=\"font-weight: 400;\">doc insert<\/span><\/i><span style=\"font-weight: 400;\">, <\/span><i><span style=\"font-weight: 400;\">doc upsert<\/span><\/i><span style=\"font-weight: 400;\"> and <\/span><i><span style=\"font-weight: 400;\">doc replace<\/span><\/i><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">All those three commands take similar arguments. If you only want to mutate a single document, passing in the ID and the content as arguments is the simplest way:<\/span><\/p>\n<pre class=\"nums:false lang:default decode:true\">&gt; \u00a0doc upsert my-doc {\"hello\": \"world\"}\r\n\u256d\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\r\n\u2502 # \u2502 processed \u2502 success \u2502 failed \u2502 failures \u2502 cluster \u2502\r\n\u251c\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\r\n\u2502 0 \u2502 \u00a0 \u00a0 \u00a0 \u00a0 1 \u2502 \u00a0 \u00a0 \u00a0 1 \u2502\u00a0 \u00a0 \u00a0 0 \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 capella \u2502\r\n\u2570\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\r\n<\/pre>\n<p><span style=\"font-weight: 400;\">Documents can be removed with <\/span><i><span style=\"font-weight: 400;\">doc remove<\/span><\/i><span style=\"font-weight: 400;\">.<\/span><\/p>\n<pre class=\"nums:false lang:default decode:true\">&gt; doc remove my-doc\r\n\u256d\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\r\n\u2502 # \u2502 processed \u2502 success \u2502 failed \u2502 failures \u2502 cluster \u2502\r\n\u251c\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\r\n\u2502 0 \u2502 \u00a0 \u00a0 \u00a0 \u00a0 1 \u2502 \u00a0 \u00a0 \u00a0 1 \u2502\u00a0 \u00a0 \u00a0 0 \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u2502 capella \u2502\r\n\u2570\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\r\n<\/pre>\n<p><span style=\"font-weight: 400;\">There are many more KV operations you can do such as <\/span><a href=\"https:\/\/couchbase.sh\/docs\/#_subdoc_get\"><i><span style=\"font-weight: 400;\">subdoc get<\/span><\/i><\/a><span style=\"font-weight: 400;\">. Please visit our documentation to learn more about KV operations.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Query data using SQL++<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Running <\/span><a href=\"https:\/\/docs.couchbase.com\/cloud\/n1ql\/query.html\"><span style=\"font-weight: 400;\">SQL++ queries<\/span><\/a><span style=\"font-weight: 400;\"> using the <\/span><a href=\"https:\/\/couchbase.sh\/docs\/#_query_commands\"><span style=\"font-weight: 400;\">Couchbase Shell<\/span><\/a><span style=\"font-weight: 400;\"> is one of the most powerful features of the tool, enabling you to interact with your Couchbase data in a flexible and efficient manner. SQL++, an extension of SQL designed for JSON data, allows you to perform complex queries, including joins, aggregates, and subqueries, directly from the command line with cbsh.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">For example, we can see how many airlines are operating in \u2018France\u2019 in travel-sample data:<\/span><\/p>\n<pre class=\"nums:false lang:default decode:true\">&gt; query \"select count(*) as french_airlines_count from airline where country='France'\"\r\n\u256d\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\r\n\u2502 # \u2502 french_airlines_count \u2502 cluster \u2502\r\n\u251c\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\r\n\u2502 0 \u2502\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 21 \u2502 capella \u2502\r\n\u2570\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\r\n<\/pre>\n<p>SQL++ is even more powerful as users can use <a href=\"https:\/\/couchbase.sh\/docs\/#_query\">named parameters<\/a> and also use piping (|) to redirect the query command resultset to other commands. Visit our <a href=\"https:\/\/couchbase.sh\/docs\/#_query_commands\">documentation<\/a> for more details.<\/p>\n<h2><span style=\"font-weight: 400;\">Get started<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">To help you get started with cbsh, we&#8217;ve prepared a detailed getting started guide on our <\/span><a href=\"https:\/\/couchbase.sh\/docs\/#_installation\"><span style=\"font-weight: 400;\">documentation<\/span><\/a><span style=\"font-weight: 400;\"> website. Here\u2019s a quick overview of how to begin:<\/span><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li><span style=\"font-weight: 400;\"><strong>Getting cbsh<\/strong>: Download cbsh for your operating system from the <\/span><a href=\"https:\/\/couchbase.sh\/docs\/#_installation\"><span style=\"font-weight: 400;\">Couchbase shell website<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/li>\n<li><span style=\"font-weight: 400;\"><strong>Connect to Your Cluster<\/strong>: Recommended way is to create a config file as specified in <\/span><a href=\"https:\/\/couchbase.sh\/docs\/#_config_file_format\"><span style=\"font-weight: 400;\">config file<\/span><\/a><span style=\"font-weight: 400;\"> documentation.<\/span><\/li>\n<li><span style=\"font-weight: 400;\">Perform CRUD operations, <\/span><a href=\"https:\/\/couchbase.sh\/docs\/#_query_commands\"><span style=\"font-weight: 400;\">run queries<\/span><\/a><span style=\"font-weight: 400;\">, or <\/span><a href=\"https:\/\/couchbase.sh\/docs\/#_vector_commands\"><span style=\"font-weight: 400;\">Vector Search<\/span><\/a><span style=\"font-weight: 400;\">, and leverage Couchbase\u2019s powerful features. To get you started very quickly, our documentation provides existing <\/span><a href=\"https:\/\/couchbase.sh\/docs\/#_recipes\"><span style=\"font-weight: 400;\">recipes<\/span><\/a><span style=\"font-weight: 400;\"> for some common use cases.<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2><span style=\"font-weight: 400;\">Community and open source support<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">We believe in the power of community and open-source development. Couchbase cbsh <\/span><a href=\"https:\/\/github.com\/couchbaselabs\/couchbase-shell\"><span style=\"font-weight: 400;\">is open source<\/span><\/a><span style=\"font-weight: 400;\">, and we encourage you to contribute, provide feedback, and join the conversation. Join the <\/span><a href=\"https:\/\/www.couchbase.com\/forums\/\"><span style=\"font-weight: 400;\">Couchbase Forums<\/span><\/a><span style=\"font-weight: 400;\"> or <\/span><a href=\"https:\/\/discord.com\/invite\/K7NPMPGrPk\"><span style=\"font-weight: 400;\">Couchbase Discord.<\/span><\/a><\/p>\n<h2><span style=\"font-weight: 400;\">Further reading<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">To learn more, check out our <\/span><a href=\"https:\/\/couchbase.sh\/docs\/\"><span style=\"font-weight: 400;\">documentation website<\/span><\/a><span style=\"font-weight: 400;\">. It goes into more detail on various supported commands and configurations, especially around connection credentials, and examples of piping commands together to achieve desired results.<\/span><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><a href=\"https:\/\/couchbase.sh\/docs\/#_installation\">Download and install Couchbase Shell &#8211; cbsh<\/a><\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/couchbase.sh\/docs\/#_installation\">Supported operating systems<\/a> are listed on our documentation website<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Happy command shell!<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The Couchbase Team<\/span><\/p>\n<p><br style=\"font-weight: 400;\" \/><br style=\"font-weight: 400;\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>We are thrilled to announce the General Availability (GA) of Couchbase Shell (cbsh), a powerful command-line tool built on top of nushell designed to make your interactions with Couchbase easier and more efficient. Couchbase shell supports powerful vector search capabilities [&hellip;]<\/p>\n","protected":false},"author":85357,"featured_media":16271,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[10122,2242,2225,1816,9973,9937],"tags":[10023,10020,10024,1989],"ppma_author":[9987,10022],"class_list":["post-16269","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-artificial-intelligence-ai","category-connectors","category-cloud","category-couchbase-server","category-generative-ai-genai","category-vector-search","tag-cbsh","tag-cbshell","tag-couchbase-shell","tag-tooling"],"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>Couchbase Shell (cbsh) Reaches v1.0: Unlocking the Power of Vector Search &amp; Beyond - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"Couchbase releases Couchbase Shell (cbsh) with advanced vector search for GenAI and improved database interactions\" \/>\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\/couchbase-shell-cbsh-v1-0-vector-search\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Couchbase Shell (cbsh) Reaches v1.0: Unlocking the Power of Vector Search &amp; Beyond\" \/>\n<meta property=\"og:description\" content=\"Couchbase releases Couchbase Shell (cbsh) with advanced vector search for GenAI and improved database interactions\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/couchbase-shell-cbsh-v1-0-vector-search\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2024-09-11T16:59:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-13T23:36:44+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/Couchbase-Shell-Launch-Blog-Image.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2400\" \/>\n\t<meta property=\"og:image:height\" content=\"1256\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Vishal Dhiman, Sr. Product Manager, Jack Westwood, 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=\"Vishal Dhiman, Sr. Product Manager\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-shell-cbsh-v1-0-vector-search\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-shell-cbsh-v1-0-vector-search\/\"},\"author\":{\"name\":\"Vishal Dhiman, Sr. Product Manager\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/853c7ac2867fb9e801ff769321364961\"},\"headline\":\"Couchbase Shell (cbsh) Reaches v1.0: Unlocking the Power of Vector Search &#038; Beyond\",\"datePublished\":\"2024-09-11T16:59:55+00:00\",\"dateModified\":\"2025-06-13T23:36:44+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-shell-cbsh-v1-0-vector-search\/\"},\"wordCount\":1882,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-shell-cbsh-v1-0-vector-search\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/Couchbase-Shell-Launch-Blog-Image.jpg\",\"keywords\":[\"cbsh\",\"cbshell\",\"couchbase shell\",\"tooling\"],\"articleSection\":[\"Artificial Intelligence (AI)\",\"Connectors\",\"Couchbase Capella\",\"Couchbase Server\",\"Generative AI (GenAI)\",\"Vector Search\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/couchbase-shell-cbsh-v1-0-vector-search\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-shell-cbsh-v1-0-vector-search\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/couchbase-shell-cbsh-v1-0-vector-search\/\",\"name\":\"Couchbase Shell (cbsh) Reaches v1.0: Unlocking the Power of Vector Search & Beyond - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-shell-cbsh-v1-0-vector-search\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-shell-cbsh-v1-0-vector-search\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/Couchbase-Shell-Launch-Blog-Image.jpg\",\"datePublished\":\"2024-09-11T16:59:55+00:00\",\"dateModified\":\"2025-06-13T23:36:44+00:00\",\"description\":\"Couchbase releases Couchbase Shell (cbsh) with advanced vector search for GenAI and improved database interactions\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-shell-cbsh-v1-0-vector-search\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/couchbase-shell-cbsh-v1-0-vector-search\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-shell-cbsh-v1-0-vector-search\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/Couchbase-Shell-Launch-Blog-Image.jpg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/Couchbase-Shell-Launch-Blog-Image.jpg\",\"width\":2400,\"height\":1256,\"caption\":\"Couchbase Shell Launch Blog Image\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/couchbase-shell-cbsh-v1-0-vector-search\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Couchbase Shell (cbsh) Reaches v1.0: Unlocking the Power of Vector Search &#038; Beyond\"}]},{\"@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\/853c7ac2867fb9e801ff769321364961\",\"name\":\"Vishal Dhiman, Sr. Product Manager\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/58e586f8e4645cc672ef6f140799b4b3\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/vishal-dhiman-couchbase.jpg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/vishal-dhiman-couchbase.jpg\",\"caption\":\"Vishal Dhiman, Sr. Product Manager\"},\"url\":\"https:\/\/www.couchbase.com\/blog\/author\/vishald\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Couchbase Shell (cbsh) Reaches v1.0: Unlocking the Power of Vector Search & Beyond - The Couchbase Blog","description":"Couchbase releases Couchbase Shell (cbsh) with advanced vector search for GenAI and improved database interactions","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\/couchbase-shell-cbsh-v1-0-vector-search\/","og_locale":"en_US","og_type":"article","og_title":"Couchbase Shell (cbsh) Reaches v1.0: Unlocking the Power of Vector Search & Beyond","og_description":"Couchbase releases Couchbase Shell (cbsh) with advanced vector search for GenAI and improved database interactions","og_url":"https:\/\/www.couchbase.com\/blog\/couchbase-shell-cbsh-v1-0-vector-search\/","og_site_name":"The Couchbase Blog","article_published_time":"2024-09-11T16:59:55+00:00","article_modified_time":"2025-06-13T23:36:44+00:00","og_image":[{"width":2400,"height":1256,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/Couchbase-Shell-Launch-Blog-Image.jpg","type":"image\/jpeg"}],"author":"Vishal Dhiman, Sr. Product Manager, Jack Westwood, Software Engineer","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Vishal Dhiman, Sr. Product Manager","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-shell-cbsh-v1-0-vector-search\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-shell-cbsh-v1-0-vector-search\/"},"author":{"name":"Vishal Dhiman, Sr. Product Manager","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/853c7ac2867fb9e801ff769321364961"},"headline":"Couchbase Shell (cbsh) Reaches v1.0: Unlocking the Power of Vector Search &#038; Beyond","datePublished":"2024-09-11T16:59:55+00:00","dateModified":"2025-06-13T23:36:44+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-shell-cbsh-v1-0-vector-search\/"},"wordCount":1882,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-shell-cbsh-v1-0-vector-search\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/Couchbase-Shell-Launch-Blog-Image.jpg","keywords":["cbsh","cbshell","couchbase shell","tooling"],"articleSection":["Artificial Intelligence (AI)","Connectors","Couchbase Capella","Couchbase Server","Generative AI (GenAI)","Vector Search"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/couchbase-shell-cbsh-v1-0-vector-search\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-shell-cbsh-v1-0-vector-search\/","url":"https:\/\/www.couchbase.com\/blog\/couchbase-shell-cbsh-v1-0-vector-search\/","name":"Couchbase Shell (cbsh) Reaches v1.0: Unlocking the Power of Vector Search & Beyond - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-shell-cbsh-v1-0-vector-search\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-shell-cbsh-v1-0-vector-search\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/Couchbase-Shell-Launch-Blog-Image.jpg","datePublished":"2024-09-11T16:59:55+00:00","dateModified":"2025-06-13T23:36:44+00:00","description":"Couchbase releases Couchbase Shell (cbsh) with advanced vector search for GenAI and improved database interactions","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/couchbase-shell-cbsh-v1-0-vector-search\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/couchbase-shell-cbsh-v1-0-vector-search\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-shell-cbsh-v1-0-vector-search\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/Couchbase-Shell-Launch-Blog-Image.jpg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/Couchbase-Shell-Launch-Blog-Image.jpg","width":2400,"height":1256,"caption":"Couchbase Shell Launch Blog Image"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/couchbase-shell-cbsh-v1-0-vector-search\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Couchbase Shell (cbsh) Reaches v1.0: Unlocking the Power of Vector Search &#038; Beyond"}]},{"@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\/853c7ac2867fb9e801ff769321364961","name":"Vishal Dhiman, Sr. Product Manager","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/58e586f8e4645cc672ef6f140799b4b3","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/vishal-dhiman-couchbase.jpg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/vishal-dhiman-couchbase.jpg","caption":"Vishal Dhiman, Sr. Product Manager"},"url":"https:\/\/www.couchbase.com\/blog\/author\/vishald\/"}]}},"authors":[{"term_id":9987,"user_id":85357,"is_guest":0,"slug":"vishald","display_name":"Vishal Dhiman, Sr. Product Manager","avatar_url":{"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/vishal-dhiman-couchbase.jpg","url2x":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/vishal-dhiman-couchbase.jpg"},"author_category":"","last_name":"Dhiman, Sr. Product Manager","first_name":"Vishal","job_title":"Sr. Product Manager","user_url":"","description":""},{"term_id":10022,"user_id":85521,"is_guest":0,"slug":"jackwestwood","display_name":"Jack Westwood, Software Engineer","avatar_url":{"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/jack-westwood-couchbase.png","url2x":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2024\/09\/jack-westwood-couchbase.png"},"author_category":"","last_name":"Westwood, Software Engineer","first_name":"Jack","job_title":"Software Engineer 2","user_url":"","description":""}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/16269","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\/85357"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/comments?post=16269"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/16269\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media\/16271"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media?parent=16269"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/categories?post=16269"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/tags?post=16269"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=16269"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}