TigerData logo
TigerData logo
  • Product

    Tiger Cloud

    Robust elastic cloud platform for startups and enterprises

    Agentic Postgres

    Postgres for Agents

    TimescaleDB

    Postgres for time-series, real-time analytics and events

  • Docs
  • Pricing

    Pricing

    Enterprise Tier

  • Developer Hub

    Changelog

    Benchmarks

    Blog

    Community

    Customer Stories

    Events

    Support

    Integrations

    Launch Hub

  • Company

    Contact us

    About

    Timescale

    Partners

    Security

    Careers

Log InTry for free
Home
Stationary Time-Series AnalysisThe Best Time-Series Databases ComparedTime-Series Analysis and Forecasting With Python Alternatives to TimescaleWhat Are Open-Source Time-Series Databases—Understanding Your OptionsWhy Consider Using PostgreSQL for Time-Series Data?Time-Series Analysis in RAWS Time-Series Database: Understanding Your OptionsWhat Is Temporal Data?What Is a Time Series and How Is It Used?Is Your Data Time Series? Data Types Supported by PostgreSQL and TimescaleUnderstanding Database Workloads: Variable, Bursty, and Uniform PatternsHow to Work With Time Series in Python?Tools for Working With Time-Series Analysis in PythonGuide to Time-Series Analysis in PythonUnderstanding Autoregressive Time-Series ModelingCreating a Fast Time-Series Graph With Postgres Materialized Views
PostgreSQL Join Type TheoryStructured vs. Semi-Structured vs. Unstructured Data in PostgreSQLUnderstanding PostgreSQLUnderstanding FILTER in PostgreSQL (With Examples)Understanding Foreign Keys in PostgreSQLUnderstanding GROUP BY in PostgreSQL (With Examples)Understanding PostgreSQL User-Defined FunctionsUnderstanding PostgreSQL's COALESCE FunctionUnderstanding SQL Aggregate FunctionsUsing PostgreSQL UPDATE With JOINOptimizing Your Database: A Deep Dive into PostgreSQL Data TypesHow to Install PostgreSQL on LinuxUnderstanding FROM in PostgreSQL (With Examples)How to Address ‘Error: Could Not Resize Shared Memory Segment’ Understanding HAVING in PostgreSQL (With Examples)How to Fix No Partition of Relation Found for Row in Postgres DatabasesHow to Fix Transaction ID Wraparound ExhaustionUnderstanding LIMIT in PostgreSQL (With Examples)Understanding ORDER BY in PostgreSQL (With Examples)Understanding WINDOW in PostgreSQL (With Examples)Understanding PostgreSQL WITHIN GROUPPostgreSQL Mathematical Functions: Enhancing Coding EfficiencyUnderstanding DISTINCT in PostgreSQL (With Examples)Using PostgreSQL String Functions for Improved Data AnalysisData Processing With PostgreSQL Window FunctionsUnderstanding WHERE in PostgreSQL (With Examples)PostgreSQL Joins : A SummaryWhat Is Data Compression and How Does It Work?What Is Data Transformation, and Why Is It Important?How to Install PostgreSQL on MacOS5 Common Connection Errors in PostgreSQL and How to Solve ThemUnderstanding PostgreSQL FunctionsUnderstanding OFFSET in PostgreSQL (With Examples)Understanding PostgreSQL Date and Time FunctionsUnderstanding the Postgres string_agg FunctionWhat Is a PostgreSQL Inner Join?What Is a PostgreSQL Left Join? And a Right Join?A Guide to PostgreSQL ViewsData Partitioning: What It Is and Why It MattersUnderstanding ACID Compliance Understanding percentile_cont() and percentile_disc() in PostgreSQLUnderstanding PostgreSQL Conditional FunctionsUnderstanding PostgreSQL Array FunctionsWhat Characters Are Allowed in PostgreSQL Strings?What Is a PostgreSQL Full Outer Join?What Is a PostgreSQL Cross Join?Understanding PostgreSQL SELECTSelf-Hosted or Cloud Database? A Countryside Reflection on Infrastructure ChoicesStrategies for Improving Postgres JOIN PerformanceUnderstanding the Postgres extract() FunctionUnderstanding the rank() and dense_rank() Functions in PostgreSQL
Pg_partman vs. Hypertables for Postgres PartitioningPostgreSQL Performance Tuning: Designing and Implementing Your Database SchemaPostgreSQL Performance Tuning: Key ParametersPostgreSQL Performance Tuning: Optimizing Database IndexesNavigating Growing PostgreSQL Tables With Partitioning (and More)Top PostgreSQL Drivers for PythonWhen to Consider Postgres PartitioningUnderstanding PostgreSQL TablespacesWhat Is Audit Logging and How to Enable It in PostgreSQLHow to Reduce Bloat in Large PostgreSQL TablesDetermining the Optimal Postgres Partition SizeGuide to PostgreSQL Database OperationsDesigning Your Database Schema: Wide vs. Narrow Postgres TablesBest Practices for (Time-)Series Metadata Tables Guide to Postgres Data ManagementHow to Query JSONB in PostgreSQLHow to Index JSONB Columns in PostgreSQLHow to Monitor and Optimize PostgreSQL Index PerformanceOptimizing Array Queries With GIN Indexes in PostgreSQLSQL/JSON Data Model and JSON in SQL: A PostgreSQL PerspectiveHow to Query JSON Metadata in PostgreSQLA Guide to pg_restore (and pg_restore Example)Handling Large Objects in PostgresPostgreSQL Performance Tuning: How to Size Your DatabaseGuide to PostgreSQL PerformanceAn Intro to Data Modeling on PostgreSQLBest Practices for Time-Series Data Modeling: Single or Multiple Partitioned Table(s) a.k.a. Hypertables What Is a PostgreSQL Temporary View?A PostgreSQL Database Replication GuideHow to Compute Standard Deviation With PostgreSQLHow PostgreSQL Data Aggregation WorksBuilding a Scalable DatabaseA Guide to Scaling PostgreSQLHow to Use PostgreSQL for Data TransformationRecursive Query in SQL: What It Is, and How to Write OneGuide to PostgreSQL Database DesignExplaining PostgreSQL EXPLAINA Guide to Data Analysis on PostgreSQLGuide to PostgreSQL SecurityHow to Use Psycopg2: The PostgreSQL Adapter for Python
Best Practices for Postgres Data ManagementBest Practices for Postgres PerformanceBest Practices for Postgres SecurityHow to Design Your PostgreSQL Database: Two Schema ExamplesBest Practices for PostgreSQL Database OperationsBest Practices for PostgreSQL Data AnalysisTesting Postgres Ingest: INSERT vs. Batch INSERT vs. COPYHow to Manage Your Data With Data Retention PoliciesBest Practices for Scaling PostgreSQLHow to Store Video in PostgreSQL Using BYTEAHow to Handle High-Cardinality Data in PostgreSQLHow to Use PostgreSQL for Data NormalizationBest Practices for PostgreSQL AggregationBest Practices for Postgres Database ReplicationHow to Use a Common Table Expression (CTE) in SQL
PostgreSQL Extensions: amcheckPostgreSQL Extensions: Unlocking Multidimensional Points With Cube PostgreSQL Extensions: hstorePostgreSQL Extensions: ltreePostgreSQL Extensions: Secure Your Time-Series Data With pgcryptoPostgreSQL Extensions: pg_prewarmPostgreSQL Extensions: pgRoutingPostgreSQL Extensions: pg_stat_statementsPostgreSQL Extensions: Install pg_trgm for Data MatchingPostgreSQL Extensions: Turning PostgreSQL Into a Vector Database With pgvectorPostgreSQL Extensions: Database Testing With pgTAPPostgreSQL Extensions: PL/pgSQLPostgreSQL Extensions: Using PostGIS and Timescale for Advanced Geospatial InsightsPostgreSQL Extensions: Intro to uuid-ossp
PostgreSQL as a Real-Time Analytics DatabaseUnderstanding OLTPWhat Is the Best Database for Real-Time AnalyticsHow to Build an IoT Pipeline for Real-Time Analytics in PostgreSQLHow to Choose a Real-Time Analytics DatabaseOLAP Workloads on PostgreSQL: A GuideHow to Choose an OLAP DatabaseData Analytics vs. Real-Time Analytics: How to Pick Your Database (and Why It Should Be PostgreSQL)Columnar Databases vs. Row-Oriented Databases: Which to Choose?
A Brief History of AI: How Did We Get Here, and What's Next?A Beginner’s Guide to Vector EmbeddingsPostgreSQL as a Vector Database: A Pgvector TutorialUsing Pgvector With PythonHow to Choose a Vector DatabaseVector Databases Are the Wrong AbstractionUnderstanding DiskANNA Guide to Cosine SimilarityStreaming DiskANN: How We Made PostgreSQL as Fast as Pinecone for Vector DataImplementing Cosine Similarity in PythonVector Database Basics: HNSWVector Database Options for AWSVector Store vs. Vector Database: Understanding the ConnectionPgvector vs. Pinecone: Vector Database Performance and Cost ComparisonHow to Build LLM Applications With Pgvector Vector Store in LangChainHow to Implement RAG With Amazon Bedrock and LangChainRetrieval-Augmented Generation With Claude Sonnet 3.5 and PgvectorUnderstanding Semantic SearchWhat Is Vector Search? Vector Search vs Semantic SearchText-to-SQL: A Developer’s Zero-to-Hero GuideNearest Neighbor Indexes: What Are IVFFlat Indexes in Pgvector and How Do They WorkRAG Is More Than Just Vector SearchPostgreSQL Hybrid Search Using Pgvector and CohereImplementing Filtered Semantic Search Using Pgvector and JavaScriptRefining Vector Search Queries With Time Filters in Pgvector: A TutorialBuilding an AI Image Gallery With OpenAI CLIP, Claude Sonnet 3.5, and PgvectorWhen Should You Use Full-Text Search vs. Vector Search?HNSW vs. DiskANN
Understanding IoT (Internet of Things)Storing IoT Data: 8 Reasons Why You Should Use PostgreSQLHow to Choose an IoT DatabaseHow to Simulate a Basic IoT Sensor Dataset on PostgreSQLFrom Ingest to Insights in Milliseconds: Everactive's Tech Transformation With TimescaleHow Ndustrial Is Providing Fast Real-Time Queries and Safely Storing Client Data With 97 % CompressionA Beginner’s Guide to IIoT and Industry 4.0Why You Should Use PostgreSQL for Industrial IoT DataHow Hopthru Powers Real-Time Transit Analytics From a 1 TB Table Migrating a Low-Code IoT Platform Storing 20M Records/DayMoving Past Legacy Systems: Data Historian vs. Time-Series DatabaseHow United Manufacturing Hub Is Introducing Open Source to ManufacturingBuilding IoT Pipelines for Faster Analytics With IoT CoreVisualizing IoT Data at Scale With Hopara and TimescaleDB
What Is ClickHouse and How Does It Compare to PostgreSQL and TimescaleDB for Time Series?Timescale vs. Amazon RDS PostgreSQL: Up to 350x Faster Queries, 44 % Faster Ingest, 95 % Storage Savings for Time-Series DataWhat We Learned From Benchmarking Amazon Aurora PostgreSQL ServerlessTimescaleDB vs. Amazon Timestream: 6,000x Higher Inserts, 5-175x Faster Queries, 150-220x CheaperHow to Store Time-Series Data in MongoDB and Why That’s a Bad IdeaPostgreSQL + TimescaleDB: 1,000x Faster Queries, 90 % Data Compression, and Much MoreEye or the Tiger: Benchmarking Cassandra vs. TimescaleDB for Time-Series Data
Alternatives to RDSWhy Is RDS so Expensive? Understanding RDS Pricing and CostsEstimating RDS CostsHow to Migrate From AWS RDS for PostgreSQL to TimescaleAmazon Aurora vs. RDS: Understanding the Difference
8 Reasons to Choose Timescale as Your InfluxDB Alternative What InfluxDB Got Wrong5 InfluxDB Alternatives for Your Time-Series Data InfluxQL, Flux, and SQL: Which Query Language Is Best? (With Cheatsheet)TimescaleDB vs. InfluxDB: Purpose Built Differently for Time-Series Data
How to Migrate Your Data to Timescale (3 Ways)Postgres TOAST vs. Timescale CompressionBuilding Python Apps With PostgreSQL: A Developer's GuideData Visualization in PostgreSQL With Apache SupersetMore Time-Series Data Analysis, Fewer Lines of Code: Meet HyperfunctionsPostgreSQL Materialized Views and Where to Find ThemTimescale Tips: Testing Your Chunk SizeIs Postgres Partitioning Really That Hard? An Introduction To Hypertables5 Ways to Monitor Your PostgreSQL Database
Postgres cheat sheet
HomeTime series basicsPostgres basicsPostgres guidesPostgres best practicesPostgres extensionsPostgres for real-time analytics
Sections

