<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Module 4: Designing a Vector Search System on Qdrant - Vector Search Engine</title><link>https://qdrant.tech/course/beginners/module-4/</link><description>Recent content in Module 4: Designing a Vector Search System on Qdrant - Vector Search Engine</description><generator>Hugo</generator><language>en-us</language><managingEditor>info@qdrant.tech (Andrey Vasnetsov)</managingEditor><webMaster>info@qdrant.tech (Andrey Vasnetsov)</webMaster><atom:link href="https://qdrant.tech/course/beginners/module-4/index.xml" rel="self" type="application/rss+xml"/><item><title>Module Overview</title><link>https://qdrant.tech/course/beginners/module-4/module-overview/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>info@qdrant.tech (Andrey Vasnetsov)</author><guid>https://qdrant.tech/course/beginners/module-4/module-overview/</guid><description>&lt;div class="date"&gt;
 &lt;img class="date-icon" src="https://qdrant.tech/icons/outline/date-blue.svg" alt="Calendar" /&gt; Module 4 
&lt;/div&gt;

&lt;h1 id="designing-a-vector-search-system"&gt;Designing a Vector Search System&lt;/h1&gt;
&lt;div class="video"&gt;
&lt;iframe src="https://www.youtube.com/embed/_PBKs94QGE0?rel=0" 
 title="YouTube video player" 
 frameborder="0" 
 allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" 
 referrerpolicy="strict-origin-when-cross-origin" 
 allowfullscreen&gt;
&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;So far, rebuilding a collection has taken only a few seconds. Once generating embeddings takes hours, you need to get the design right before ingesting your data.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Follow-along code&lt;/strong&gt;: &lt;a href="https://github.com/qdrant/examples/blob/master/course/beginners/Module4.ipynb" target="_blank" rel="noopener nofollow"&gt;Module 4 notebook&lt;/a&gt;&lt;/p&gt;
&lt;h4 id="overview"&gt;Overview&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;Module 3 showed you how to combine dense and sparse retrieval. Now you&amp;rsquo;ll use those pieces to design a system that can grow beyond a small collection. You&amp;rsquo;ll decide what to store and embed, see what changes as the collection grows, and choose when to add more machines, when to put a language model on top, and where to run Qdrant. By the end, you&amp;rsquo;ll have designed a news search system and five questions to use on a system of your own.&lt;/p&gt;</description></item><item><title>Where Design Decisions Live</title><link>https://qdrant.tech/course/beginners/module-4/where-design-decisions-live/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>info@qdrant.tech (Andrey Vasnetsov)</author><guid>https://qdrant.tech/course/beginners/module-4/where-design-decisions-live/</guid><description>&lt;div class="date"&gt;
 &lt;img class="date-icon" src="https://qdrant.tech/icons/outline/date-blue.svg" alt="Calendar" /&gt; Module 4 
&lt;/div&gt;

&lt;h1 id="where-design-decisions-live"&gt;Where Design Decisions Live&lt;/h1&gt;
&lt;p&gt;A vector search system has five layers. The first four go from easiest to hardest to change. Distribution is separate, because its cost depends on which change you make, and &lt;a href="https://qdrant.tech/course/beginners/module-4/growing-past-one-machine/"&gt;Growing Past One Machine&lt;/a&gt; covers it.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://qdrant.tech/courses/beginners/module-4/layers.png" alt="The five layers of a vector search system as stacked rows. Four sit on a shaded scale from easiest to hardest to change: Query, holding query embedding, dense and sparse search, fusion, and top-K; Indexing, holding the HNSW graph and payload indexes; Storage, holding quantization and on-disk storage; and Data, holding chunking, the embedding model, and the payload schema. Distribution, holding sharding and replication, sits below in a dashed group because what a change costs there depends on the operation."&gt;&lt;/p&gt;</description></item><item><title>Decide Before You Ingest</title><link>https://qdrant.tech/course/beginners/module-4/decide-before-you-ingest/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>info@qdrant.tech (Andrey Vasnetsov)</author><guid>https://qdrant.tech/course/beginners/module-4/decide-before-you-ingest/</guid><description>&lt;div class="date"&gt;
 &lt;img class="date-icon" src="https://qdrant.tech/icons/outline/date-blue.svg" alt="Calendar" /&gt; Module 4 
&lt;/div&gt;

