There is no universal fastest or most relevant choice. PostgreSQL full-text search is built for lexical matching; pgvector finds nearest vectors, either exactly or approximately; hybrid search combines lexical and semantic results. The right comparison measures relevance and latency on your corpus and query mix—not just the search method’s name.
What each search method retrieves
PostgreSQL full-text search: matches words and phrases
PostgreSQL turns documents into tsvector values and searches into tsquery expressions. Text-search configuration—including tokenization and dictionaries—affects how words are normalized and matched. This makes full-text useful when users rely on exact terminology, names, or other lexical signals.
As an Amazon Associate I earn from qualifying purchases.
PostgreSQL’s built-in ranking functions can use signals such as term frequency, proximity, and structural weights. They are tools for ranking lexical matches, not universally calibrated relevance scores. Applications may need additional signals, such as recency, and should judge ranking against their own relevance criteria. PostgreSQL also supports highlighting matching text. See the PostgreSQL 18 text-search controls documentation.
pgvector: finds nearby vectors
pgvector adds vector nearest-neighbor search to PostgreSQL. A vector represents an item in a numerical space; the search returns items near a query vector according to the chosen distance operator. The quality of the results therefore depends on the vectors and how well they represent the task, as well as on the search configuration.
#1 Best Overall
pgvector’s default nearest-neighbor search is exact and has perfect recall: it can serve as a comparison baseline. Its HNSW and IVFFlat indexes are approximate alternatives. They can reduce search time, but may return a different set of neighbors than exact search. The pgvector project documents these behaviors in its README.
Hybrid search: combines lexical and vector results
Hybrid search retrieves candidates using both full-text and vector search, then combines or reranks the result lists. This can help when a query’s exact terms matter but users may also express the same idea in different language. The combination does not automatically improve relevance: the fusion method and candidate-list depths influence what ranks highly.
pgvector’s documentation describes approaches including Reciprocal Rank Fusion (RRF) and cross-encoders. A benchmark should identify which method it uses and evaluate the resulting ranking, rather than treating “hybrid” as a single fixed implementation.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
How to choose what to test
| Approach | What it retrieves | Useful measures | Tradeoff to account for |
|---|---|---|---|
| PostgreSQL full-text with GIN | Lexical matches over tokenized documents | Relevance for exact terminology, p50 and p95 latency, index size, write overhead | Ranking quality depends on the application. GIN is PostgreSQL’s preferred full-text index, but queries that constrain weight labels can require row rechecks. |
| pgvector exact | Nearest vectors | Recall baseline, latency, CPU and memory use | Perfect recall does not establish how fast it will be on your collection or hardware. |
| pgvector approximate: HNSW or IVFFlat | Approximate nearest-neighbor candidates | Recall versus latency, memory, index build time, update and filter behavior | Results may differ from exact search. HNSW and IVFFlat have different documented build, memory, and query-performance tradeoffs. |
| Hybrid | Combined lexical and vector candidate lists | Relevance, recall, latency, candidate-list depth, fusion method | Fusion adds configuration and operational complexity; its value depends on the task and evaluation results. |
For frequently searched full-text columns, GIN is the standard starting point. It indexes lexemes, but index maintenance has write-side costs because a row can contribute multiple index entries. PostgreSQL’s documentation discusses the index choice and these details in its full-text index guidance and GIN implementation documentation.
Rank #3
What the documented tradeoffs do—and do not—tell you
The pgvector documentation describes HNSW as favoring query performance in the speed–recall balance, with more memory use and longer index builds. IVFFlat builds faster and uses less memory, but has a lower query-performance speed–recall tradeoff. These are qualitative tendencies, not a head-to-head benchmark for a particular application.
Likewise, full-text search, exact vector search, approximate vector search, and hybrid search do not have a universal latency or relevance ordering. Results depend on the corpus, query mix, text and vector configuration, index settings, hardware, filters, concurrency, and relevance method. PostgreSQL and pgvector documentation explain behavior and tradeoffs, but do not establish a universal winner.
Rank #4
How to run a useful, reproducible comparison
- Fix the evaluation set. Use one representative corpus and a query set that reflects real user tasks. Record the corpus’s size, language, and domain, and use labeled relevance judgments or a named evaluation method.
- Hold conditions constant. Keep the PostgreSQL configuration, hardware, cache state, concurrency, filters, and candidate limits consistent across runs. State whether the cache was warm or cold.
- Include the right baselines. Compare GIN-backed lexical search, exact vector search, configured HNSW and IVFFlat variants, and at least one hybrid variant. For hybrid, state the fusion method and how many candidates each search contributes.
- Measure both retrieval and operations. Record relevance, query latency—including p50 and p95—resource use, index size, and index build time. Repeat runs and report the conditions rather than presenting one result as generally representative.
- Check approximate recall against exact search. Compare approximate-search results with exact-search results on the same queries and collection. Report the observed difference; do not call approximate results equivalent to exact ones unless the measurements support that conclusion.
- Document the setup. Report PostgreSQL and pgvector versions, embedding model and dimensions when relevant, corpus and query-set details, hardware, index parameters, filters, concurrency, cache state, and relevance method. State that the findings apply to this setup.
How to interpret the result
Choose full-text when lexical matching is central and its measured ranking meets the task’s needs. Choose exact vector search when its relevance is useful and its measured cost is acceptable, or use it as the baseline for evaluating approximate indexes. Consider HNSW or IVFFlat when exact search’s measured cost justifies testing an approximate alternative; compare their recall, latency, memory, and build behavior under the same conditions.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Repair Windows errors before they cause bigger problems3Fix the driver behind crashes, sound loss and screen glitchesChoose hybrid only if its combined ranking improves the relevance outcome that matters to your users enough to justify its added configuration and evaluation work. The answer to “which search is faster?” is therefore a workload-specific measurement—not a general property of full-text, pgvector, or hybrid search.
Quick Recap
Best Value
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