AI and vector fundamentals

A Brief History of AI: How Did We Get Here, and What's Next?A Beginner’s Guide to Vector EmbeddingsPostgreSQL as a Vector Database: A Pgvector TutorialUsing Pgvector With PythonHow to Choose a Vector DatabaseVector Databases Are the Wrong Abstraction

Cosine similarity

A Guide to Cosine SimilarityImplementing Cosine Similarity in Python

Vector databases

Vector Database Options for AWSVector Store vs. Vector Database: Understanding the Connection

Vectorscale

Fundamentals

Understanding DiskANNHNSW vs. DiskANN

Schema design

Streaming DiskANN: How We Made PostgreSQL as Fast as Pinecone for Vector Data
Vector Database Basics: HNSW

Benchmarks

Pgvector vs. Pinecone: Vector Database Performance and Cost Comparison
Nearest Neighbor Indexes: What Are IVFFlat Indexes in Pgvector and How Do They Work

Tutorials

How to Build LLM Applications With Pgvector Vector Store in LangChainHow to Implement RAG With Amazon Bedrock and LangChainRetrieval-Augmented Generation With Claude Sonnet 3.5 and PgvectorRAG Is More Than Just Vector Search

Hybrid search & filtering

PostgreSQL Hybrid Search Using Pgvector and CohereImplementing Filtered Semantic Search Using Pgvector and JavaScriptRefining Vector Search Queries With Time Filters in Pgvector: A Tutorial