&lt;h1 id="decide-before-you-ingest"&gt;Decide Before You Ingest&lt;/h1&gt;
&lt;p&gt;Four decisions belong to the data layer. Changing any one means ingesting the data again. Here&amp;rsquo;s a news search example:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Analysts at a research firm search global news as it arrives. They ask questions in plain language, such as &amp;ldquo;port congestion in Southeast Asia.&amp;rdquo; They scope every search by country, topic, date, and source. About one query in five names something specific, such as a stock symbol or a ship name.&lt;/p&gt;</description></item><item><title>What Changes as the Collection Grows</title><link>https://qdrant.tech/course/beginners/module-4/what-changes-as-the-collection-grows/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>info@qdrant.tech (Andrey Vasnetsov)</author><guid>https://qdrant.tech/course/beginners/module-4/what-changes-as-the-collection-grows/</guid><description>&lt;div class="date"&gt;
 &lt;img class="date-icon" src="https://qdrant.tech/icons/outline/date-blue.svg" alt="Calendar" /&gt; Module 4 
&lt;/div&gt;

&lt;h1 id="what-changes-as-the-collection-grows"&gt;What Changes as the Collection Grows&lt;/h1&gt;
&lt;p&gt;This three-article collection needs no tuning. At millions of points, both the indexing and storage layers need attention.&lt;/p&gt;
&lt;h3 id="index-time-against-search-quality"&gt;Index Time Against Search Quality&lt;/h3&gt;
&lt;p&gt;Module 2 introduced &lt;code&gt;m&lt;/code&gt; and &lt;code&gt;ef_construct&lt;/code&gt;, which control how much work goes into building the HNSW graph. Higher values make the graph more accurate, but they also make indexing slower and use more memory. The defaults suit most collections. See &lt;a href="https://qdrant.tech/documentation/ops-optimization/optimize/"&gt;Optimize Performance&lt;/a&gt; when you have measured a gap you need to close.&lt;/p&gt;</description></item><item><title>Growing Past One Machine</title><link>https://qdrant.tech/course/beginners/module-4/growing-past-one-machine/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>info@qdrant.tech (Andrey Vasnetsov)</author><guid>https://qdrant.tech/course/beginners/module-4/growing-past-one-machine/</guid><description>&lt;div class="date"&gt;
 &lt;img class="date-icon" src="https://qdrant.tech/icons/outline/date-blue.svg" alt="Calendar" /&gt; Module 4 
&lt;/div&gt;

&lt;h1 id="growing-past-one-machine"&gt;Growing Past One Machine&lt;/h1&gt;
&lt;p&gt;Most systems never need more than one node. &lt;strong&gt;Sharding&lt;/strong&gt; splits a collection&amp;rsquo;s points across nodes, so each node holds a slice. &lt;strong&gt;Replication&lt;/strong&gt; keeps a copy of each shard on more than one node, so search survives losing one.&lt;/p&gt;
&lt;p&gt;Use them when one node cannot hold the collection, or when search must continue after a node fails. The two differ in what they cost to add: a replica is usually a live change, while resharding an existing collection moves data. If search is slow, measure and tune the index before adding nodes. Adding nodes costs more, and it will not make an unindexed filter faster. &lt;a href="https://qdrant.tech/documentation/distributed_deployment/"&gt;Distributed Deployment&lt;/a&gt; covers both.&lt;/p&gt;</description></item><item><title>From Results to an Answer</title><link>https://qdrant.tech/course/beginners/module-4/from-results-to-an-answer/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>info@qdrant.tech (Andrey Vasnetsov)</author><guid>https://qdrant.tech/course/beginners/module-4/from-results-to-an-answer/</guid><description>&lt;div class="date"&gt;
 &lt;img class="date-icon" src="https://qdrant.tech/icons/outline/date-blue.svg" alt="Calendar" /&gt; Module 4 
&lt;/div&gt;

&lt;h1 id="from-results-to-an-answer"&gt;From Results to an Answer&lt;/h1&gt;
&lt;p&gt;Everything so far returns a ranked list. &lt;strong&gt;Retrieval-Augmented Generation (RAG)&lt;/strong&gt; sends that list to a language model, which writes an answer from the retrieved results. Generation sits outside the search system.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://qdrant.tech/courses/beginners/module-4/rag.png" alt="Three steps left to right, each with what it does and an example of its output. Understand extracts intent and rewrites the query, producing &amp;ldquo;port congestion delays in Vietnam this month&amp;rdquo;. Retrieve, inside a box marked Qdrant, runs a hybrid query with a filter and returns the top 10 results, the first two being articles on Ho Chi Minh City port congestion and Singapore berth waiting times. Generate, outside that box, puts those results in a prompt and the model answers, beginning &amp;ldquo;Waiting times at the city&amp;rsquo;s two main berths have&amp;rdquo;."&gt;&lt;/p&gt;</description></item><item><title>Where It Runs</title><link>https://qdrant.tech/course/beginners/module-4/where-it-runs/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>info@qdrant.tech (Andrey Vasnetsov)</author><guid>https://qdrant.tech/course/beginners/module-4/where-it-runs/</guid><description>&lt;div class="date"&gt;
 &lt;img class="date-icon" src="https://qdrant.tech/icons/outline/date-blue.svg" alt="Calendar" /&gt; Module 4 
