Databases · DBC-39

Full-Text Search with Couchbase

Full-Text Search with Couchbase is a lab-based course in storing and searching JSON data with Couchbase Server, from document design, SQL++ queries and indexes to full-text search with the Search Service, including analysers, BM25 ranking and synonyms. It suits database administrators, developers who build search features and people starting out in NoSQL who already know basic SQL.

Updated
From 12,150 THB / person 13,500 −10% excl. VAT 7% · group rates available
PDFDownload the course outline
  • Duration18 hours · 3 days
  • FormatOnsite / live online
  • Next roundOn request
  • CertificateIncluded

Course overview

Modern applications store data as JSON documents whose structure can change, and users expect to type a search for products, articles or customers and get relevant results immediately, even with typos or different wording. Searching with LIKE in a typical database is slow and has no sense of meaning. Couchbase Server brings a document database, the SQL++ query language and a Search Service for full-text search into one platform, so you can build fast, accurate search without running a separate search system.

This course takes learners through Couchbase Server 8: NoSQL concepts, installation, data modelling with buckets, scopes and collections, SQL++ with nested data and arrays, indexes and query plans, security and Eventing. It then goes deep into the Search Service, covering analysers, mappings, query types, BM25 ranking, synonyms and searching from SQL++, and closes with a workshop that builds a product search engine with an overview of vector search.

What you’ll gain

  • Understand NoSQL concepts and the multi-service architecture of Couchbase Server
  • Design JSON documents with buckets, scopes and collections
  • Write SQL++ for nested data, arrays and joins
  • Create indexes and tune query performance with EXPLAIN
  • Build search indexes with analysers, mappings and synonyms
  • Run full-text search from SQL++, the REST API and applications

Who this course is for

  • Database administrators who are starting with or running Couchbase
  • Developers who build search into websites or applications
  • People who want to start a career in NoSQL databases
  • Teams who already use SQL and need to work with JSON data

Prerequisites

  • Basic knowledge of databases
  • Able to write basic SQL such as SELECT, WHERE and GROUP BY
  • A basic understanding of JSON
  • A laptop that can run Docker, with permission to install software

Curriculum

Course Details

This course is the 2026 edition of Full Text Search with Couchbase NoSQL, rewritten for Couchbase Server 8. It runs for 3 days, 6 hours per day (18 hours in total, 09:00-16:00), as lectures with labs on each learner's own test cluster. Intermediate level. Day one lays the NoSQL foundations, installs Couchbase, models data and writes SQL++. Day two builds indexes, tunes performance, manages permissions and uses Eventing. Day three goes deep into full-text search with the Search Service, covering analysers, queries, BM25, synonyms and searching from SQL++, and closes with a product search workshop and an overview of vector search. Learners take home the datasets and index definitions for every lab.

Day 1 NoSQL, Couchbase Server and SQL++

Section 1: NoSQL and Document Databases

  • Modern application challenges and the limits of tabular databases
  • The CAP theorem and the types of NoSQL database
  • How document databases differ from relational ones
  • What Couchbase is good for and where it fits in a system
  • Lab: compare multi-table order data with a JSON document

Section 2: Lab: Installing Couchbase Server 8

  • Couchbase services: Data, Query, Index, Search and Eventing
  • Multi-dimensional scaling and placing services on different nodes
  • Buckets, scopes and collections
  • Installing with Docker and getting to know the Web Console
  • Lab: install a test cluster, create a bucket and load sample data

Section 3: Lab: Data Modelling for JSON Documents

  • Designing document keys that are readable and fast to access
  • Choosing between nesting data and referencing other documents
  • Using scopes and collections to separate data types and tenants
  • Designing documents with search in mind from the start
  • Lab: design product, review and category documents for a search system

Section 4: Lab: SQL++ Essentials

  • Query Workbench and the cbq shell
  • SELECT, WHERE, ORDER BY, LIMIT and aliases
  • USE KEYS and fetching documents by key
  • MISSING versus NULL, and commonly used functions
  • Lab: find products by category, price and status with SQL++

Section 5: Lab: SQL++ with Arrays, Joins and Data Changes

  • ANY, EVERY and ARRAY for data inside arrays
  • UNNEST and NEST for flattening and grouping nested data
  • Joins across collections, and GROUP BY with aggregate functions
  • INSERT, UPSERT, UPDATE and DELETE
  • Lab: a report of average review scores for each category
Day 2 Indexes, Performance, Security and Eventing

Section 6: Lab: The Index Service

  • Primary versus secondary indexes, and why not to rely on primary indexes
  • Composite, partial and array indexes
  • Covering indexes that avoid fetching documents
  • DEFER_BUILD and BUILD INDEX for building several indexes together
  • Lab: create indexes for the most common product queries

Section 7: Lab: Query Planning and EXPLAIN

  • Reading execution plans with EXPLAIN and the visual plan
  • IndexScan versus PrimaryScan, and pushdowns that speed queries up
  • The cost-based optimiser and UPDATE STATISTICS
  • ADVISE and the Index Advisor for index suggestions
  • Lab: move a slow query from a PrimaryScan to an index

