What Is Citation Management? A Plain-English Guide
What is citation management? A clear explanation for researchers and academics — how citation managers work, the best tools, and how to avoid the most common mistakes.
Knowledge Concepts
What is semantic search? A clear technical explanation for developers — how vector embeddings enable meaning-based search, how it differs from keyword search, and when to use each.
Semantic search is a search technique that finds results based on the meaning and intent of a query rather than exact keyword matching — enabling a search for "how to speed up database queries" to return results about "query optimization techniques" and "indexing strategies" even if those exact words aren't in the query, because the system understands that these topics are semantically related.
Semantic search is the foundation of modern search engines (Google's post-BERT search), AI-powered code search tools, RAG systems, and increasingly, personal knowledge management tools.
Traditional keyword search (BM25, TF-IDF) works by counting term occurrences. A document about "database performance improvement" doesn't match a query for "make queries faster" even though the intent is identical — the terms don't overlap.
This causes two classes of failure:
Vocabulary mismatch: You and the document use different words for the same concept. You search "heart attack"; the document says "myocardial infarction." Keyword search misses it.
Semantic intent failure: "Apple" means the company or the fruit depending on context. Keyword search treats both the same; semantic search can distinguish based on surrounding context.
These failures are significant in code search (function names are arbitrary), documentation search (multiple terms for one concept), and personal knowledge management (notes written in your own words may not match how you later search for them).
The technical foundation is vector embeddings — numerical representations of text that capture semantic meaning.
When documents are ingested, each document (or chunk) is passed through an embedding model (OpenAI text-embedding-3-small, Cohere embed-v3, Sentence Transformers, etc.) which converts it to a vector — a list of numbers, typically 768–3,072 dimensions.
Critically: similar meanings produce similar vectors. "How to speed up database queries" and "query optimization techniques" produce vectors that are close together in the embedding space.
When a user submits a search query, it's passed through the same embedding model to produce a query vector.
The search system computes the similarity between the query vector and all document vectors. The most common similarity metric is cosine similarity: how close the two vectors point in high-dimensional space.
Documents with the highest similarity to the query are returned, regardless of whether they share keywords with the query.
| Dimension | Keyword Search (BM25) | Semantic Search |
|---|---|---|
| Matching method | Term frequency/occurrence | Vector similarity |
| Vocabulary requirement | Exact match required | Synonyms and paraphrases match |
| Speed | Very fast | Moderate (vector computation) |
| Precision for exact terms | High | Lower (may return near-misses) |
| Intent understanding | No | Yes |
| Multilingual | Requires translation | Handles cross-language (multilingual models) |
| Implementation | Simple (Elasticsearch, SQLite FTS) | Requires embedding + vector DB |
Hybrid search — combining keyword (BM25) and semantic (vector) results — consistently outperforms either alone in benchmarks. Keyword search handles exact matches and proper nouns; semantic search handles intent and paraphrase. Most production search systems use hybrid.
A developer manages a 200,000-line codebase and searches for the function that handles user authentication timeout:
Keyword search query: "session timeout"
Keyword results: Files that contain the exact string "session timeout" or "SESSION_TIMEOUT." Might miss the function named handleAuthExpiry() which implements timeout logic but doesn't use that exact phrase.
Semantic search query: "session timeout" (same query)
Semantic results: The embedding model converts "session timeout" to a vector near the semantic space of "authentication expiry," "session invalidation," and "login renewal." Results include handleAuthExpiry(), the AuthSessionConfig class, and a comment block about "forcing re-authentication after idle period" — all semantically relevant, none matching exact keywords.
The developer finds the right function in 30 seconds instead of 5 minutes of grep-based exploration.
Web search (Google, Bing): Google's BERT model (2019) and MUM (2021) brought semantic understanding to web search. Google now interprets query intent and returns results that match the concept, not just the keywords. This is why searching "best way to not forget what I read" returns articles about active recall and spaced repetition.
Enterprise documentation search: Tools like Notion AI, Confluence, and GitHub Copilot Chat use semantic search to find relevant docs from natural language queries.
RAG systems: Semantic search is the retrieval layer in RAG (Retrieval-Augmented Generation) — finding the most relevant document chunks from a knowledge base to provide as context to an LLM.
Personal knowledge management: Tools with semantic search allow finding notes by concept rather than keyword. Searching "why I might procrastinate" in a semantic search over your notes might surface a note titled "activation energy and task initiation."
Code search: GitHub's semantic code search, Sourcegraph, and Cursor use embeddings to find code by intent rather than exact token match.
Minimum viable implementation:
text-embedding-3-small (OpenAI API, cheap), or a local model via sentence-transformers (free, runs locally).from openai import OpenAI
import chromadb
client = OpenAI()
chroma = chromadb.Client()
collection = chroma.create_collection("docs")
def embed(text):
return client.embeddings.create(
input=text,
model="text-embedding-3-small"
).data[0].embedding
# Ingest
collection.add(
documents=["query optimization improves database performance"],
embeddings=[embed("query optimization improves database performance")],
ids=["doc1"]
)
# Search
results = collection.query(
query_embeddings=[embed("how to speed up database queries")],
n_results=3
)
For production: add BM25 hybrid search, re-ranking (Cohere Rerank or cross-encoder), and chunking strategy tuning.
"Semantic search is always better than keyword search." Neither is always better — they're complementary. Keyword search wins for exact-match queries (proper nouns, specific function names, error codes). Semantic search wins for intent-based queries (conceptual questions, paraphrased ideas). Hybrid search wins in general.
"Semantic search understands language like humans do." Semantic search models encode statistical co-occurrence patterns, not understanding. They produce semantically similar results for similar-meaning texts because similar-meaning texts appear in similar contexts during training. The model doesn't "understand" — it's doing high-dimensional geometry.
"You need a large embedding model for good results."
OpenAI's text-embedding-3-small (1,536 dimensions) outperforms many large models on retrieval benchmarks. Sentence Transformers' all-MiniLM-L6-v2 (384 dimensions, runs locally in real-time) is good for many use cases. Model size is one variable; chunk quality and re-ranking matter as much.
WebSnips's Connections graph uses content-based similarity to automatically discover relationships between your saved articles — a form of semantic search applied to your personal research library.
Rather than requiring you to manually link related articles, the Connections graph identifies which saves discuss similar concepts. For researchers who save dozens of articles on adjacent topics, this surfaces relationships that manual organization would miss.
How does Google's semantic search work? Google uses the BERT (Bidirectional Encoder Representations from Transformers) family of models to understand the intent and context of search queries. BERT reads the full query context, not just individual keywords, enabling it to interpret "Python exceptions" as programming-related rather than snake-related. Google's MUM model (2021) adds cross-modal (text + image) and cross-language understanding.
What embedding model should I use for a new project?
For cloud, cost-acceptable: text-embedding-3-small (OpenAI, ~$0.02/million tokens, 1,536 dims). For local/free: all-MiniLM-L6-v2 (Sentence Transformers, 384 dims, fast). For multilingual: multilingual-e5-large (free, supports 100+ languages). Evaluate on a sample of your actual documents before committing.
Is semantic search the same as AI search? Not exactly — "AI search" is a broader marketing term. Semantic search specifically refers to embedding-based meaning similarity. AI search might also include conversational search (asking questions, getting AI-generated answers), query expansion, and re-ranking. Semantic search is one technique within a broader "AI search" system.
How is semantic search different from full-text search? Full-text search indexes word occurrences and returns documents containing query terms. Semantic search embeds both documents and queries as vectors and finds documents with similar meaning. Full-text search is faster and more precise for exact matches; semantic search handles synonyms and intent. Modern search systems often combine both.
Semantic search finds results by meaning rather than keyword match — using vector embeddings to represent semantic content as points in high-dimensional space and retrieving documents whose meaning is most similar to the query's meaning.
For developers: semantic search is the retrieval layer in RAG, the intelligence behind modern code search, and an increasingly standard feature in documentation tools. Start with a lightweight embedding model and vector store; add hybrid search and re-ranking as quality needs grow.
More WebSnips articles that pair well with this topic.
What is citation management? A clear explanation for researchers and academics — how citation managers work, the best tools, and how to avoid the most common mistakes.
What is tacit knowledge? A clear explanation for team leads and ops people — what tacit knowledge is, why it's the hardest knowledge to transfer, and practical methods to make it explicit.
What is a commonplace book? A clear explanation of the centuries-old knowledge collection practice, famous examples, and how to build a modern digital version for writers and researchers.