{"id":34882,"date":"2024-09-30T18:30:00","date_gmt":"2024-09-30T16:30:00","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/?p=34882"},"modified":"2025-02-16T23:57:15","modified_gmt":"2025-02-16T22:57:15","slug":"future-data-driven-2024-introduction-to-vector-databases","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/future-data-driven-2024-introduction-to-vector-databases\/","title":{"rendered":"Future Data Driven 2024 &#8211; introduction to vector databases"},"content":{"rendered":"\n<p>I had the opportunity to participate in the Future Data Driven 2024 event (<a href=\"https:\/\/datadrivencommunity.com\/FutureDataDriven2024.html\">https:\/\/datadrivencommunity.com\/FutureDataDriven2024.html<\/a>) with my colleague <a href=\"https:\/\/www.dbi-services.com\/blog\/author\/stephane-haby\/\">St\u00e9phane Haby<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full img {border:1px solid black}\"><img loading=\"lazy\" decoding=\"async\" width=\"957\" height=\"610\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-45.png\" alt=\"\" class=\"wp-image-34905\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-45.png 957w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-45-300x191.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-45-768x490.png 768w\" sizes=\"auto, (max-width: 957px) 100vw, 957px\" \/><\/figure>\n\n\n\n<p>Many speakers were present, and I was able to attend several sessions covering the following topics: Azure, AI, CosmosDB, Co-Pilot, Database Watcher. In several sessions, when AI was discussed, we talked about vector databases.<\/p>\n\n\n\n<p>These were terms I had heard before but never really understood. So, I would like to present how vector databases are used.<\/p>\n\n\n\n<p>Before talking about vector databases, it is necessary to cover certain concepts, which are as follows:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Vectors<\/li>\n\n\n\n<li>Vector embeddings<\/li>\n\n\n\n<li>Cosine similarity<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-vectors\">Vectors<\/h2>\n\n\n\n<p><strong>General Information<\/strong><\/p>\n\n\n\n<p class=\"img { border:1px solid black}\">Vectors are mathematical objects that consist of both a magnitude (or length) and a direction. We can graphically represent a vector (in a 2-dimensional plane) as follows:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-style-default img { border:1px solid black}\"><img loading=\"lazy\" decoding=\"async\" width=\"882\" height=\"681\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-35.png\" alt=\"\" class=\"wp-image-34895\" Style=\"border:1px solid #000000\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-35.png 882w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-35-300x232.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-35-768x593.png 768w\" sizes=\"auto, (max-width: 882px) 100vw, 882px\" \/><\/figure>\n\n\n\n<p>A 2-dimensional vector can be written as follows:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"165\" height=\"52\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-24.png\" alt=\"\" class=\"wp-image-34884\" Style=\"border:1px solid #000000\" \/><\/figure>\n\n\n\n<p>In our case, we can write it as:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"173\" height=\"52\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-33.png\" alt=\"\" class=\"wp-image-34889\" Style=\"border:1px solid #000000\" \/><\/figure>\n\n\n\n<p>We also find another notation to describe vectors, which is as follows:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"79\" height=\"52\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-36.png\" alt=\"\" class=\"wp-image-34896\" Style=\"border:1px solid #000000\" \/><\/figure>\n\n\n\n<p>Vectors are multidimensional, and their notation can be as follows for a 4-dimensional vector:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"89\" height=\"99\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-23.png\" alt=\"\" class=\"wp-image-34883\" Style=\"border:1px solid #000000\" \/><\/figure>\n\n\n\n<p>A first problem arises here. Indeed, when multiple vectors are described, this initial form of notation can be confusing. In this case, we can introduce a new notation:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"98\" height=\"31\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-42.png\" alt=\"\" class=\"wp-image-34899\" style=\"width:126px;height:auto;border:1px solid #000000\" \/><\/figure>\n\n\n\n<p>x and y are the components of vector a.<\/p>\n\n\n\n<p><strong>Length or Magnitude of a Vector:<\/strong><\/p>\n\n\n\n<p>We mentioned earlier that one of the properties of a vector is its length or norm. This is calculated as follows for a vector:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"147\" height=\"47\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-25.png\" alt=\"\" class=\"wp-image-34885\" style=\"width:166px;height:auto;border:1px solid #000000\" \/><\/figure>\n\n\n\n<p>In the case of the vector described above, this results in:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"173\" height=\"52\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-26.png\" alt=\"\" class=\"wp-image-34887\" style=\"width:150px;height:auto;border:1px solid #000000\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"332\" height=\"33\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-27.png\" alt=\"\" class=\"wp-image-34886\" Style=\"border:1px solid #000000\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-27.png 332w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-27-300x30.png 300w\" sizes=\"auto, (max-width: 332px) 100vw, 332px\" \/><\/figure>\n\n\n\n<p>Thus, we can see that this formula corresponds to the calculation of the hypotenuse. The length of the vector is the value of the hypotenuse.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"668\" height=\"494\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-34.png\" alt=\"\" class=\"wp-image-34894\" Style=\"border:1px solid #000000\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-34.png 668w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-34-300x222.png 300w\" sizes=\"auto, (max-width: 668px) 100vw, 668px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-vectors-embeddings\"><strong>Vectors embeddings<\/strong><\/h2>\n\n\n\n<p>Vector embeddings allow us to represent data (texts, images, etc.) in the form of vectors. One way to describe images using a relational database system would be to use several tables:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"740\" height=\"408\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-39.png\" alt=\"\" class=\"wp-image-34898\" Style=\"border:1px solid #000000\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-39.png 740w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-39-300x165.png 300w\" sizes=\"auto, (max-width: 740px) 100vw, 740px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-table aligncenter is-style-stripes\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-center\" data-align=\"center\"><strong>Table name<\/strong><\/th><th class=\"has-text-align-center\" data-align=\"center\"><strong>Details<\/strong><\/th><\/tr><\/thead><tbody><tr><td class=\"has-text-align-center\" data-align=\"center\">Image<\/td><td class=\"has-text-align-center\" data-align=\"center\">Contains images<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Tag<\/td><td class=\"has-text-align-center\" data-align=\"center\">Contains words that describes images<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Description<\/td><td class=\"has-text-align-center\" data-align=\"center\">Associate an image with the words, the tags that describe it<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>By using certain SQL operators, it should be possible to find images that are described as similar (because they share the same tags).<\/p>\n\n\n\n<p>Vector embeddings represent data differently. Several techniques exist for this, including:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Word2Vec<\/strong>: A method that uses neural networks to create vector representations of words.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>GloVe (Global Vectors for Word Representation)<\/strong>: A technique that uses co-occurrence statistics to create embeddings.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>BERT (Bidirectional Encoder Representations from Transformers)<\/strong>: An advanced model that generates contextual embeddings, taking into account surrounding words.<\/li>\n<\/ul>\n\n\n\n<p>Thus, vector databases use vector embeddings. Once these embeddings are generated, they are stored in vector databases. Then, it is possible to use cosine similarity to evaluate how similar the vectors are. Finally, vector databases index the vectors, and there are several methods:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tree-based indexing<\/li>\n\n\n\n<li>Approximate Nearest Neighbors<\/li>\n\n\n\n<li>Quantization<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-cosine-similarity\"><strong>Cosine similarity<\/strong><\/h2>\n\n\n\n<p>Cosine similarity allows for a precise evaluation of the similarity between two vectors. Here is an example:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Imagine that I have two recipe cards. I would like to determine if these two recipes are similar based on the ingredients mentioned in them.\n<ul class=\"wp-block-list\">\n<li>So, I have two recipes: R1 and R2\n<ul class=\"wp-block-list\">\n<li>R1: in this recipe, the word &#8220;egg&#8221; is mentioned 6 times and the word &#8220;flour&#8221; is mentioned 1 time.<\/li>\n\n\n\n<li>R2: in this recipe, the word &#8220;egg&#8221; is mentioned 1 time and the word &#8220;flour&#8221; is mentioned 8 times.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p>Based on this information, it is possible to graphically represent how many times these words appear.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"615\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-44-1024x615.png\" alt=\"\" class=\"wp-image-34904\" Style=\"border:1px solid #000000\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-44-1024x615.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-44-300x180.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-44-768x461.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-44.png 1209w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>The first vector represents my first recipe. The second vector represents my second recipe.<\/p>\n\n\n\n<p>Cosine similarity will determine if these two recipes are similar (this is a very simplified example). To do this, we need to calculate the cosine of 81 degrees (which is 0.15643447). Here, on the graph, the angle formed between the two vectors is 81 degrees.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"234\" height=\"31\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-43.png\" alt=\"\" class=\"wp-image-34903\" Style=\"border:1px solid #000000\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"157\" height=\"27\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-29.png\" alt=\"\" class=\"wp-image-34892\" Style=\"border:1px solid #000000\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-29.png 157w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-29-150x27.png 150w\" sizes=\"auto, (max-width: 157px) 100vw, 157px\" \/><\/figure>\n\n\n\n<p>Here are more details on how to calculate cosine similarity:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"234\" height=\"54\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-37.png\" alt=\"\" class=\"wp-image-34897\" Style=\"border:1px solid #000000\" \/><\/figure>\n\n\n\n<p>It is possible to represent recipes R1 and R2 by two vectors, which are as follows:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"188\" height=\"32\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-31.png\" alt=\"\" class=\"wp-image-34891\" Style=\"border:1px solid #000000\" \/><\/figure>\n\n\n\n<p>So we have:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"328\" height=\"27\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-28.png\" alt=\"\" class=\"wp-image-34888\" Style=\"border:1px solid #000000\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-28.png 328w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-28-300x25.png 300w\" sizes=\"auto, (max-width: 328px) 100vw, 328px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"318\" height=\"67\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-40.png\" alt=\"\" class=\"wp-image-34901\" Style=\"border:1px solid #000000\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-40.png 318w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-40-300x63.png 300w\" sizes=\"auto, (max-width: 318px) 100vw, 318px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"254\" height=\"50\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-32.png\" alt=\"\" class=\"wp-image-34893\" Style=\"border:1px solid #000000\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"228\" height=\"51\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-38.png\" alt=\"\" class=\"wp-image-34900\" Style=\"border:1px solid #000000\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"283\" height=\"47\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-30.png\" alt=\"\" class=\"wp-image-34890\" Style=\"border:1px solid #000000\" \/><\/figure>\n\n\n\n<p>The values of cosine similarity can range between -1 and 1. Here, this value indicates that the two recipes are not very similar.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-pinecone-vector-databases-python-implementation\"><strong>Pinecone, vector databases, python implementation<\/strong><\/h2>\n\n\n\n<p>Pinecone is a vector database. It is designed to store, manage, and search vectors, enabling similarity search operations and analyses based on unstructured data.<\/p>\n\n\n\n<p>Here is an example created from the documentation that illustrates how to use vector databases and calculate similarities between vectors:<\/p>\n\n\n\n<p><strong>Code :<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>from pinecone.grpc import PineconeGRPC as Pinecone\nfrom pinecone import ServerlessSpec\n\npc = Pinecone(api_key='MyAPIKey')\n\nindex_name = \"example-index\"\n\npc.create_index(\n&nbsp;&nbsp;&nbsp; name=index_name,\n&nbsp;&nbsp;&nbsp; dimension=2,\n&nbsp;&nbsp;&nbsp; metric=\"cosine\", #we use the cosine similarity\n&nbsp;&nbsp;&nbsp; spec=ServerlessSpec(\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cloud='aws',\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; region='us-east-1'\n&nbsp;&nbsp;&nbsp; )\n)\n\nwhile not pc.describe_index(index_name).status&#091;'ready']:\n&nbsp;&nbsp;&nbsp; time.sleep(1)\nindex = pc.Index(index_name)\n\nindex.upsert(\n&nbsp;&nbsp;&nbsp; vectors=&#091;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {\"id\": \"vec1\", \"values\": &#091;6,1]}, #we define our first vector\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {\"id\": \"vec2\", \"values\": &#091;1,8]}, #we define our second vector\n&nbsp;&nbsp;&nbsp; ],\n&nbsp;&nbsp;&nbsp; namespace=\"example-namespace1\"\n)\n\nquery_results1 = index.query(\n&nbsp;&nbsp;&nbsp; namespace=\"example-namespace1\",\n&nbsp;&nbsp;&nbsp; vector=&#091;1,7],\n&nbsp;&nbsp;&nbsp; top_k=3,\n&nbsp;&nbsp;&nbsp; include_values=True\n)\n\nprint(query_results1)<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>Here is the result:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"493\" height=\"211\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-41.png\" alt=\"\" class=\"wp-image-34902\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-41.png 493w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-41-300x128.png 300w\" sizes=\"auto, (max-width: 493px) 100vw, 493px\" \/><\/figure>\n\n\n\n<p>We had as input a vector with the value of [1, 7]. This vector was compared to the other two vectors, and the cosine similarity (the score) was determined.<\/p>\n\n\n\n<p>If you encounter any errors while running this script, it is possible that your index already exists or has not yet been created.<\/p>\n\n\n\n<p>Thank you, Amine Haloui.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I had the opportunity to participate in the Future Data Driven 2024 event (https:\/\/datadrivencommunity.com\/FutureDataDriven2024.html) with my colleague St\u00e9phane Haby. Many speakers were present, and I was able to attend several sessions covering the following topics: Azure, AI, CosmosDB, Co-Pilot, Database Watcher. In several sessions, when AI was discussed, we talked about vector databases. These were [&hellip;]<\/p>\n","protected":false},"author":147,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[955,198,368],"tags":[3404,135,280,1089],"type_dbi":[],"class_list":["post-34882","post","type-post","status-publish","format-standard","hentry","category-cloud","category-database-management","category-development-performance","tag-artificial-inteligence","tag-cloud","tag-database","tag-python"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Future Data Driven 2024 - introduction to vector databases - dbi Blog<\/title>\n<meta name=\"description\" content=\"Introduction to vector databases.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/future-data-driven-2024-introduction-to-vector-databases\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Future Data Driven 2024 - introduction to vector databases\" \/>\n<meta property=\"og:description\" content=\"Introduction to vector databases.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/future-data-driven-2024-introduction-to-vector-databases\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2024-09-30T16:30:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-02-16T22:57:15+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-45.png\" \/>\n\t<meta property=\"og:image:width\" content=\"957\" \/>\n\t<meta property=\"og:image:height\" content=\"610\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Amine Haloui\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Amine Haloui\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/future-data-driven-2024-introduction-to-vector-databases\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/future-data-driven-2024-introduction-to-vector-databases\/\"},\"author\":{\"name\":\"Amine Haloui\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/221331d69d49c63fca67069b49b813fe\"},\"headline\":\"Future Data Driven 2024 &#8211; introduction to vector databases\",\"datePublished\":\"2024-09-30T16:30:00+00:00\",\"dateModified\":\"2025-02-16T22:57:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/future-data-driven-2024-introduction-to-vector-databases\/\"},\"wordCount\":787,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/future-data-driven-2024-introduction-to-vector-databases\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-45.png\",\"keywords\":[\"Artificial inteligence\",\"Cloud\",\"database\",\"Python\"],\"articleSection\":[\"Cloud\",\"Database management\",\"Development &amp; Performance\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/future-data-driven-2024-introduction-to-vector-databases\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/future-data-driven-2024-introduction-to-vector-databases\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/future-data-driven-2024-introduction-to-vector-databases\/\",\"name\":\"Future Data Driven 2024 - introduction to vector databases - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/future-data-driven-2024-introduction-to-vector-databases\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/future-data-driven-2024-introduction-to-vector-databases\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-45.png\",\"datePublished\":\"2024-09-30T16:30:00+00:00\",\"dateModified\":\"2025-02-16T22:57:15+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/221331d69d49c63fca67069b49b813fe\"},\"description\":\"Introduction to vector databases.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/future-data-driven-2024-introduction-to-vector-databases\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/future-data-driven-2024-introduction-to-vector-databases\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/future-data-driven-2024-introduction-to-vector-databases\/#primaryimage\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-45.png\",\"contentUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-45.png\",\"width\":957,\"height\":610},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/future-data-driven-2024-introduction-to-vector-databases\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Future Data Driven 2024 &#8211; introduction to vector databases\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/221331d69d49c63fca67069b49b813fe\",\"name\":\"Amine Haloui\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/64707272207cd8d2667aefcb212f3ff5d19a15813da5aad6553f109d1f1afec1?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/64707272207cd8d2667aefcb212f3ff5d19a15813da5aad6553f109d1f1afec1?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/64707272207cd8d2667aefcb212f3ff5d19a15813da5aad6553f109d1f1afec1?s=96&d=mm&r=g\",\"caption\":\"Amine Haloui\"},\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/aminehaloui\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Future Data Driven 2024 - introduction to vector databases - dbi Blog","description":"Introduction to vector databases.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/future-data-driven-2024-introduction-to-vector-databases\/","og_locale":"en_US","og_type":"article","og_title":"Future Data Driven 2024 - introduction to vector databases","og_description":"Introduction to vector databases.","og_url":"https:\/\/www.dbi-services.com\/blog\/future-data-driven-2024-introduction-to-vector-databases\/","og_site_name":"dbi Blog","article_published_time":"2024-09-30T16:30:00+00:00","article_modified_time":"2025-02-16T22:57:15+00:00","og_image":[{"width":957,"height":610,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-45.png","type":"image\/png"}],"author":"Amine Haloui","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Amine Haloui","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/future-data-driven-2024-introduction-to-vector-databases\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/future-data-driven-2024-introduction-to-vector-databases\/"},"author":{"name":"Amine Haloui","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/221331d69d49c63fca67069b49b813fe"},"headline":"Future Data Driven 2024 &#8211; introduction to vector databases","datePublished":"2024-09-30T16:30:00+00:00","dateModified":"2025-02-16T22:57:15+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/future-data-driven-2024-introduction-to-vector-databases\/"},"wordCount":787,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/future-data-driven-2024-introduction-to-vector-databases\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-45.png","keywords":["Artificial inteligence","Cloud","database","Python"],"articleSection":["Cloud","Database management","Development &amp; Performance"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/future-data-driven-2024-introduction-to-vector-databases\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/future-data-driven-2024-introduction-to-vector-databases\/","url":"https:\/\/www.dbi-services.com\/blog\/future-data-driven-2024-introduction-to-vector-databases\/","name":"Future Data Driven 2024 - introduction to vector databases - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/future-data-driven-2024-introduction-to-vector-databases\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/future-data-driven-2024-introduction-to-vector-databases\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-45.png","datePublished":"2024-09-30T16:30:00+00:00","dateModified":"2025-02-16T22:57:15+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/221331d69d49c63fca67069b49b813fe"},"description":"Introduction to vector databases.","breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/future-data-driven-2024-introduction-to-vector-databases\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/future-data-driven-2024-introduction-to-vector-databases\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/future-data-driven-2024-introduction-to-vector-databases\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-45.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/09\/image-45.png","width":957,"height":610},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/future-data-driven-2024-introduction-to-vector-databases\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Future Data Driven 2024 &#8211; introduction to vector databases"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/221331d69d49c63fca67069b49b813fe","name":"Amine Haloui","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/64707272207cd8d2667aefcb212f3ff5d19a15813da5aad6553f109d1f1afec1?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/64707272207cd8d2667aefcb212f3ff5d19a15813da5aad6553f109d1f1afec1?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/64707272207cd8d2667aefcb212f3ff5d19a15813da5aad6553f109d1f1afec1?s=96&d=mm&r=g","caption":"Amine Haloui"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/aminehaloui\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/34882","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/147"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=34882"}],"version-history":[{"count":21,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/34882\/revisions"}],"predecessor-version":[{"id":37286,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/34882\/revisions\/37286"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=34882"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=34882"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=34882"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=34882"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}