Section 8: Lab: Tuning Queries and Indexes

  • Index partitioning and index replicas
  • Prepared statements and optimiser hints
  • Tracking slow queries in the system catalogue
  • A checklist for tuning queries and managing index size
  • Lab: compare response times before and after index tuning on a large dataset

Section 9: Lab: RBAC, the REST API and Security

  • Users and roles at bucket, scope and collection level
  • Managing users with SQL++ statements and the Web Console
  • Running queries and admin tasks through the REST API with curl
  • An overview of encrypted connections and auditing
  • Lab: separate privileges for an application, analysts and administrators

Section 10: Lab: Eventing Functions

  • What events are and which jobs suit Eventing
  • Writing Eventing functions in JavaScript with bindings
  • Deploying, pausing and undeploying functions
  • Points to watch about event order and recursive writes
  • Lab: build a search-ready field automatically whenever a product changes
Day 3 Full-Text Search with the Search Service

Section 11: Lab: Search Service Essentials

  • When to use full-text search instead of SQL++ and LIKE
  • Inverted indexes and splitting text into terms
  • Creating a search index with type mappings by scope and collection
  • Trying searches in the Web Console
  • Lab: build a search index for product names and descriptions

Section 12: Lab: Analysers and Field Mappings

  • Built-in analysers such as standard, keyword and simple
  • Custom analysers: character filters, tokenisers and token filters
  • Field mapping options: store, include in all, doc values and term vectors
  • Testing how text in several languages, including Thai, is tokenised
  • Lab: tune the analyser so product names are found more accurately

Section 13: Lab: Search Queries and Ranking

  • Match, match phrase, fuzzy, prefix and wildcard queries
  • Boolean queries (must, should, must not) and numeric or date ranges
  • BM25 ranking compared with tf-idf, and reading scores
  • Facets, highlighting, sorting and pagination
  • Lab: a product search page with price filters and counts by category

Section 14: Lab: Search from SQL++ and Applications

  • The SEARCH() function in SQL++ and choosing the index
  • Flex Index so SQL++ queries can use search indexes
  • Synonym collections for words with similar meanings
  • Calling search through the REST API and the Python or Node.js SDK
  • Lab: a product search API that understands synonyms

Section 15: Workshop: A Product Search Engine and an Overview of Vector Search

  • Vector search in version 8: search vector, Hyperscale and composite vector indexes
  • Hybrid search that combines keywords and meaning
  • Workshop: a search system with filters, facets, synonyms and highlighting
  • Measuring search quality with a set of test queries
  • Present the work and summarise a checklist before using search in production

Schedule & training options

For individuals — public rounds

No public rounds are open right now. Join the waiting list and we will contact you first when the next round opens, or ask us on LINE. Or call 02-570-8449 or 088-807-9770

For organisations — in-house / private

  • Tailor the content to your team’s tools and projects
  • Your dates, at your office or live online
  • Quotation with tax ID for procurement
Corporate training quote

Instructors

Frequently asked questions

What is N1QL in Couchbase?

N1QL, now called SQL++ by Couchbase, is a query language with SQL-like syntax for JSON documents. You use SELECT, WHERE, GROUP BY and JOIN as usual, with extras for nested data, such as dot notation for fields, ANY or UNNEST to work with arrays, and a distinction between MISSING fields and NULL values. Current releases also work with scopes and collections and can call full-text search through the SEARCH() function, so people who already know SQL can get started with a document database quickly.

How does full text search differ from searching with LIKE?

LIKE compares characters literally, and a leading % usually forces a scan of all the data. Full-text search builds a special index that splits text into terms with an analyser, so searches are fast and support fuzzy matching, word stems, synonyms and ranking by relevance, and Couchbase Server 8 supports BM25 ranking. In Couchbase you create a search index in the Web Console or through the REST API, then query it from an SDK or with the SEARCH function inside a query.

How do you create indexes to make Couchbase queries faster?

Look at which fields the query filters or sorts on and create a secondary index on them in the relevant collection with CREATE INDEX. Use an array index for values inside arrays, and if the index contains every field the query needs, it becomes a covering index that avoids fetching documents. Run EXPLAIN to confirm the plan uses an IndexScan rather than the much slower PrimaryScan, or use ADVISE to get index suggestions, and keep primary indexes for development only.

Who is the Full-Text Search with Couchbase course for, and what should I know beforehand?

It suits people new to Couchbase, database administrators, developers who build search features and those starting a career in NoSQL databases. You should have basic database knowledge, be able to write basic SQL and understand JSON at a basic level, and bring a laptop that can run Docker.

What will I be able to do after the Full-Text Search with Couchbase course?

You will be able to explain the Couchbase Server architecture, design JSON documents with scopes and collections, write SQL++ for nested data and arrays, create indexes and tune queries with EXPLAIN, manage user permissions, build search indexes with analysers, synonyms and facets, and run full-text search from SQL++, the REST API or an application. Participants receive a Certificate of Completion.

Can the Full-Text Search with Couchbase course be run in-house for our team?

Yes. It can be run in-house for your team, with examples adapted to your own work, such as designing search indexes for the product data or documents your team already uses. You can request a quotation from this page, or contact us on LINE @itgenius or by phone on 02-570-8449.