0Pricing
Supabase Backend as a Service · Урок

Полнотекстовый поиск и векторные представления с pgvector

Расширяйте возможности поиска с помощью полнотекстового поиска Postgres и семантического поиска по сходству с расширением pgvector в Supabase.

«Полнотекстовый поиск и векторные представления с pgvector» — бесплатный урок Supabase Backend as a Service на CoddyKit. Это урок 3 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Supabase Backend as a Service, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Supabase Backend as a Service содержит 3 уроков всего.

Части этого урока еще не переведены и отображаются на английском.

Two Kinds of Search

Postgres supports full-text search for keyword matching and, via the pgvector extension, semantic search over AI embeddings, both inside Supabase.

Full-Text Search Basics

Postgres turns text into a searchable tsvector and queries it with a tsquery, handling stemming and ranking.

A Full-Text Query

Match documents whose body contains the search terms.

select id, title
from articles
where to_tsvector('english', body)
      @@ plainto_tsquery('english', 'database scaling');

Indexing for Speed

A GIN index on the tsvector makes full-text search fast at scale.

create index articles_fts
on articles
using gin (to_tsvector('english', body));

What Are Embeddings?

An embedding is a list of numbers (a vector) that captures meaning. Similar texts have vectors that are close together, enabling search by concept, not just keywords.

Enabling pgvector

Turn on the extension, then add a vector column sized to your model's dimensions.

create extension if not exists vector;
alter table docs add column embedding vector(1536);

Storing an Embedding

Generate the vector with an embedding model, then insert it alongside the text.

const { error } = await supabase
  .from('docs')
  .insert({ content: text, embedding: vectorArray });

Similarity Search

Find the nearest vectors using a distance operator. <=> is cosine distance.

select content
from docs
order by embedding <=> query_embedding
limit 5;

Indexing Vectors

An HNSW or IVFFlat index speeds up nearest-neighbor search on large vector tables.

create index on docs
using hnsw (embedding vector_cosine_ops);

Choosing the Right Approach

Use full-text search for exact keyword needs, and vector search for meaning-based retrieval like Q&A or recommendations. Many apps combine both (hybrid search).

function pickSearch(needsMeaning) {
  return needsMeaning ? 'vector' : 'full-text';
}
console.log(pickSearch(true));

Putting It Together

Postgres gives you both keyword and semantic search natively. With GIN indexes for text and HNSW indexes for vectors, search stays fast as data grows.

Quick Check

Test your understanding of search extensions.

Recap

You learned full-text search with tsvector and GIN indexes, plus semantic search with pgvector, vector columns, distance operators, and HNSW indexes, and when to use each or combine them.

Часто задаваемые вопросы

Урок «Полнотекстовый поиск и векторные представления с pgvector» бесплатный?

Да — полный текст урока «Полнотекстовый поиск и векторные представления с pgvector» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Supabase Backend as a Service, подпишись на CoddyKit PRO. Курс Supabase Backend as a Service содержит 3 уроков всего.

Чему я научусь в уроке «Полнотекстовый поиск и векторные представления с pgvector»?

Расширяйте возможности поиска с помощью полнотекстового поиска Postgres и семантического поиска по сходству с расширением pgvector в Supabase. Ты практикуешь Supabase Backend as a Service с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Supabase Backend as a Service?

Предыдущий опыт не требуется. Supabase Backend as a Service на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 3.

Сколько времени занимает урок «Полнотекстовый поиск и векторные представления с pgvector»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Supabase Backend as a Service?

Да. Каждый урок Supabase Backend as a Service включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Использование расширений Postgres
  2. Расширенные геопространственные данные (PostGIS)
  3. Полнотекстовый поиск и векторные представления с pgvector
← Назад к Supabase Backend as a Service