{"id":253857,"date":"2025-08-14T05:00:59","date_gmt":"2025-08-14T12:00:59","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/visualstudio\/?p=253857"},"modified":"2025-08-13T12:51:27","modified_gmt":"2025-08-13T19:51:27","slug":"improving-codebase-awareness-in-visual-studio-chat","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/visualstudio\/improving-codebase-awareness-in-visual-studio-chat\/","title":{"rendered":"Improving Codebase Awareness in Visual Studio Chat"},"content":{"rendered":"<h2><b><span data-contrast=\"auto\">Smarter Code Search in Visual Studio: From BM25 to Semantic Search<\/span><\/b><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}\">\u00a0<\/span><\/h2>\n<p><span data-contrast=\"auto\">In our latest 17.14.11 release, we\u2019ve made a significant leap forward in how we explore your code to retrieve meaningful context. Our new Remote Semantic Search integration helps you find exactly what you need faster and with greater precision than ever before.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">By embedding Remote Semantic Search directly into the Visual Studio Copilot code search experience, we\u2019ve combined the power of traditional keyword search (BM25) with the deep contextual understanding of cutting-edge AI models. This means your searches go beyond just matching words, they grasp the concepts and intent behind your search queries.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Let\u2019s dive into what\u2019s new, why it\u2019s a game-changer, and how you can start using it today.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}\">\u00a0<\/span><\/p>\n<h3><b><span data-contrast=\"auto\">The Legacy: BM25 + Reranking<\/span><\/b><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">Before this update, Visual Studio\u2019s code search relied solely on a BM25-based search engine. BM25 is a well-established ranking algorithm that evaluates how closely each document, such as code files or symbols, matches your query. It does this by analyzing term frequency and document length, balancing how often a term appears within a document against how rare it is across the entire codebase. Simply put, the more a term shows up in a file (to a certain extent) and the less common it is overall, the more relevant that file is considered.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">On top of that, we used reranking logic to fine-tune results. This step gave extra weight to certain matches, like hits in file names or symbols within active projects, so that the most likely relevant results would surface right at the top.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}\">\u00a0<\/span><\/p>\n<h4><b><span data-contrast=\"auto\">The limitations:<\/span><\/b><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}\">\u00a0<\/span><\/h4>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"auto\">BM25 is purely keyword-based. It doesn\u2019t understand synonyms, concepts or context by itself.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:276}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"2\" data-aria-level=\"1\"><span data-contrast=\"auto\">Searching for <\/span><i><span data-contrast=\"auto\">\u201cget user authentication token\u201d<\/span><\/i><span data-contrast=\"auto\"> would only match files containing those exact words (authentication, token, etc), missing matches like <\/span><i><span data-contrast=\"auto\">RetrieveOAuthCredential<\/span><\/i><span data-contrast=\"auto\"> or JWT.<\/span><\/li>\n<\/ul>\n<h3><b><span data-contrast=\"auto\">The Upgrade: Semantic Search<\/span><\/b><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">Unlike traditional search that focuses on matching exact words, semantic search matches meaning. Powered by advanced vector embeddings, it transforms both your query and every piece of code into points in a high-dimensional space. That&#8217;s where their semantic similarity can be measured.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">This means it understands that phrases like \u201cfetch user credentials\u201d and \u201cget authentication token\u201d are closely related, even if they don\u2019t share any exact words. Semantic search captures the purpose of functions, the intent behind variables, and even the context in code comments to deliver results that truly match what you\u2019re looking for.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}\">\u00a0<\/span><\/p>\n<h2><b><span data-contrast=\"auto\">Using Semantic Code Search in Visual Studio<\/span><\/b><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}\">\u00a0<\/span><\/h2>\n<p><span data-contrast=\"auto\">Thanks to our remote indexing, Semantic Code Search is available for solutions hosted in Azure DevOps and GitHub repositories that have been indexed. To learn more about the GitHub integration check out <\/span><a href=\"https:\/\/docs.github.com\/en\/search-github\/github-code-search\/about-github-code-search\"><span data-contrast=\"none\">About GitHub Code Search &#8211; GitHub Docs<\/span><\/a><span data-contrast=\"auto\">. <\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">To try it out:<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}\">\u00a0<\/span><\/p>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><b><span data-contrast=\"auto\">Open your Copilot Chat window<\/span><\/b><span data-contrast=\"auto\">\u00a0<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:276}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"2\" data-aria-level=\"1\"><b><span data-contrast=\"auto\">Use our #solution feature to ask questions like:<\/span><\/b><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:276}\">\u00a0<\/span><\/li>\n<\/ul>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"o\" data-font=\"Courier New\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:1440,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Courier New&quot;,&quot;469769242&quot;:[9675],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;o&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"2\"><i><span data-contrast=\"auto\">\u201c#solution Where are the API requests?\u201d<\/span><\/i><span data-contrast=\"auto\">\u00a0<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:276}\">\u00a0<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li aria-setsize=\"-1\" data-leveltext=\"o\" data-font=\"Courier New\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:1440,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Courier New&quot;,&quot;469769242&quot;:[9675],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;o&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"2\" data-aria-level=\"2\"><i><span data-contrast=\"auto\">\u201cWhere is Authentication Handled? #solution\u201d<\/span><\/i><span data-contrast=\"auto\">\u00a0<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:276}\">\u00a0<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><b><span data-contrast=\"auto\">Feel free to use natural language, our semantic engine understands full sentences. For example: <\/span><\/b><i><span data-contrast=\"auto\">\u201cWhere do we generate the JWT token for API requests?\u201d<\/span><\/i><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}\">\u00a0<\/span><\/p>\n<h4><b><span data-contrast=\"auto\">Examples in Action<\/span><\/b><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}\">\u00a0<\/span><\/h4>\n<p><span data-contrast=\"auto\">Let\u2019s explore how this works using the <\/span><a href=\"https:\/\/github.com\/dotnet\/roslyn\"><span data-contrast=\"none\">Roslyn repository<\/span><\/a><span data-contrast=\"auto\">. We\u2019ll run search queries in Copilot and compare the results side-by-side. In the table below, you\u2019ll see results returned by the traditional BM25 algorithm on the left, and the new Semantic Search on the right. These examples highlight how much smarter and more relevant your code search can be.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}\">\u00a0<\/span><\/p>\n<table style=\"width: 95.486%;\" data-tablestyle=\"MsoTableGrid\" data-tablelook=\"1184\" aria-rowcount=\"6\">\n<tbody>\n<tr aria-rowindex=\"1\">\n<td style=\"text-align: center; width: 138.175%;\" colspan=\"2\" data-celllook=\"4369\"><b><span data-contrast=\"auto\">Comparison table<\/span><\/b><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:2,&quot;335551620&quot;:2,&quot;335559738&quot;:0,&quot;335559739&quot;:0}\">\u00a0<\/span><\/td>\n<\/tr>\n<tr aria-rowindex=\"2\">\n<td style=\"width: 49.3042%;\" data-celllook=\"4369\"><span data-contrast=\"auto\">BM25 method<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:2,&quot;335551620&quot;:2,&quot;335559738&quot;:0,&quot;335559739&quot;:0}\">\u00a0<\/span><\/td>\n<td style=\"width: 88.8711%;\" data-celllook=\"4369\"><span data-contrast=\"auto\">Semantic Search<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:2,&quot;335551620&quot;:2,&quot;335559738&quot;:0,&quot;335559739&quot;:0}\">\u00a0<\/span><\/td>\n<\/tr>\n<tr aria-rowindex=\"3\">\n<td style=\"width: 49.3042%;\" data-celllook=\"4369\"><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2025\/08\/image002.png\"><img decoding=\"async\" class=\"alignnone size-medium wp-image-253861\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2025\/08\/image002-262x300.png\" alt=\"Copilot chat response using BM25 returning keyword matches\" width=\"262\" height=\"300\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2025\/08\/image002-262x300.png 262w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2025\/08\/image002.png 710w\" sizes=\"(max-width: 262px) 100vw, 262px\" \/><\/a><\/td>\n<td style=\"width: 88.8711%;\" data-celllook=\"4369\"><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:2,&quot;335551620&quot;:2,&quot;335559738&quot;:0,&quot;335559739&quot;:0}\">\u00a0<a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2025\/08\/image004.png\"><img decoding=\"async\" class=\"alignnone size-medium wp-image-253862\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2025\/08\/image004-264x300.png\" alt=\"Copilot chat response using semantic search returning semantic matches\" width=\"264\" height=\"300\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2025\/08\/image004-264x300.png 264w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2025\/08\/image004.png 730w\" sizes=\"(max-width: 264px) 100vw, 264px\" \/><\/a><\/span><\/td>\n<\/tr>\n<tr aria-rowindex=\"4\">\n<td style=\"width: 138.175%;\" colspan=\"2\" data-celllook=\"4369\"><span data-contrast=\"auto\">With semantic search, the results may be fewer, but they are significantly more accurate. The search engine was able to understand that \u201cdeleting not synchronous modifiers\u201d and \u201cremoving Async modifiers\u201d convey the same intent, even though the wording is different, demonstrating its deeper understanding of code meaning.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:2,&quot;335551620&quot;:2,&quot;335559738&quot;:0,&quot;335559739&quot;:0}\">\u00a0<\/span><\/td>\n<\/tr>\n<tr aria-rowindex=\"5\">\n<td style=\"width: 49.3042%;\" data-celllook=\"4369\"><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:0,&quot;335559739&quot;:0}\">\u00a0<a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2025\/08\/image006.png\"><img decoding=\"async\" class=\"alignnone size-medium wp-image-253863\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2025\/08\/image006-258x300.png\" alt=\"Copilot chat response using BM25 returning keyword matches\" width=\"258\" height=\"300\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2025\/08\/image006-258x300.png 258w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2025\/08\/image006.png 733w\" sizes=\"(max-width: 258px) 100vw, 258px\" \/><\/a><\/span><\/td>\n<td style=\"width: 88.8711%;\" data-celllook=\"4369\"><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:0,&quot;335559739&quot;:0}\">\u00a0<a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2025\/08\/image008.png\"><img decoding=\"async\" class=\"alignnone size-medium wp-image-253864\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2025\/08\/image008-243x300.png\" alt=\"Copilot chat response using semantic search returning semantic matches\" width=\"243\" height=\"300\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2025\/08\/image008-243x300.png 243w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2025\/08\/image008.png 688w\" sizes=\"(max-width: 243px) 100vw, 243px\" \/><\/a><\/span><\/td>\n<\/tr>\n<tr aria-rowindex=\"6\">\n<td style=\"width: 138.175%;\" colspan=\"2\" data-celllook=\"4369\"><span data-contrast=\"auto\">BM25 tends to return files that contain matching terms, even if they are less relevant or potentially unrelated, such as corrupted or test files. For example, with BM25, an extra file named <\/span><b><span data-contrast=\"auto\">SmartIdenterEnterOnTokenTests<\/span><\/b><span data-contrast=\"auto\"> was included in the results, which was not directly relevant to the query.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:2,&quot;335551620&quot;:2,&quot;335559738&quot;:0,&quot;335559739&quot;:0}\">\u00a0<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3><b><span data-contrast=\"auto\">Wrapping Up<\/span><\/b><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">Remote Semantic Search into Visual Studio Copilot marks a major step forward in how Copilot understands developer\u2019s codebase. By combining the precision of traditional keyword search with the deep, context-aware insights of AI-driven semantic search, finding the right code has never been easier.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Whether you\u2019re digging into complex legacy projects or exploring unfamiliar repositories, this powerful new search experience helps get straight to the heart of what matters, saving time and reducing frustration.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Give it a try today and experience a smarter way to search your code.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Happy coding!<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:276}\">\u00a0<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Smarter Code Search in Visual Studio: From BM25 to Semantic Search\u00a0 In our latest 17.14.11 release, we\u2019ve made a significant leap forward in how we explore your code to retrieve meaningful context. Our new Remote Semantic Search integration helps you find exactly what you need faster and with greater precision than ever before.\u00a0 By embedding [&hellip;]<\/p>\n","protected":false},"author":196553,"featured_media":253862,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[6967,155],"tags":[6969],"class_list":["post-253857","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-github-copilot","category-visual-studio","tag-github-copilot-chat"],"acf":[],"blog_post_summary":"<p>Smarter Code Search in Visual Studio: From BM25 to Semantic Search\u00a0 In our latest 17.14.11 release, we\u2019ve made a significant leap forward in how we explore your code to retrieve meaningful context. Our new Remote Semantic Search integration helps you find exactly what you need faster and with greater precision than ever before.\u00a0 By embedding [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/253857","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/users\/196553"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/comments?post=253857"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/253857\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media\/253862"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media?parent=253857"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/categories?post=253857"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/tags?post=253857"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}