{"id":40060,"date":"2025-08-12T18:36:43","date_gmt":"2025-08-12T16:36:43","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/?p=40060"},"modified":"2025-08-13T14:33:01","modified_gmt":"2025-08-13T12:33:01","slug":"sql-server-2025-generate-data-embeddings-for-semantic-search","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/sql-server-2025-generate-data-embeddings-for-semantic-search\/","title":{"rendered":"SQL-Server 2025: Generate Data Embeddings for Semantic Search"},"content":{"rendered":"<p>In this Blog we will continue with our AI journey in SQL-Server 2025 preview. If you didn\u2019t read the first Blog you\u2019ll find it here: <a href=\"https:\/\/www.dbi-services.com\/blog\/lift-your-application-in-the-age-of-ai-with-sql-server-2025\/\">dbi Blog<\/a>\u00a0<\/p>\n<p>In this article, we will explore the concept of data embeddings, a key concept for modern AI-driven applications and platforms. We will then examine the latest capabilities introduced in SQL Server 2025 (preview) and Azure SQL, focusing on their new support for vector data types. Finally, we will generate embeddings using an AI model and store them directly in our database, demonstrating how to integrate AI-powered semantic abstraction into your SQL workloads.<\/p>\n\n\n<h2 class=\"wp-block-heading\" id=\"h-but-first-what-exactly-are-data-embeddings\">But First: What Exactly Are Data Embeddings?<\/h2>\n\n\n<p>Let\u2019s start from the back. From a linguistic perspective, written text consists of syntax and semantics. While syntax refers to the structure of the text and the arrangement of words and letters, semantics refers to the actual meaning conveyed by the text. You can have text with a similar syntax but a different semantic and you can also have text with a similar or the same semantic but different syntax. For example:<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Sentence 1: Our customer satisfaction has increased.<\/li>\n\n\n\n<li>Sentence 2: The contentment of our clients is better than before.<\/li>\n<\/ul>\n\n\n\n<p>While both sentences have basically the same meaning, they differ in structure and the way the words and letters are arranged.<\/p>\n\n\n\n<p>In IT, we have different simple ways to search for syntax matches, such as exact string matching, wildcard searches or regular expressions (Regex) for more sophisticated syntax matches.<\/p>\n\n\n\n<p>But when we are looking for semantic matches, simple programming functions that only evaluate and compare the arrangement of letters are not enough. In such cases, we need a human, or another form of intelligence, that can interpret those arranged letters and understand their meaning.<\/p>\n\n\n\n<p>That\u2019s exactly where AI comes into play. The AI model basically reads and understands the written text, then it generates a numerical representation for the semantic of that text which we call \u201c<strong>embedding<\/strong>\u201d.<\/p>\n\n\n\n<p>When I first heard about embeddings, I asked myself: <em>Okay, but what is the data embedded in?<\/em> <\/p>\n\n\n\n<p>The answer is that the data is embedded in a high-dimensional mathematical space, with the vector data representing its coordinates within that space. Since the semantics of embedded data are represented as coordinates in a mathematical space, we can calculate the distance between embeddings and use that to search for data with similar meaning.<\/p>\n\n\n\n<p>If you want to learn more about the theory of vectors and embeddings, I can highly recommend the <a href=\"https:\/\/www.dbi-services.com\/blog\/future-data-driven-2024-introduction-to-vector-databases\/\">article <\/a>by my colleague <a href=\"https:\/\/www.dbi-services.com\/blog\/author\/aminehaloui\/\">Amine Haloui <\/a>\u2013 he explains the basic mathematical concepts in an understandable way, even if you\u2019re not a mathematician.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-enough-theory-for-now-let-s-get-practical\">Enough Theory for Now \u2013 Let\u2019s Get Practical!<\/h2>\n\n\n\n<p>Lets take a look how we can generate data embeddings with the latest functions and features of SQL-Server 2025 and Azure SQL directly within our database through T-SQL.<\/p>\n\n\n\n<p>For that I\u2019m using the same sample database which we already used in the previous blog post. But in the meantime I created a new column in my \u201c<strong>dbo.products<\/strong>\u201d table and I inserted in that column the AI generated product description for each product. If you are wondering how I did that \u2013 you can read it <a href=\"https:\/\/www.dbi-services.com\/blog\/lift-your-application-in-the-age-of-ai-with-sql-server-2025\/\">here<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"498\" height=\"650\" src=\"http:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/1-1.png\" alt=\"\" class=\"wp-image-40061\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/1-1.png 498w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/1-1-230x300.png 230w\" sizes=\"auto, (max-width: 498px) 100vw, 498px\" \/><\/figure>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: sql; title: ; notranslate\" title=\"\">\nselect p.product_id, p.product_name, p.Description, p.currency, p.price, c.category_name, b.brand_name, co.color_name, g.gender, s.season from dbo.products p\ninner join dbo.category c on p.category_id = c.category_id\ninner join dbo.brand b on p.brand_id = b.brand_id\ninner join dbo.color co on p.color_id = co.color_id\ninner join dbo.gender g on p.gender_id = g.gender_id\ninner join dbo.season s on p.season_id = s.season_id\n\n<\/pre><\/div>\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1044\" height=\"583\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/2-1.png\" alt=\"\" class=\"wp-image-40062\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/2-1.png 1044w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/2-1-300x168.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/2-1-1024x572.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/2-1-768x429.png 768w\" sizes=\"auto, (max-width: 1044px) 100vw, 1044px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-deploy-an-embedding-model\">Deploy an embedding Model:<\/h3>\n\n\n\n<p>For generating embeddings for our product data we need first an AI model which is capable to do that. Therefore I go into my Azure OpenAI Resource and I\u2019m searching in the Model catalog in the Azure Foundry Portal for embedding models (I show you exactly who I can go there and deploy resources in the previous <a href=\"https:\/\/www.dbi-services.com\/blog\/lift-your-application-in-the-age-of-ai-with-sql-server-2025\/\">blog<\/a>). There are currently three embedding models available from OpenAI. I\u2019m choosing for this blog post the model 3-small and I\u2019m deploying it with a click on \u201c<strong>text-embedding-3-small<\/strong>\u201d <strong>-&gt;<\/strong> \u201c<strong>use this model<\/strong>\u201d<strong>-&gt;<\/strong>\u201d<strong>Deploy<\/strong>\u201d :<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1040\" height=\"499\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/3-1.png\" alt=\"\" class=\"wp-image-40063\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/3-1.png 1040w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/3-1-300x144.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/3-1-1024x491.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/3-1-768x368.png 768w\" sizes=\"auto, (max-width: 1040px) 100vw, 1040px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1039\" height=\"205\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/4-1.png\" alt=\"\" class=\"wp-image-40064\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/4-1.png 1039w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/4-1-300x59.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/4-1-1024x202.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/4-1-768x152.png 768w\" sizes=\"auto, (max-width: 1039px) 100vw, 1039px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"602\" src=\"http:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/5-1.png\" alt=\"\" class=\"wp-image-40065\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/5-1.png 624w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/5-1-300x289.png 300w\" sizes=\"auto, (max-width: 624px) 100vw, 624px\" \/><\/figure>\n\n\n\n<p>Then I\u2019ll find the model in the Azure AI Foundry Portal under the section \u201c<strong>Deployments<\/strong>\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1039\" height=\"437\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/6-1.png\" alt=\"\" class=\"wp-image-40066\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/6-1.png 1039w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/6-1-300x126.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/6-1-1024x431.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/6-1-768x323.png 768w\" sizes=\"auto, (max-width: 1039px) 100vw, 1039px\" \/><\/figure>\n\n\n\n<p>When clicking on the model I\u2019m able to see my models API endpoint and the access key:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1039\" height=\"532\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/7-1.png\" alt=\"\" class=\"wp-image-40067\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/7-1.png 1039w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/7-1-300x154.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/7-1-1024x524.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/7-1-768x393.png 768w\" sizes=\"auto, (max-width: 1039px) 100vw, 1039px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-create-a-database-scoped-credential\">Create a Database Scoped Credential:<\/h3>\n\n\n\n<p>Okay so far so good, let\u2019s connect to our SQL-Server 2025 Instance where the ShopAI database is running on. To register the external model in our database and access it through the appropriate T-SQL functions, I first create a database-scoped credential. You can create the credential with a managed identity or with an API Key. I\u2019m using the API Key which I copied from the Azure AI Foundry Portal. Note that the credential name must point to a path which is more generic than the request URL:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: sql; title: ; notranslate\" title=\"\">\n-- Create database scoped credential:\nCREATE DATABASE SCOPED CREDENTIAL &#x5B;https:\/\/shopai-blog.openai.azure.com\/]\n\tWITH IDENTITY = &#039;HTTPEndpointHeaders&#039;, secret = &#039;{&quot;api-key&quot;:&quot;YOUR-API-KEY&quot;}&#039;;\nGO\n<\/pre><\/div>\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1039\" height=\"96\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/8-1.png\" alt=\"\" class=\"wp-image-40068\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/8-1.png 1039w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/8-1-300x28.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/8-1-1024x95.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/8-1-768x71.png 768w\" sizes=\"auto, (max-width: 1039px) 100vw, 1039px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1039\" height=\"212\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/9-1.png\" alt=\"\" class=\"wp-image-40069\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/9-1.png 1039w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/9-1-300x61.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/9-1-1024x209.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/9-1-768x157.png 768w\" sizes=\"auto, (max-width: 1039px) 100vw, 1039px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-register-the-external-ai-model\">Register the External AI Model:<\/h3>\n\n\n\n<p>As far as the database scoped credential is created we can register the external model with the \u201c<strong>Create External Model<\/strong>\u201d command, which is currently available in SQL-Server 2025 Preview, in our database. You can find more information\u2019s about this brand new command under the following link from Microsoft: <a href=\"https:\/\/learn.microsoft.com\/en-us\/sql\/t-sql\/statements\/create-external-model-transact-sql?view=sql-server-ver17\">https:\/\/learn.microsoft.com\/en-us\/sql\/t-sql\/statements\/create-external-model-transact-sql?view=sql-server-ver17<\/a><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: sql; title: ; notranslate\" title=\"\">\n-- Create EXTERNAL MODEL\nCREATE EXTERNAL MODEL OpenAITextEmbedding3Small\nAUTHORIZATION dbo\nWITH (\n      LOCATION = &#039;YOUR-ENDPOINT_URL&#039;,\n      API_FORMAT = &#039;Azure OpenAI&#039;,\n      MODEL_TYPE = EMBEDDINGS,\n      MODEL = &#039;text-embedding-3-small&#039;,\n      CREDENTIAL = &#x5B;YOUR-CREDENTIAL],\n      PARAMETERS = &#039;{&quot;Dimensions&quot;:1536}&#039;\n);\n<\/pre><\/div>\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1038\" height=\"218\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/10-1.png\" alt=\"\" class=\"wp-image-40070\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/10-1.png 1038w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/10-1-300x63.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/10-1-1024x215.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/10-1-768x161.png 768w\" sizes=\"auto, (max-width: 1038px) 100vw, 1038px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1036\" height=\"224\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/11-1.png\" alt=\"\" class=\"wp-image-40071\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/11-1.png 1036w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/11-1-300x65.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/11-1-1024x221.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/11-1-768x166.png 768w\" sizes=\"auto, (max-width: 1036px) 100vw, 1036px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-test-the-embedding-function\">Test the Embedding Function<\/h3>\n\n\n<p>As far as we created the external model successfully we can generate the embeddings with the \u201c<strong>AI_Generate_Embeddings<\/strong>\u201d function. This function is currently available in SQL-Server 2025 Preview.<\/p>\n<p>The function requires the text to be embedded and the name of a pre-created external model as arguments, with optional model-specific parameters that can be appended in JSON format. You can get more information\u2019s about this brand new function under the following link from Microsoft: <a href=\"https:\/\/learn.microsoft.com\/en-us\/sql\/t-sql\/functions\/ai-generate-embeddings-transact-sql?view=sql-server-ver17\">https:\/\/learn.microsoft.com\/en-us\/sql\/t-sql\/functions\/ai-generate-embeddings-transact-sql?view=sql-server-ver17<\/a><\/p>\n\n\n<p>Let\u2019s test the registered model and the embedding function with the command below. As you can see, the result is a JSON array containing multiple numerical values:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1037\" height=\"154\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/12-1.png\" alt=\"\" class=\"wp-image-40072\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/12-1.png 1037w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/12-1-300x45.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/12-1-1024x152.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/12-1-768x114.png 768w\" sizes=\"auto, (max-width: 1037px) 100vw, 1037px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-generate-and-store-product-embeddings\">Generate and Store Product Embeddings:<\/h3>\n\n\n\n<p>Having deployed the embedding model in Azure, registered it in our database, and successfully tested the embedding function, our next step is to generate embeddings for our products.<\/p>\n\n\n\n<p>Therefore I add an additional column called \u201c<strong>embedding<\/strong>\u201d to our \u201c<strong>dbo.products<\/strong>\u201d table. For the column I\u2019m using the vector data type which is currently available in Azure SQL and in SQL-Server 2025 preview. Note the number in the brackets of the datatype definition is representing the amount of dimensions which are used for the embedding. Who many dimensions you need is depending on the model you are using. The \u201c<strong>text-embedding3-small<\/strong>\u201d model from OpenAI is using 1536 dimensions per default:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: sql; title: ; notranslate\" title=\"\">\nALTER TABLE dbo.products\nADD embedding vector(1536);\n<\/pre><\/div>\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"372\" height=\"115\" src=\"http:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/13-1.png\" alt=\"\" class=\"wp-image-40073\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/13-1.png 372w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/13-1-300x93.png 300w\" sizes=\"auto, (max-width: 372px) 100vw, 372px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1037\" height=\"357\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/14-1.png\" alt=\"\" class=\"wp-image-40074\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/14-1.png 1037w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/14-1-300x103.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/14-1-1024x353.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/14-1-768x264.png 768w\" sizes=\"auto, (max-width: 1037px) 100vw, 1037px\" \/><\/figure>\n\n\n\n<p>I now want to generate embeddings for all products in my ShopAI database and store them in the newly created column, taking the following product attributes into account when generating the embeddings:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Product Name<\/li>\n\n\n\n<li>Product Description<\/li>\n\n\n\n<li>Product Price<\/li>\n\n\n\n<li>Product Season<\/li>\n\n\n\n<li>Product Gender<\/li>\n<\/ul>\n\n\n\n<p>To accomplish this, I use the code below to generate the embeddings:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: sql; title: ; notranslate\" title=\"\">\nUPDATE p\nSET p.embedding = AI_GENERATE_EMBEDDINGS(\n    CONCAT(\n        N&#039;Product Name: &#039;,            COALESCE(p.product_name, N&#039;Unknown&#039;),\n        N&#039; | Product Description: &#039;,  COALESCE(p.&#x5B;description], N&#039;Unknown&#039;),\n        N&#039; | Product Price (CHF): &#039;,  COALESCE(CONVERT(NVARCHAR(32), p.price), N&#039;Unknown&#039;),\n        N&#039; | Product Season: &#039;,\n        CASE p.season_id\n            WHEN 1 THEN N&#039;Spring&#039;\n            WHEN 2 THEN N&#039;Summer&#039;\n            WHEN 3 THEN N&#039;Autumn&#039;\n            WHEN 4 THEN N&#039;Winter&#039;\n            WHEN 5 THEN N&#039;All Seasons&#039;\n            ELSE N&#039;Unknown&#039;\n        END,\n        N&#039; | Product Gender: &#039;,\n        CASE p.gender_id\n            WHEN 1 THEN N&#039;Male&#039;\n            WHEN 2 THEN N&#039;Female&#039;\n            WHEN 3 THEN N&#039;Unisex&#039;\n            ELSE N&#039;Unknown&#039;\n        END\n    ) USE MODEL OpenAITextEmbedding3Small\n)\nFROM dbo.products AS p\nWHERE p.embedding IS NULL;\n\n<\/pre><\/div>\n\n\n<p>The query ran for over four minutes and successfully generated embeddings for all products:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1035\" height=\"752\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/15-1.png\" alt=\"\" class=\"wp-image-40075\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/15-1.png 1035w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/15-1-300x218.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/15-1-1024x744.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/15-1-768x558.png 768w\" sizes=\"auto, (max-width: 1035px) 100vw, 1035px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"228\" src=\"http:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/16-1.png\" alt=\"\" class=\"wp-image-40076\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/16-1.png 975w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/16-1-300x70.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/16-1-768x180.png 768w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1035\" height=\"494\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/17-1.png\" alt=\"\" class=\"wp-image-40077\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/17-1.png 1035w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/17-1-300x143.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/17-1-1024x489.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/17-1-768x367.png 768w\" sizes=\"auto, (max-width: 1035px) 100vw, 1035px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-test-semantic-similarity-functions\">Test Semantic Similarity Functions:<\/h3>\n\n\n\n<p>So far so good, we were able to deploy an embedding model in Azure, we successfully created a credential for the access to the model, we registered the embedding model with the latest T-SQL command and we were able to generate embeddings for our products.<\/p>\n\n\n\n<p>Let\u2019s see how we can use now the embedding model and the embedded data for semantic search capabilities.<\/p>\n\n\n\n<p>Therefore I\u2019m using the \u201c<strong>Vector_Distance<\/strong>\u201d function which is available in SQL-Server 2025 preview and in Azure SQL. The function requires 3 arguments: The first is the metric you want to use for calculating the distance between two embeddings, and the other two are the vectors you want to compare.You can get more information\u2019s about this brand new function under the following link from Microsoft: <a href=\"https:\/\/learn.microsoft.com\/en-us\/sql\/t-sql\/functions\/vector-distance-transact-sql?view=sql-server-ver17\">https:\/\/learn.microsoft.com\/en-us\/sql\/t-sql\/functions\/vector-distance-transact-sql?view=sql-server-ver17<\/a><\/p>\n\n\n\n<p>Okay, let\u2019s see how we can use this function &#8211; It\u2019s summer and I would like to go on summer vacation (again). Therefore I\u2019m looking for some pants which I can wear during my summer holidays. I don\u2019t like anything flashy, so I\u2019d like the pants in black.<\/p>\n\n\n\n<p>Let\u2019s test with the code below if we can find a matching product for me:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: sql; title: ; notranslate\" title=\"\">\nDECLARE @SemanticSearchText Nvarchar(max) = &#039;Im looking for black pants for men which I can wear during my summer vacation.&#039;\n\n\t\n\tDECLARE @qv VECTOR(1536) = AI_GENERATE_EMBEDDINGS(@SemanticSearchText USE MODEL OpenAITextEmbedding3Small);\n\n\tSELECT TOP(10) \n\t  product_name, \n\t  Description,\n\t  price,\n\t  s.season,\n\t  g.gender,\n\t  VECTOR_DISTANCE(&#039;cosine&#039;, @qv, embedding) AS distance \n\tFROM dbo.products p\n\t  inner join dbo.season s on p.season_id = s.season_id\n\t  inner join dbo.gender g on p.gender_id = g.gender_id\nORDER BY   distance;\n<\/pre><\/div>\n\n\n<p>As you can see, the results are quite accurate. All of the products are pants, except for the one with the highest distance, which is a full swimsuit. Every product is black in color, and most are categorized for the summer season, except for two that are suited for all seasons:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"894\" height=\"562\" src=\"http:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/18-2.png\" alt=\"\" class=\"wp-image-40078\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/18-2.png 894w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/18-2-300x189.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/18-2-768x483.png 768w\" sizes=\"auto, (max-width: 894px) 100vw, 894px\" \/><\/figure>\n\n\n\n<p>As you can see by combining SQL Server 2025\u2019s new vector capabilities with external embedding models, we can seamlessly integrate semantic understanding directly into our data workflows. This enables intelligent, context-aware queries that go far beyond simple keyword matching.<\/p>\n\n\n\n<p>You can find all the code again on <a href=\"https:\/\/github.com\/HocineMechara\/SQL2025-AI-Product-Embeddings-Blog-\/tree\/main\">GitHub <\/a>and test it by your own. Feel free to share your thoughts with me in the comment section and stay tuned for upcoming posts from my colleagues and me. \ud83d\ude09<\/p>\n\n\n\n<p>Thanks for reading,<br>Hocine<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this Blog we will continue with our AI journey in SQL-Server 2025 preview. If you didn\u2019t read the first Blog you\u2019ll find it here: dbi Blog\u00a0 In this article, we will explore the concept of data embeddings, a key concept for modern AI-driven applications and platforms. We will then examine the latest capabilities introduced [&hellip;]<\/p>\n","protected":false},"author":145,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[3271,99],"tags":[2810,652,3070,2702,3652,51,3567],"type_dbi":[],"class_list":["post-40060","post","type-post","status-publish","format-standard","hentry","category-azure","category-sql-server","tag-ai","tag-data","tag-data-driven","tag-data-platform","tag-embeddings","tag-sql-server","tag-vectors"],"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>SQL-Server 2025: Generate Data Embeddings for Semantic Search - dbi Blog<\/title>\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\/sql-server-2025-generate-data-embeddings-for-semantic-search\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SQL-Server 2025: Generate Data Embeddings for Semantic Search\" \/>\n<meta property=\"og:description\" content=\"In this Blog we will continue with our AI journey in SQL-Server 2025 preview. If you didn\u2019t read the first Blog you\u2019ll find it here: dbi Blog\u00a0 In this article, we will explore the concept of data embeddings, a key concept for modern AI-driven applications and platforms. We will then examine the latest capabilities introduced [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/sql-server-2025-generate-data-embeddings-for-semantic-search\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2025-08-12T16:36:43+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-13T12:33:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/1-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"498\" \/>\n\t<meta property=\"og:image:height\" content=\"650\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Hocine Mechara\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Hocine Mechara\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 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\/sql-server-2025-generate-data-embeddings-for-semantic-search\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2025-generate-data-embeddings-for-semantic-search\/\"},\"author\":{\"name\":\"Hocine Mechara\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/29415d02bc1b50884796a01cf649951f\"},\"headline\":\"SQL-Server 2025: Generate Data Embeddings for Semantic Search\",\"datePublished\":\"2025-08-12T16:36:43+00:00\",\"dateModified\":\"2025-08-13T12:33:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2025-generate-data-embeddings-for-semantic-search\/\"},\"wordCount\":1472,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2025-generate-data-embeddings-for-semantic-search\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/1-1.png\",\"keywords\":[\"ai\",\"data\",\"data driven\",\"Data platform\",\"embeddings\",\"SQL Server\",\"vectors\"],\"articleSection\":[\"Azure\",\"SQL Server\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/sql-server-2025-generate-data-embeddings-for-semantic-search\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2025-generate-data-embeddings-for-semantic-search\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2025-generate-data-embeddings-for-semantic-search\/\",\"name\":\"SQL-Server 2025: Generate Data Embeddings for Semantic Search - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2025-generate-data-embeddings-for-semantic-search\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2025-generate-data-embeddings-for-semantic-search\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/1-1.png\",\"datePublished\":\"2025-08-12T16:36:43+00:00\",\"dateModified\":\"2025-08-13T12:33:01+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/29415d02bc1b50884796a01cf649951f\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2025-generate-data-embeddings-for-semantic-search\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/sql-server-2025-generate-data-embeddings-for-semantic-search\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2025-generate-data-embeddings-for-semantic-search\/#primaryimage\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/1-1.png\",\"contentUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/1-1.png\",\"width\":498,\"height\":650},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2025-generate-data-embeddings-for-semantic-search\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SQL-Server 2025: Generate Data Embeddings for Semantic Search\"}]},{\"@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\/29415d02bc1b50884796a01cf649951f\",\"name\":\"Hocine Mechara\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/f771f838feed0619485da1e42ae05d771dcb446e1f4785244582280315fa73c3?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f771f838feed0619485da1e42ae05d771dcb446e1f4785244582280315fa73c3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f771f838feed0619485da1e42ae05d771dcb446e1f4785244582280315fa73c3?s=96&d=mm&r=g\",\"caption\":\"Hocine Mechara\"},\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/hocinemechara\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"SQL-Server 2025: Generate Data Embeddings for Semantic Search - dbi Blog","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\/sql-server-2025-generate-data-embeddings-for-semantic-search\/","og_locale":"en_US","og_type":"article","og_title":"SQL-Server 2025: Generate Data Embeddings for Semantic Search","og_description":"In this Blog we will continue with our AI journey in SQL-Server 2025 preview. If you didn\u2019t read the first Blog you\u2019ll find it here: dbi Blog\u00a0 In this article, we will explore the concept of data embeddings, a key concept for modern AI-driven applications and platforms. We will then examine the latest capabilities introduced [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/sql-server-2025-generate-data-embeddings-for-semantic-search\/","og_site_name":"dbi Blog","article_published_time":"2025-08-12T16:36:43+00:00","article_modified_time":"2025-08-13T12:33:01+00:00","og_image":[{"width":498,"height":650,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/1-1.png","type":"image\/png"}],"author":"Hocine Mechara","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Hocine Mechara","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2025-generate-data-embeddings-for-semantic-search\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2025-generate-data-embeddings-for-semantic-search\/"},"author":{"name":"Hocine Mechara","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/29415d02bc1b50884796a01cf649951f"},"headline":"SQL-Server 2025: Generate Data Embeddings for Semantic Search","datePublished":"2025-08-12T16:36:43+00:00","dateModified":"2025-08-13T12:33:01+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2025-generate-data-embeddings-for-semantic-search\/"},"wordCount":1472,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2025-generate-data-embeddings-for-semantic-search\/#primaryimage"},"thumbnailUrl":"http:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/1-1.png","keywords":["ai","data","data driven","Data platform","embeddings","SQL Server","vectors"],"articleSection":["Azure","SQL Server"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/sql-server-2025-generate-data-embeddings-for-semantic-search\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2025-generate-data-embeddings-for-semantic-search\/","url":"https:\/\/www.dbi-services.com\/blog\/sql-server-2025-generate-data-embeddings-for-semantic-search\/","name":"SQL-Server 2025: Generate Data Embeddings for Semantic Search - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2025-generate-data-embeddings-for-semantic-search\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2025-generate-data-embeddings-for-semantic-search\/#primaryimage"},"thumbnailUrl":"http:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/1-1.png","datePublished":"2025-08-12T16:36:43+00:00","dateModified":"2025-08-13T12:33:01+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/29415d02bc1b50884796a01cf649951f"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2025-generate-data-embeddings-for-semantic-search\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/sql-server-2025-generate-data-embeddings-for-semantic-search\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2025-generate-data-embeddings-for-semantic-search\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/1-1.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/08\/1-1.png","width":498,"height":650},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2025-generate-data-embeddings-for-semantic-search\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"SQL-Server 2025: Generate Data Embeddings for Semantic Search"}]},{"@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\/29415d02bc1b50884796a01cf649951f","name":"Hocine Mechara","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f771f838feed0619485da1e42ae05d771dcb446e1f4785244582280315fa73c3?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f771f838feed0619485da1e42ae05d771dcb446e1f4785244582280315fa73c3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f771f838feed0619485da1e42ae05d771dcb446e1f4785244582280315fa73c3?s=96&d=mm&r=g","caption":"Hocine Mechara"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/hocinemechara\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/40060","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\/145"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=40060"}],"version-history":[{"count":8,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/40060\/revisions"}],"predecessor-version":[{"id":40098,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/40060\/revisions\/40098"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=40060"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=40060"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=40060"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=40060"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}