Semantic search

Fundamentals

Understanding Semantic SearchWhat Is Vector Search? Vector Search vs Semantic SearchWhen Should You Use Full-Text Search vs. Vector Search?

Image search

Building an AI Image Gallery With OpenAI CLIP, Claude Sonnet 3.5, and Pgvector

AI query interfaces

Text-to-SQL: A Developer’s Zero-to-Hero Guide

Products

Time Series and Analytics AI and Vector Enterprise Plan Cloud Status Support Security Cloud Terms of Service

Learn

Documentation Blog Forum Tutorials Changelog Success Stories Time Series Database

Company

Contact Us Careers About Brand Community Code Of Conduct Events

Subscribe to the Tiger Data Newsletter

By submitting, you acknowledge Tiger Data's Privacy Policy

2025 (c) Timescale, Inc., d/b/a Tiger Data. All rights reserved.

Privacy preferences
LegalPrivacySitemap

Published at Feb 19, 2024

Embedding Models

Vector Search vs Semantic Search

Explore for free

AI development for all developers, not just AI experts. Build your AI app with Tiger Cloud today.

Vector Embeddings

With the growing popularity of large language models (LLMs) like OpenAI's GPT-4, there's been a surge of interest in embedding models and vector search. Yet, there's some confusion surrounding vector similarity search, its capabilities, and its relationship with semantic search. 

