<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Concepts on Qdrant - Vector Database</title><link>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/documentation/concepts/</link><description>Recent content in Concepts on Qdrant - Vector Database</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://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/documentation/concepts/index.xml" rel="self" type="application/rss+xml"/><item><title>Collections</title><link>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/documentation/concepts/collections/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>info@qdrant.tech (Andrey Vasnetsov)</author><guid>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/documentation/concepts/collections/</guid><description>&lt;h1 id="collections">Collections&lt;/h1>
&lt;p>A collection is a named set of points (vectors with a payload) among which you can search. The vector of each point within the same collection must have the same dimensionality and be compared by a single metric. &lt;a href="#collection-with-multiple-vectors">Named vectors&lt;/a> can be used to have multiple vectors in a single point, each of which can have their own dimensionality and metric requirements.&lt;/p>
&lt;p>Distance metrics are used to measure similarities among vectors.
The choice of metric depends on the way vectors obtaining and, in particular, on the method of neural network encoder training.&lt;/p></description></item><item><title>Points</title><link>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/documentation/concepts/points/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>info@qdrant.tech (Andrey Vasnetsov)</author><guid>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/documentation/concepts/points/</guid><description>&lt;h1 id="points">Points&lt;/h1>
&lt;p>The points are the central entity that Qdrant operates with.
A point is a record consisting of a &lt;a href="https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/documentation/concepts/vectors/">vector&lt;/a> and an optional &lt;a href="https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/documentation/concepts/payload/">payload&lt;/a>.&lt;/p>
&lt;p>It looks like this:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-json" data-lang="json">&lt;span class="line">&lt;span class="cl">&lt;span class="c1">// This is a simple point
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;id&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">129&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;vector&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="mf">0.1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mf">0.2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mf">0.3&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mf">0.4&lt;/span>&lt;span class="p">],&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;payload&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="nt">&amp;#34;color&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;red&amp;#34;&lt;/span>&lt;span class="p">},&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>You can search among the points grouped in one &lt;a href="https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/documentation/concepts/collections/">collection&lt;/a> based on vector similarity.
This procedure is described in more detail in the &lt;a href="https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/documentation/concepts/search/">search&lt;/a> and &lt;a href="https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/documentation/concepts/filtering/">filtering&lt;/a> sections.&lt;/p>
&lt;p>This section explains how to create and manage vectors.&lt;/p></description></item><item><title>Vectors</title><link>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/documentation/concepts/vectors/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>info@qdrant.tech (Andrey Vasnetsov)</author><guid>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/documentation/concepts/vectors/</guid><description>&lt;h1 id="vectors">Vectors&lt;/h1>
&lt;p>Vectors (or embeddings) are the core concept of the Qdrant Vector Search engine.
Vectors define the similarity between objects in the vector space.&lt;/p>
&lt;p>If a pair of vectors are similar in vector space, it means that the objects they represent are similar in some way.&lt;/p>
&lt;p>For example, if you have a collection of images, you can represent each image as a vector.
If two images are similar, their vectors will be close to each other in the vector space.&lt;/p></description></item><item><title>Payload</title><link>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/documentation/concepts/payload/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>info@qdrant.tech (Andrey Vasnetsov)</author><guid>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/documentation/concepts/payload/</guid><description>&lt;h1 id="payload">Payload&lt;/h1>
&lt;p>One of the significant features of Qdrant is the ability to store additional information along with vectors.
This information is called &lt;code>payload&lt;/code> in Qdrant terminology.&lt;/p>
&lt;p>Qdrant allows you to store any information that can be represented using JSON.&lt;/p>
&lt;p>Here is an example of a typical payload:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-json" data-lang="json">&lt;span class="line">&lt;span class="cl">&lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;name&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;jacket&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;colors&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="s2">&amp;#34;red&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;blue&amp;#34;&lt;/span>&lt;span class="p">],&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;count&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;price&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mf">11.99&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;locations&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">[&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;lon&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mf">52.5200&lt;/span>&lt;span class="p">,&lt;/span> 
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;lat&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mf">13.4050&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">],&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;reviews&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">[&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;user&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;alice&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;score&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">4&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">},&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;user&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;bob&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nt">&amp;#34;score&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="mi">5&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="payload-types">Payload types&lt;/h2>
&lt;p>In addition to storing payloads, Qdrant also allows you search based on certain kinds of values.
This feature is implemented as additional filters during the search and will enable you to incorporate custom logic on top of semantic similarity.&lt;/p></description></item><item><title>Search</title><link>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/documentation/concepts/search/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>info@qdrant.tech (Andrey Vasnetsov)</author><guid>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/documentation/concepts/search/</guid><description>&lt;h1 id="similarity-search">Similarity search&lt;/h1>
&lt;p>Searching for the nearest vectors is at the core of many representational learning applications.
Modern neural networks are trained to transform objects into vectors so that objects close in the real world appear close in vector space.
It could be, for example, texts with similar meanings, visually similar pictures, or songs of the same genre.&lt;/p>
&lt;figure>&lt;img src="https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/docs/encoders.png"
 alt="This is how vector similarity works" width="70%">&lt;figcaption>
 &lt;p>This is how vector similarity works&lt;/p>
 &lt;/figcaption>