&lt;/div&gt;

&lt;h1 id="where-it-runs"&gt;Where It Runs&lt;/h1&gt;
&lt;p&gt;Deployment mode is independent of the design decisions in this module. Choose based on how much you want to run yourself and how isolated the data needs to be. Four modes run Qdrant as a server:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://qdrant.tech/documentation/cloud/"&gt;Managed Cloud&lt;/a&gt;&lt;/strong&gt; runs it for you, with upgrades, backups, and replication handled.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://qdrant.tech/documentation/hybrid-cloud/"&gt;Hybrid Cloud&lt;/a&gt;&lt;/strong&gt; runs in your own Kubernetes cluster, managed from the Qdrant Cloud console, with the data staying in your network.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://qdrant.tech/documentation/private-cloud/"&gt;Private Cloud&lt;/a&gt;&lt;/strong&gt; runs in your own Kubernetes cluster with no connection to that console, and can run fully air-gapped.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Docker&lt;/strong&gt; means you run and operate the container, on your own machine or your own infrastructure.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Both Kubernetes modes require you to operate a cluster, so choose one only when a data requirement rules out Managed Cloud.&lt;/p&gt;</description></item><item><title>Design Your Own System</title><link>https://qdrant.tech/course/beginners/module-4/design-your-own-system/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>info@qdrant.tech (Andrey Vasnetsov)</author><guid>https://qdrant.tech/course/beginners/module-4/design-your-own-system/</guid><description>&lt;div class="date"&gt;
 &lt;img class="date-icon" src="https://qdrant.tech/icons/outline/date-blue.svg" alt="Calendar" /&gt; Module 4 
&lt;/div&gt;

&lt;h1 id="design-your-own-system"&gt;Design Your Own System&lt;/h1&gt;
&lt;p&gt;Use these five questions to design a system of your own:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;What do the queries look like?&lt;/strong&gt; Plain language, exact strings such as codes and IDs, or both. If you need both, use hybrid search, from Module 3.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Which fields must every search filter on?&lt;/strong&gt; That list is your payload schema, and each field on it needs an index.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;What is the unit you retrieve?&lt;/strong&gt; A whole document, one chunk of it, or an image. That answer tells you what to embed.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;How much data will arrive, and at what rate?&lt;/strong&gt; This decides how you run the first bulk load, and whether indexing keeps up afterward.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Where is the data allowed to live?&lt;/strong&gt; This decides the deployment mode.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Four common system types and their main design decision.&lt;/p&gt;</description></item><item><title>References and Further Reading</title><link>https://qdrant.tech/course/beginners/module-4/references-and-further-reading/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>info@qdrant.tech (Andrey Vasnetsov)</author><guid>https://qdrant.tech/course/beginners/module-4/references-and-further-reading/</guid><description>&lt;div class="date"&gt;
 &lt;img class="date-icon" src="https://qdrant.tech/icons/outline/date-blue.svg" alt="Calendar" /&gt; Module 4 
&lt;/div&gt;

&lt;h1 id="references-and-further-reading"&gt;References and Further Reading&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://sizing.qdrant.tech" target="_blank" rel="noopener nofollow"&gt;Sizing Tool&lt;/a&gt; How much memory and disk a collection needs, before you commit to a node.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://qdrant.tech/articles/what-is-rag-in-ai/"&gt;What Is RAG&lt;/a&gt; The retrieval and generation pattern in depth.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cloud.qdrant.io/" target="_blank" rel="noopener nofollow"&gt;Qdrant Cloud&lt;/a&gt; Create a free cluster before Module 5, so the capstone runs against a real server.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="whats-next-module-5"&gt;What&amp;rsquo;s Next: Module 5&lt;/h2&gt;
&lt;p&gt;A factory fire at a supplier&amp;rsquo;s plant reaches you as a local news report, a satellite image, an earnings call, and a filing weeks later. None of them arrives labeled as an incident, so Module 5 builds one collection that connects the signals describing the same event. You will search for &amp;ldquo;smoke above factory roof&amp;rdquo; to find the image, then extend the system so an English query reaches sources published in Japanese, Mandarin, Korean, or Vietnamese.&lt;/p&gt;</description></item></channel></rss>