To put it simply, vector search and semantic search are interconnected but fundamentally different concepts. Vector search acts as a building block for semantic search, enabling data retrieval based on relevance. In this article, we’ll explore each concept and dig into their differences. 

Understanding Semantic Search

Semantic search is all about context and meaning. It employs a blend of natural language processing (NLP) techniques and understanding (NLU) to interpret the nuances, synonyms, and relationships inherent in language. The aim is to deliver search results that are not just textually similar but are meaningfully relevant to the user's search intent, even if the exact words used in the query aren't present in the content.

Thanks to the semantic understanding embedded in the vectors, a search for "climate change effects" could return relevant documents that discuss "global warming impacts," even if the search doesn't use that exact phrase.

Beyond this, semantic search can leverage rich representations of data, such as those found in knowledge graphs, to uncover deeper connections and insights. Knowledge graphs organize information into entities and their relationships, making it possible to query complex relationships or generate recommendations based on contextual understanding. For example, they can help in discovering how climate change impacts interact with economic factors.

Moreover, semantic search often benefits from inference engines, which are used to derive logical conclusions from the available data. These engines, powered by advanced algorithms, enable systems to answer complex queries and make predictions based on a combination of explicit facts and inferred relationships. For instance, an inference engine could connect topics like "rising sea levels" and "coastal property insurance" to infer potential risks or financial implications, even if these links are not explicitly stated in the data.