&lt;/figure>

&lt;h2 id="query-api">Query API&lt;/h2>
&lt;p>&lt;em>Available as of v1.10.0&lt;/em>&lt;/p></description></item><item><title>Explore</title><link>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/documentation/concepts/explore/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>info@qdrant.tech (Andrey Vasnetsov)</author><guid>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/documentation/concepts/explore/</guid><description>&lt;h1 id="explore-the-data">Explore the data&lt;/h1>
&lt;p>After mastering the concepts in &lt;a href="https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/documentation/concepts/search/">search&lt;/a>, you can start exploring your data in other ways. Qdrant provides a stack of APIs that allow you to find similar vectors in a different fashion, as well as to find the most dissimilar ones. These are useful tools for recommendation systems, data exploration, and data cleaning.&lt;/p>
&lt;h2 id="recommendation-api">Recommendation API&lt;/h2>
&lt;p>In addition to the regular search, Qdrant also allows you to search based on multiple positive and negative examples. The API is called &lt;em>&lt;strong>recommend&lt;/strong>&lt;/em>, and the examples can be point IDs, so that you can leverage the already encoded objects; and, as of v1.6, you can also use raw vectors as input, so that you can create your vectors on the fly without uploading them as points.&lt;/p></description></item><item><title>Hybrid Queries</title><link>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/documentation/concepts/hybrid-queries/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>info@qdrant.tech (Andrey Vasnetsov)</author><guid>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/documentation/concepts/hybrid-queries/</guid><description>&lt;h1 id="hybrid-and-multi-stage-queries">Hybrid and Multi-Stage Queries&lt;/h1>
&lt;p>&lt;em>Available as of v1.10.0&lt;/em>&lt;/p>
&lt;p>With the introduction of &lt;a href="https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/documentation/concepts/vectors/#named-vectors">multiple named vectors per point&lt;/a>, there are use-cases when the best search is obtained by combining multiple queries,
or by performing the search in more than one stage.&lt;/p>
&lt;p>Qdrant has a flexible and universal interface to make this possible, called &lt;code>Query API&lt;/code> (&lt;a href="https://api.qdrant.tech/api-reference/search/query-points" target="_blank" rel="noopener nofollow">API reference&lt;/a>).&lt;/p>
&lt;p>The main component for making the combinations of queries possible is the &lt;code>prefetch&lt;/code> parameter, which enables making sub-requests.&lt;/p></description></item><item><title>Filtering</title><link>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/documentation/concepts/filtering/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>info@qdrant.tech (Andrey Vasnetsov)</author><guid>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/documentation/concepts/filtering/</guid><description>&lt;h1 id="filtering">Filtering&lt;/h1>
&lt;p>With Qdrant, you can set conditions when searching or retrieving points.
For example, you can impose conditions on both the &lt;a href="https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/documentation/concepts/payload/">payload&lt;/a> and the &lt;code>id&lt;/code> of the point.&lt;/p>
&lt;p>Setting additional conditions is important when it is impossible to express all the features of the object in the embedding.
Examples include a variety of business requirements: stock availability, user location, or desired price range.&lt;/p>
&lt;h2 id="related-content">Related Content&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>&lt;a href="https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/articles/vector-search-filtering/">A Complete Guide to Filtering in Vector Search&lt;/a>&lt;/th>
 &lt;th>Developer advice on proper usage and advanced practices.&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;/tbody>
