liveBook · Manning

Similarity search

As explained in Machine Learning Platform Engineering

Retrieval is the process of finding and returning relevant information from a collection or information store.

Similarity search retrieves documents whose meaning is close to a query, even when they use different words. Embedding models represent text as vectors; a vector search engine such as FAISS finds nearby vectors. Unlike keyword search, this can match “API authentication” with documents about “user login security.” section 12.1.3

In a retrieval-augmented generation system, similarity search connects document representations to relevant query results:

  • Convert text into embeddings so semantically similar content maps to nearby points in vector space. section 12.1.3
  • Use a vector search engine to find documents similar to the query; FAISS supports development and moderate-scale production, while dedicated vector databases offer additional operational features. section 12.1.3

Different wording, similar intent

A query asking how to update API credentials can retrieve documentation about key rotation, despite the wording being different. section 12.1.3

Listing 12.2 Manual RAG vs. LangChain’s declarative pipeline
def manual_rag_query(query: str):
    try:
                query_embedding = embedding_client.embed(query)

        results = vector_db.similarity_search(query_embedding, k=5)

        context = "\n".join([doc.content for doc in results])

        prompt = f"Context: {context}\nQuestion: {query}\nAnswer:"

        response = llm_client.generate(prompt)

        return validate_response(response)
    except Exception as e:

        return handle_error(e)

from langchain.chains import RetrievalQA
from langchain.retrievers import VectorStoreRetriever

chain = RetrievalQA.from_chain_type(
    llm=llm,
    retriever=vector_store.as_retriever(),
    return_source_documents=True
)

result = chain.invoke({"query": query})

Shows a RAG query using vector similarity search to retrieve documents before generating an answer. section 12.1.3

How Machine Learning Platform Engineering covers it

How deep it goes
Explains embeddings, contrasts semantic and keyword search, and describes FAISS’s role and scale without detailing search algorithms.
Examples
Uses API authentication versus login security and API credential updates versus key rotation as semantic-match examples.
What you can do after
Apply it via embeddings and FAISS to retrieve semantically similar documents for RAG queries.
How it connects
Connects embeddings and vector databases to retrieval-augmented generation, contrasting semantic search with keyword search.

Also explained in

Compare how 22 books explain similarity search →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Machine Learning Platform Engineering. The section links point to the parts of the book it draws on.