By extending its capabilities with such technologies, semantic search becomes an even more powerful tool, not only for retrieving meaningfully relevant results but also for supporting complex decision-making processes in fields like scientific research, healthcare, and enterprise knowledge management.

Check out this article for more details on semantic search.

The Role of Vector Search

How do we translate this nuanced understanding into something computers can work with? That's where vector search comes in. Vector search transforms words, sentences, or entire documents into vectors—think of them as points in a multidimensional space. These vectors are not just random points; they're calculated so that similar meanings are positioned closer together. For instance, vectors for "trucks" and "cars" would be near each other.

Some of the foundational approaches to creating these embeddings include models like Word2Vec, which maps words into vectors based on their contextual relationships, allowing computers to process their meanings more effectively. More recently, advanced embeddings such as OpenAI token embeddings have further expanded these capabilities, providing richer, context-aware representations for tasks like semantic search, recommendation systems, and more.

When you search, the model converts your query into a vector and then looks for other vectors (documents, web pages, etc.) close by in this multidimensional space. The closer they are, the more relevant they're deemed to be. By leveraging these embedding techniques, vector search enables a deep understanding of user queries and content, supporting powerful applications in semantic search, personalization, and intelligent retrieval.

Learn more about vector search.

Leveraging Vector Search for Semantic Understanding

So, how does vector search turn into semantic search? It's all about leveraging those embeddings to capture the essence of your query's intent. By analyzing the positions and distances of vectors, we can infer semantic relationships, such as synonyms, related concepts, or even nuanced thematic links between seemingly unrelated terms.

To leverage vector search for semantic search, systems typically follow a multi-step process:

  1. Embedding generation for the content: the content to be searched is transformed into vectors using embedding models.

  2. Storing the content and embeddings in a vector database: both the content and its embedding are stored in a vector database that then allows performant search on the embeddings.

  3. Embedding generation for the query: the query is transformed into a vector using the same embedding model we used for the content.

  4. Retrieving relevant data from the vector database: The database is then asked to return all items whose embeddings are closest to the queries’ embedding. For this task, the vector database will use a distance function between vectors, such as cosine or Euclidean distance.

Learn how to refine your vector search queries with time filters in pgvector—with a single SQL query.

Boost Your Vector Search

Semantic search is a powerful concept that enables much more helpful computer systems. Instead of users having to figure out the exact keyword to search for, the system returns relevant content for a much broader range of queries. Vector search, with its ability to process and understand the geometry of meanings, provides the foundation to develop an advanced semantic search system. This synergy not only enhances the accuracy of search results but also makes digital interactions more intuitive and human-like.

Understanding these concepts is crucial, especially for those venturing into AI and data science. If you’re building AI applications, check out Timescale's open-source PostgreSQL stack for AI applications. It includes pgvector along with two open-source extensions developed by the Timescale team: pgai and pgvectorscale.

While pgai makes it easier for developers to build search and retrieval-augmented generation (RAG) applications by bringing more AI workflows into PostgreSQL, pgvectorscale enables developers to build more scalable AI applications with higher-performance embedding search and cost-efficient storage.

Both extensions are available for you to install in the pgai and pgvectorscale GitHub repositories (GitHub stars are much appreciated!). For a seamless developer experience with greater time series and analytics capabilities, try Timescale Cloud, which provides ready access to pgvector, pgvectorscale, and pgai, plus a fully managed PostgreSQL cloud database experience.

On this page

    Explore for free

    AI development for all developers, not just AI experts. Build your AI app with Tiger Cloud today.