&lt;/table>
&lt;h2 id="filtering-clauses">Filtering clauses&lt;/h2>
&lt;p>Qdrant allows you to combine conditions in clauses.
Clauses are different logical operations, such as &lt;code>OR&lt;/code>, &lt;code>AND&lt;/code>, and &lt;code>NOT&lt;/code>.
Clauses can be recursively nested into each other so that you can reproduce an arbitrary boolean expression.&lt;/p></description></item><item><title>Inference</title><link>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/documentation/concepts/inference/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>info@qdrant.tech (Andrey Vasnetsov)</author><guid>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/documentation/concepts/inference/</guid><description>&lt;h1 id="inference">Inference&lt;/h1>
&lt;p>Inference is the process of using a machine learning model to create vector embeddings from text, images, or other data types. While you can create embeddings on the client side, you can also let Qdrant generate them while storing or querying data.&lt;/p>
&lt;p>&lt;img src="https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/docs/inference.png" alt="Inference">&lt;/p>
&lt;p>There are several advantages to generating embeddings with Qdrant:&lt;/p>
&lt;ul>
&lt;li>No need for external pipelines or separate model servers.&lt;/li>
&lt;li>Work with a single unified API instead of a different API per model provider.&lt;/li>
&lt;li>No external network calls, minimizing delays or data transfer overhead.&lt;/li>
&lt;/ul>
&lt;p>Depending on the model you want to use, inference can be executed:&lt;/p></description></item><item><title>Optimizer</title><link>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/documentation/concepts/optimizer/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>info@qdrant.tech (Andrey Vasnetsov)</author><guid>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/documentation/concepts/optimizer/</guid><description>&lt;h1 id="optimizer">Optimizer&lt;/h1>
&lt;p>It is much more efficient to apply changes in batches than perform each change individually, as many other databases do. Qdrant here is no exception. Since Qdrant operates with data structures that are not always easy to change, it is sometimes necessary to rebuild those structures completely.&lt;/p>
&lt;p>Storage optimization in Qdrant occurs at the segment level (see &lt;a href="https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/documentation/concepts/storage/">storage&lt;/a>).
In this case, the segment to be optimized remains readable for the time of the rebuild.&lt;/p></description></item><item><title>Storage</title><link>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/documentation/concepts/storage/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>info@qdrant.tech (Andrey Vasnetsov)</author><guid>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/documentation/concepts/storage/</guid><description>&lt;h1 id="storage">Storage&lt;/h1>
&lt;p>All data within one collection is divided into segments.
Each segment has its independent vector and payload storage as well as indexes.&lt;/p>
&lt;p>Data stored in segments usually do not overlap.
However, storing the same point in different segments will not cause problems since the search contains a deduplication mechanism.&lt;/p>
&lt;p>The segments consist of vector and payload storages, vector and payload &lt;a href="https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/documentation/concepts/indexing/">indexes&lt;/a>, and id mapper, which stores the relationship between internal and external ids.&lt;/p></description></item><item><title>Indexing</title><link>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/documentation/concepts/indexing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>info@qdrant.tech (Andrey Vasnetsov)</author><guid>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/documentation/concepts/indexing/</guid><description>&lt;h1 id="indexing">Indexing&lt;/h1>
&lt;p>A key feature of Qdrant is the effective combination of vector and traditional indexes. It is essential to have this because for vector search to work effectively with filters, having a vector index only is not enough. In simpler terms, a vector index speeds up vector search, and payload indexes speed up filtering.&lt;/p>
&lt;p>The indexes in the segments exist independently, but the parameters of the indexes themselves are configured for the whole collection.&lt;/p></description></item><item><title>Snapshots</title><link>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/documentation/concepts/snapshots/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>info@qdrant.tech (Andrey Vasnetsov)</author><guid>https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/documentation/concepts/snapshots/</guid><description>&lt;h1 id="snapshots">Snapshots&lt;/h1>
&lt;p>&lt;em>Available as of v0.8.4&lt;/em>&lt;/p>
&lt;p>Snapshots are &lt;code>tar&lt;/code> archive files that contain data and configuration of a specific collection on a specific node at a specific time. In a distributed setup, when you have multiple nodes in your cluster, you must create snapshots for each node separately when dealing with a single collection.&lt;/p>
&lt;p>This feature can be used to archive data or easily replicate an existing deployment. For disaster recovery, Qdrant Cloud users may prefer to use &lt;a href="https://deploy-preview-2138--condescending-goldwasser-91acf0.netlify.app/documentation/cloud/backups/">Backups&lt;/a> instead, which are physical disk-level copies of your data.&lt;/p></description></item></channel></rss>