Blog Post

AI - Azure AI services Blog
15 MIN READ

Raising the bar for RAG excellence: query rewriting and new semantic ranker

alinabeck's avatar
alinabeck
Icon for Microsoft rankMicrosoft
Nov 19, 2024

Introducing an improved generative query engine with query rewriting and next-gen reranking model

By Alec Berntson, Alina Stoica Beck, Amaia Salvador Aguilera, Farzad Sunavala, Thibault Gisselbrecht and Xianshun Chen

 

We are announcing 2 major updates that raise the bar again for RAG retrieval: a new capability, query rewriting, and a new model for semantic ranker.  These enhancements set new performance standards for relevance and latency across many benchmarks.

  • Generative Query Rewriting (QR)
    • Powered by a fine-tuned Small Language Model (SLM) optimized for low latency.
    • Creates up to 10 query transformations to improve recall.
    • Improves search relevance, especially for term-based indexes and when recall is low (+4 points NDCG@3).
    • Included at no additional cost with semantic ranker queries.
  • New semantic ranker (SR)
    • Cross-encoder model which reranks the top 50 results.
    • Delivers significant improvements in relevance and performance (tested on over 90 datasets across 19 languages; up to +22 points NDCG@3 improvement when combined with QR).
    • Up to 2.3 times lower latency than the previous model.
    • Includes refreshed models for answers, captions, and highlights.
    • Requires zero configuration changes – automatic upgrade effective November 19, 2024.

Last year, we showed that vector search alone is not sufficient for adequate relevance; combining hybrid search with reranking proved to be the most successful retrieval stack for delivering high quality results. Since then, using a reranker and hybrid search in your RAG app has become table stakes.

This year, we have expanded and improved our query pipeline performance, with model training and optimizations based on insights from in-production RAG applications, and  billions of queries a day. With the addition of query rewriting and a new model for semantic ranker, our retrieval stack has surpassed our previous leading results from a year ago.

Performance Benchmarks

Performance Summary

Background

The query stack in Azure AI Search follows a pattern that's often used in sophisticated search systems, where there are two main layers of execution: recall (L1) and ranking (L2). A more detailed explanation can be found in section 1 of our previous post,  but in short, the L1 recalls documents from customer indexes using either text, vector or hybrid (a combination of the two) representations. Ranking, using Semantic Ranker, reorders the top 50 documents from the L1 to put the best content first (e.g. for input to an LLM for RAG). Query rewriting is a new step that runs before the L1. It produces up to 10  different rewrites which are sent together to the L1 to improve its recall.

Summary

We tested Azure AI Search with the new QR + SR models on a multitude of datasets that span many different use cases. The following insights compare hybrid, QR and new SR to hybrid L1 alone. While the two models can be used with text-only or vector-only L1s, hybrid L1 is a strong baseline that usually offers the best L1 recall.

For customers with typical content:

  • Enabling QR + SR on an existing index yields an impressive +22 point NDCG@3 gain over a hybrid search (text-embedding-3-large 3072-dim) alone. This is almost 2 times the improvement as compared to the previous production ranker (which achieved +13 points over hybrid L1).
  • QR + SR allows you to achieve results comparable to the text-embedding-003-large model at 3072 dimensions when using an older embedding model like text-embedding-ada-002 or a BQ (binary quantization) compressed embedding model such as text-embedding-003-large at 256 dimensions.
  • QR + SR relevance improvements are consistent across content segments and languages, as shown by numerous tests on representative content. One evaluation dataset alone has 70 representative indexes spanning typical customer content types and languages.
  • QR and SR are trained to support over 50 languages and benchmarked here against 19.
  • QR and SR are both heavily optimized for latency; SR can rerank a batch of fifty 2048 token documents in an average of 158ms, while QR can generate ten rewrites for a 32 token query in 147ms.
  • QR is extremely useful across the board for text-based L1s (up to +4 points) and for hybrid L1s where retrieval quality tends to be poor or where queries are misspelled or contain text and numeric combinations (up to +6 points).

Retrieval Performance Across Different Search Configurations and Datasets

Table 1 compares the performance of different search configurations, including the new semantic ranker and query rewriting, on many different datasets.

Summary Metrics (NDCG)

 Search configuration

Open Source Internal

BEIR 

Miracl 

Customer 

MIML 

Support 

Average 

Delta*

Text only

41.6 

49.5 

43.5 

46.1 

38.4 

42.6 

 

text-embedding-ada-002

Vector

47.3 

57.3 

38.0 

51.9 

45.5 

45.1 

 

Hybrid

50.2 

59.1 

45.3 

53.1 

46.9 

48.4 

 

Hybrid + SR (legacy)

51.3 

72.0 

62.1 

67.7 

59.7 

63.1 

+14.7 

Hybrid + SR (new)

55.0 

78.0 

68.2 

75.0 

69.9 

71.1 

+22.7 

Hybrid+ QR + SR (new)

54.9 

78.1 

68.1 

75.5 

71.5 

71.7 

+23.3 

text-embedding-3-large 256-dim BQ

Vector

47.5 

73.4 

37.1 

53.4 

31.0 

40.5 

 

Hybrid

49.6 

69.5 

45.7 

55.7 

43.5 

48.3 

 

Hybrid + SR (legacy)

51.5 

71.8 

62.4 

68.5 

57.9 

62.9 

+14.6 

Hybrid + SR (new)

55.3 

79.0 

68.5 

75.9 

68.1 

70.8 

+22.5 

Hybrid+ QR + SR (new)

55.2 

78.9 

68.4 

76.2 

70.6 

71.7 

+23.4 

text-embedding-3-large

Vector

54.6 

78.1 

42.6 

60.3 

35.0 

46.0 

 

Hybrid

53.0 

70.5 

48.5 

58.2 

46.9 

51.2 

 

Hybrid + SR (legacy)

52.1 

71.8 

63.3 

69.5 

59.3 

64.0 

+12.8 

Hybrid + SR (new)

56.3 

79.3 

69.4 

77.2 

70.3 

72.3 

+21.1 

Hybrid+ QR + SR (new)

55.9 

79.4 

69.3 

77.2 

72.0 

72.8 

+21.6 

Table 1: Summary Metrics across benchmarks. Beir and Miracl use NDCG@10, Internal use NDCG@3. * Delta is against hybrid L1 as baseline. Customer, MIML, Support datasets are described below. Largest values in bold.

 

Benchmark selection and design

QR+SR delivers substantial improvements over its predecessor. Academic benchmarks are shown for transparency, but it is important to look at the queries and documents included in them to ensure they align to production scenarios. We have sought to improve our measurement in several dimensions:

  • Retrieval benchmarks typically use very small documents (e.g. 99.8% of BEIR documents have at most 1024 tokens). We use documents from real RAG scenarios that range from 10s to 100s of pages, requiring chunking.
  • Retrieval benchmarks are typically sparsely labeled (e.g. only one or two labeled documents per query) at low granularity (e.g. binary “good/bad” labels). This does not provide high measurement resolution and does not allow for alternative documents that may have the same information to be retrieved. We labeled an average of 160 document chunk pairs per query with 5 levels of granularity.
  • Most retrieval benchmarks are based on Wikipedia documents or highly processed text segments from other sources. We use real documents that require ingestion and processing of complex formatting and may have OCR and parsing artifacts.

We used 3 sources of documents for our internal benchmarks:

  • One ("Customer") with several document sets provided with permission from Azure customers. Queries are both from real users and synthetically created. These document sets range from several hundred documents to several million.
  • One ("Support") is sourced from hundreds of thousands of public support/knowledge base articles where the same documents were present in many different languages. We tested against 9 of these languages. All queries are from real users.
  • One (Multi-industry, Multi-language – "MIML") is a collection of 70 indexes that we created from publicly available documents. These were filtered and clustered to represent typical documents from 10 customer segments and 7 languages. Each segment language pair has approximately 1000 documents and 1500 queries (real user and synthetically generated). There are about 100k total queries and 70k total documents.

The synthetic queries were generated by prompting several different large language models in more than ten different ways. Numerous quality control steps were followed to filter malformed or non-representative queries. We further reviewed these queries with real customers. The resulting queries are of many types, from keyword and web search-like, to complex questions.

We use benchmark-provided labels to produce metrics for public datasets (BEIR and Miracl). For our internal benchmarks, we calibrated a large language model (GPT-4o) prompt against thousands of high-quality human labels. This prompt took in a query-document pair and generated a relevance score on a 5-point scale. For every internal benchmark experiment, we scored the top 50 documents to ensure there were no measurement holes. Public datasets have many holes and we left them as-is to enable external comparisons.

For each query, we used all the data that was labeled for the different methods to compute the ideal ranking of documents for that query. We compared the ranking provided by each method to this ideal ranking to compute NDCG@3. This makes the different methods and search configurations comparable to each other.

Datasets that closely align to real customer challenges allow us to produce models that are robust when they encounter real world complexity. The improvements we see across all these datasets demonstrate this.

Search configurations

Azure AI Search enables several different L1 configurations: text-based, vector-based and hybrid which combines results from both using RRF. QR + SR can be composed with any of these options. In this post we focused on hybrid search because it is a high baseline; we observed even larger relevance improvements when using vector-only or text-only L1s.

We broke up documents into 1024 token chunks (no overlap was used in this analysis) because we observe customers commonly using this size. 1024 token chunks are on the larger size but still preserve the option to combine multiple chunks for LLM consumption and keep multi-turn context windows manageable.

Result Insights

Insight: QR+SR expands embedding model flexibility and improves quality

Embedding models represent an index maintenance challenge – when a new model is released, all documents need to be re-embedded to get the gains. It’s also likely that you’ll want to use Binary Quantization (BQ) to reduce the storage cost of vectors. Older embedding models (text-embedding-ada-002) and embedding models using BQ (text-embedding-003-large 256 dimensions) do not achieve the same performance (-2.8 and -2.9 points respectively) in a hybrid search setup as a modern, full dimension embedding model (text-embedding-003-large at 3072 dimensions).

 

Embedding Model

Dimensions 

Vector-only 

Hybrid 

Hybrid + QR + SR 

text-embedding-ada-002

1536 

45.1 

48.4 

71.7 

text-embedding-3-large

(BQ)  256 

40.5 

48.3 

71.7 

3072 

46.0 

51.2 

72.8 

Table 2: NDCG@3 comparison of different embedding models shows that Hybrid+QR+SR offers robust relevance. Largest values in bold.

 

Our data in Table 2 shows that QR + SR can significantly improve relevance over L1. By promoting the best document chunks to the top of the recall set, it provides substantial relevance gains over a best in class embedding model and can bring the older or heavily compressed embedding models to within a point of the best search configuration. This allows you to save on re-embedding costs or use storage optimized techniques with minimal relevance penalty.

 

Insight: QR+SR gives large relevance gains across Language/Content Segments

Table 3 shows the NDCG@3 gain (absolute increase) of enabling QR+SR over traditional hybrid search in the MIML dataset. Text-embedding-003-large at 256 dimensions with BQ is the embedding model used for this example. Each segment-language pair represents about 1500 queries searching against 1000 documents split into 1024 token chunks. The relevance improvement is consistently substantial across all content segments and languages (average +21 with a range from +12 points to +28 points). This gives confidence that SR+QR should be enabled by default on RAG applications to deliver the best retrieved content.

 

Content Segment

German 

English 

Spanish 

French 

Japanese 

Chinese (simplified)

Chinese (traditional)

Average

Accounting & Tax Services

+22.0 

+25.2 

+24.4 

+22.6 

+21.5 

+20.8 

+17.3 

+22.0 

Banking

+21.8 

+24.5 

+23.6 

+22.5 

+22.9 

+19.6 

+19.1 

+22.0 

Government Administration

+23.1 

+27.5 

+27.8 

+23.9 

+22.3 

+19.1 

+20.4 

+23.5 

Healthcare Administration

+20.1 

+24.7 

+21.7 

+19.5 

+20.3 

+15.5 

+16.8 

+19.8 

Healthcare Research

+19.3 

+21.1 

+21.6 

+17.6 

+17.0 

+14.5 

+12.2 

+17.6 

Human Resources

+17.0 

+25.1 

+20.6 

+17.5 

+21.6 

+12.0 

+12.9 

+18.1 

Industrial and Manufacturing

+21.4 

+20.4 

+20.6 

+18.4 

+19.5 

+16.1 

+20.1 

+19.5 

Insurance

+19.9 

+25.0 

+22.7 

+23.0 

+17.2 

+15.8 

+18.3 

+20.3 

Legal

+22.8 

+26.8 

+24.9 

+21.0 

+17.9 

+18.9 

+16.8 

+21.3 

Product Manuals

+20.9 

+23.5 

+21.9 

+17.8 

+18.3 

+27.4 

+18.2 

+21.2 

Average

+20.8 

+23.8 

+23.0 

+20.4 

+19.9 

+18.0 

+17.2 

+20.7 

Table 3: NDCG@3 gain (absolute increase) of enabling QR+SR over hybrid search baseline. Row and column averages in bold.

 

Insight: QR+SR gives large relevance gains across Query Types

We classified the MIML and Support queries into categories to give insight as to how the search stack would perform in different scenarios. Tables 4 and 5 aggregate the queries of each type across languages and content segments and show a consistent story: enabling SR + QR will provide a large benefit in all scenarios.

A few observations:

  • In workloads where query types are diverse, all L1s - text-based, vector-based and hybrid L1s - each have strengths and weaknesses. Text-based search is still the best for queries looking for exact strings (e.g. product ids); it far outperforms vector retrieval for codewords. If you try to balance the performance by combining vector retrieval with text-based (hybrid search), you might still observe a loss in relevance when compared to text-only search, as shown by the Support dataset. However, adding QR+SR recovers from this deficit and significantly outperforms any L1-only configuration.
  • 'Hard' queries – those from across all categories where Hybrid search (text-embedding-003-large at 3072 dimensions) is not able to find at least 5 reasonably relevant candidates in the top 50 - greatly benefit from QR. The Support dataset [all real queries] sees a 4 point gain from QR in this category.
  • QR is also most beneficial for keyword-like queries (keyword, codeword) and misspellings. These are generally the hardest (lowest L1 relevance) classes of queries.

 

Query Type

Text 

Vector 

Hybrid 

Hybrid + SR 

Hybrid+ QR + SR 

Delta vs Hybrid 

acronym

40.4 

31.4 

45.8 

68.5 

69.9 

+24.1 

codeword

36.2 

17.4 

32.3 

58.6 

64.4 

+32.1 

concept

28.3 

41.3 

44.8 

64.3 

65.1 

+20.3 

fact

28.6 

42.0 

45.4 

64.8 

65.0 

+19.6 

keyword

40.9 

33.9 

47.5 

71.4 

73.3 

+25.8 

misspellings

23.5 

31.9 

38.4 

60.8 

63.2 

+24.8 

question

28.6 

42.6 

47.0 

67.1 

68.4 

+21.4 

web-like

37.0 

39.1 

49.3 

71.5 

72.9 

+23.6 

easy

43.3 

38.1 

52.2 

75.6 

76.6 

+24.4 

hard

23.5 

25.6 

30.8 

54.3 

58.2 

+27.4 

Table 4:  Support Benchmark by category (NDCG@3). Text-embedding-3-large 3072-dimensions used for all Vector and Hybrid L1s. Largest values in bold.

 

Query Type

Text  Vector  Hybrid  Hybrid + SR  Hybrid+ QR + SR  Delta vs Hybrid 

acronym

55.9 

61.8 

63.3 

79.6 

79.8 

+16.5 

codeword

58.6 

53.4 

60.0 

80.5 

80.8 

+20.8 

concept

44.3 

63.8 

59.3 

76.6 

76.8 

+17.5 

fact

48.9 

58.0 

58.5 

80.3 

80.4 

+21.9 

keyword

47.6 

61.3 

59.5 

76.9 

76.9 

+17.4 

misspellings

38.9 

57.5 

54.6 

71.9 

72.1 

+17.5 

question

45.4 

60.3 

57.8 

78.0 

78.1 

+20.3 

web-like

47.6 

64.9 

60.4 

78.3 

78.4 

+18.0 

easy

44.7 

63.8 

60.4 

77.5 

77.0 

+16.6 

hard

46.5 

56.2 

55.3 

76.2 

76.8 

+21.5 

Table 5: MIML Benchmark by category (NDCG@3). Text-embedding-3-large 3072-dimensions used for all Vector and Hybrid L1s. Largest values in bold.

 

Insight: Query rewriting greatly improves text-based relevance

We can see that QR is particularly helpful when L1 is text-based only. QR improves relevance by +2 to +4 more points when using text-based L1 than hybrid L1 on MIML and Support datasets. A large number of customers have text-only indexes, and this is a great way to strongly improve relevance if adding a vector representation (to get a hybrid L1) is not feasible.

This QR implementation creates new words and phrases to represent the original query; these new terms expand the match footprint, which increases recall. This is somewhat less effective for embedding-based representations because semantic matching is already part of vector retrieval.

Dataset

L1 Type

L1 

L1 + SR 

L1 + QR + SR 

QR Gain over SR 

Support

Text

38.4 

61.7 

65.2 

+3.5 

Hybrid

46.9 

70.3 

72.0 

+1.7 

MIML

Text

46.1 

66.3 

70.3 

+4.0 

Hybrid

58.2 

77.2 

77.2 

0.0 

Table 6: Impact of QR on Text vs Hybrid Search (NDCG@3).

Model Creation and Optimization

Model training

We listened to customer feedback and observed industry trends over the past year since our last model update. Several strategies were used to train QR and a new SR:

  • Simplify the internal stack: We simplified internal components so that we could co-train the various capabilities of SR: ranking, captions, highlights and QnA. This resulted in better performance as a single model.
  • Increase the SR input context: We observed the use of larger queries and larger chunk sizes, so we trained SR that could natively support up to 2048 tokens. We determined this size offers a balance of relevance, runtime latency and cost. Longer chunks use an extractive summarization algorithm so they fit.
  • Utilize the latest training techniques: We used flash attention to enable larger batch sizes and faster training cycles for SR. Because QR is an SLM, we trained the model on completion tokens (Supervised Fine-tuning Trainer).
  • High quality training data: We constructed training data to emulate typical workloads using several sources of data across customer industries and following common index ingestion strategies. A wide range of languages (>50) and content formats was included. For SR we varied the size of chunks used; similarly, for QR we used many different sized queries.

 

Latency optimization

Latency is important for production environments, especially for RAG applications where retrieval and LLMs must work together for each response. We used an internal package that bundled CUDA level post-training optimizations in our runtime stack to enable much faster inference for the same payload/model size. This allows our new model to run up to 2.3 times faster than the previous one, as shown by Table 7.

Typical incremental latency for SR (milliseconds)

Document length (tokens)

Previous SR Model

New SR Model

 128 

44 

50 

 256 

116 

59 

 512 

182 

78 

 1024 

210 

113 

 2048 

243 

158  

Table 7: Average model execution latency in test environment to rank 50 documents (all with the same specified token length). All SR features enabled (captions, highlights, answers).

 

This is also true for QR (Table 8) where we fine-tuned and optimized an SLM to run within a tight latency budget despite having over 1 billion parameters.

Typical incremental latency for QR (milliseconds)

Query length (tokens) 

QR Model 

95 

116 

16 

144 

32 

147 

48 

167 

Table 8: Average model execution latency in test environment to generate 10 rewrites for queries with the specified token length.

Getting started with SR + QR in Azure AI Search

The system we evaluated in this work is available in production for developers to use in their own applications, as part of the Azure AI Search service. You can learn more about Azure AI Search in general here, or jump directly to the documentation for Semantic Ranker or Query Rewriting.

Appendix

External Dataset description

Query types description (one query can have multiple types)

Query type

Description

Example 

Web-like queries

Shortened queries similar to those commonly entered into Google or Bing

“Best retrieval concept queries”

Keyword

Short queries that consist of only important words

“semantic ranker”

Misspelling

Queries with misspellings, typos or transpositions of letters

“Ho w mny documents are samantically r4nked”

Acronym

Queries that contain an acronym

“when were ATMs invented”

Codeword

Queries that contain an identifier

“time of arrival for flight AF852 “

Question

Queries that ask a question

“who wrote Brothers Karamazov”

Fact seeking queries

Questions asking for simple facts with some given conditions, such as stock prices on a certain date and a director’s recent movies in a certain genre

“what were Microsoft earnings in 2020”

Concept seeking queries

Abstract questions that require multiple sentences to answer

“Why should I use semantic search to rank results?”

 

Updated Nov 21, 2024
Version 26.0
No CommentsBe the first to comment
"}},"componentScriptGroups({\"componentId\":\"custom.widget.Social_Sharing\"})":{"__typename":"ComponentScriptGroups","scriptGroups":{"__typename":"ComponentScriptGroupsDefinition","afterInteractive":{"__typename":"PageScriptGroupDefinition","group":"AFTER_INTERACTIVE","scriptIds":[]},"lazyOnLoad":{"__typename":"PageScriptGroupDefinition","group":"LAZY_ON_LOAD","scriptIds":[]}},"componentScripts":[]},"component({\"componentId\":\"custom.widget.MicrosoftFooter\"})":{"__typename":"Component","render({\"context\":{\"component\":{\"entities\":[],\"props\":{}},\"page\":{\"entities\":[\"board:Azure-AI-Services-blog\",\"message:4302729\"],\"name\":\"BlogMessagePage\",\"props\":{},\"url\":\"https://techcommunity.microsoft.com/blog/azure-ai-services-blog/raising-the-bar-for-rag-excellence-query-rewriting-and-new-semantic-ranker/4302729\"}}})":{"__typename":"ComponentRenderResult","html":""}},"componentScriptGroups({\"componentId\":\"custom.widget.MicrosoftFooter\"})":{"__typename":"ComponentScriptGroups","scriptGroups":{"__typename":"ComponentScriptGroupsDefinition","afterInteractive":{"__typename":"PageScriptGroupDefinition","group":"AFTER_INTERACTIVE","scriptIds":[]},"lazyOnLoad":{"__typename":"PageScriptGroupDefinition","group":"LAZY_ON_LOAD","scriptIds":[]}},"componentScripts":[]},"cachedText({\"lastModified\":\"1743095130000\",\"locale\":\"en-US\",\"namespaces\":[\"components/community/NavbarDropdownToggle\"]})":[{"__ref":"CachedAsset:text:en_US-components/community/NavbarDropdownToggle-1743095130000"}],"cachedText({\"lastModified\":\"1743095130000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/common/QueryHandler\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/common/QueryHandler-1743095130000"}],"cachedText({\"lastModified\":\"1743095130000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageCoverImage\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageCoverImage-1743095130000"}],"cachedText({\"lastModified\":\"1743095130000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/nodes/NodeTitle\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/nodes/NodeTitle-1743095130000"}],"cachedText({\"lastModified\":\"1743095130000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageTimeToRead\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageTimeToRead-1743095130000"}],"cachedText({\"lastModified\":\"1743095130000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageSubject\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageSubject-1743095130000"}],"cachedText({\"lastModified\":\"1743095130000\",\"locale\":\"en-US\",\"namespaces\":[\"components/users/UserLink\"]})":[{"__ref":"CachedAsset:text:en_US-components/users/UserLink-1743095130000"}],"cachedText({\"lastModified\":\"1743095130000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/users/UserRank\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/users/UserRank-1743095130000"}],"cachedText({\"lastModified\":\"1743095130000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageTime\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageTime-1743095130000"}],"cachedText({\"lastModified\":\"1743095130000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageBody\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageBody-1743095130000"}],"cachedText({\"lastModified\":\"1743095130000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageCustomFields\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageCustomFields-1743095130000"}],"cachedText({\"lastModified\":\"1743095130000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageRevision\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageRevision-1743095130000"}],"cachedText({\"lastModified\":\"1743095130000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageReplyButton\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageReplyButton-1743095130000"}],"cachedText({\"lastModified\":\"1743095130000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageAuthorBio\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageAuthorBio-1743095130000"}],"cachedText({\"lastModified\":\"1743095130000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/users/UserAvatar\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/users/UserAvatar-1743095130000"}],"cachedText({\"lastModified\":\"1743095130000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/ranks/UserRankLabel\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/ranks/UserRankLabel-1743095130000"}],"cachedText({\"lastModified\":\"1743095130000\",\"locale\":\"en-US\",\"namespaces\":[\"components/users/UserRegistrationDate\"]})":[{"__ref":"CachedAsset:text:en_US-components/users/UserRegistrationDate-1743095130000"}],"cachedText({\"lastModified\":\"1743095130000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/nodes/NodeAvatar\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/nodes/NodeAvatar-1743095130000"}],"cachedText({\"lastModified\":\"1743095130000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/nodes/NodeDescription\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/nodes/NodeDescription-1743095130000"}],"cachedText({\"lastModified\":\"1743095130000\",\"locale\":\"en-US\",\"namespaces\":[\"components/tags/TagView/TagViewChip\"]})":[{"__ref":"CachedAsset:text:en_US-components/tags/TagView/TagViewChip-1743095130000"}],"cachedText({\"lastModified\":\"1743095130000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/nodes/NodeIcon\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/nodes/NodeIcon-1743095130000"}]},"CachedAsset:pages-1743765852563":{"__typename":"CachedAsset","id":"pages-1743765852563","value":[{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"BlogViewAllPostsPage","type":"BLOG","urlPath":"/category/:categoryId/blog/:boardId/all-posts/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"CasePortalPage","type":"CASE_PORTAL","urlPath":"/caseportal","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"CreateGroupHubPage","type":"GROUP_HUB","urlPath":"/groups/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"CaseViewPage","type":"CASE_DETAILS","urlPath":"/case/:caseId/:caseNumber","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"InboxPage","type":"COMMUNITY","urlPath":"/inbox","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"HelpFAQPage","type":"COMMUNITY","urlPath":"/help","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"IdeaMessagePage","type":"IDEA_POST","urlPath":"/idea/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"IdeaViewAllIdeasPage","type":"IDEA","urlPath":"/category/:categoryId/ideas/:boardId/all-ideas/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"LoginPage","type":"USER","urlPath":"/signin","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"BlogPostPage","type":"BLOG","urlPath":"/category/:categoryId/blogs/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"UserBlogPermissions.Page","type":"COMMUNITY","urlPath":"/c/user-blog-permissions/page","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"ThemeEditorPage","type":"COMMUNITY","urlPath":"/designer/themes","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"TkbViewAllArticlesPage","type":"TKB","urlPath":"/category/:categoryId/kb/:boardId/all-articles/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1730819800000,"localOverride":null,"page":{"id":"AllEvents","type":"CUSTOM","urlPath":"/Events","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"OccasionEditPage","type":"EVENT","urlPath":"/event/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"OAuthAuthorizationAllowPage","type":"USER","urlPath":"/auth/authorize/allow","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"PageEditorPage","type":"COMMUNITY","urlPath":"/designer/pages","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"PostPage","type":"COMMUNITY","urlPath":"/category/:categoryId/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"ForumBoardPage","type":"FORUM","urlPath":"/category/:categoryId/discussions/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"TkbBoardPage","type":"TKB","urlPath":"/category/:categoryId/kb/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"EventPostPage","type":"EVENT","urlPath":"/category/:categoryId/events/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"UserBadgesPage","type":"COMMUNITY","urlPath":"/users/:login/:userId/badges","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"GroupHubMembershipAction","type":"GROUP_HUB","urlPath":"/membership/join/:nodeId/:membershipType","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"MaintenancePage","type":"COMMUNITY","urlPath":"/maintenance","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"IdeaReplyPage","type":"IDEA_REPLY","urlPath":"/idea/:boardId/:messageSubject/:messageId/comments/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"UserSettingsPage","type":"USER","urlPath":"/mysettings/:userSettingsTab","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"GroupHubsPage","type":"GROUP_HUB","urlPath":"/groups","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"ForumPostPage","type":"FORUM","urlPath":"/category/:categoryId/discussions/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"OccasionRsvpActionPage","type":"OCCASION","urlPath":"/event/:boardId/:messageSubject/:messageId/rsvp/:responseType","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"VerifyUserEmailPage","type":"USER","urlPath":"/verifyemail/:userId/:verifyEmailToken","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"AllOccasionsPage","type":"OCCASION","urlPath":"/category/:categoryId/events/:boardId/all-events/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"EventBoardPage","type":"EVENT","urlPath":"/category/:categoryId/events/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"TkbReplyPage","type":"TKB_REPLY","urlPath":"/kb/:boardId/:messageSubject/:messageId/comments/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"IdeaBoardPage","type":"IDEA","urlPath":"/category/:categoryId/ideas/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"CommunityGuideLinesPage","type":"COMMUNITY","urlPath":"/communityguidelines","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"CaseCreatePage","type":"SALESFORCE_CASE_CREATION","urlPath":"/caseportal/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"TkbEditPage","type":"TKB","urlPath":"/kb/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"ForgotPasswordPage","type":"USER","urlPath":"/forgotpassword","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"IdeaEditPage","type":"IDEA","urlPath":"/idea/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"TagPage","type":"COMMUNITY","urlPath":"/tag/:tagName","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"BlogBoardPage","type":"BLOG","urlPath":"/category/:categoryId/blog/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"OccasionMessagePage","type":"OCCASION_TOPIC","urlPath":"/event/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"ManageContentPage","type":"COMMUNITY","urlPath":"/managecontent","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"ClosedMembershipNodeNonMembersPage","type":"GROUP_HUB","urlPath":"/closedgroup/:groupHubId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"CommunityPage","type":"COMMUNITY","urlPath":"/","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"ForumMessagePage","type":"FORUM_TOPIC","urlPath":"/discussions/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"IdeaPostPage","type":"IDEA","urlPath":"/category/:categoryId/ideas/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1730819800000,"localOverride":null,"page":{"id":"CommunityHub.Page","type":"CUSTOM","urlPath":"/Directory","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"BlogMessagePage","type":"BLOG_ARTICLE","urlPath":"/blog/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"RegistrationPage","type":"USER","urlPath":"/register","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"EditGroupHubPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"ForumEditPage","type":"FORUM","urlPath":"/discussions/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"ResetPasswordPage","type":"USER","urlPath":"/resetpassword/:userId/:resetPasswordToken","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1730819800000,"localOverride":null,"page":{"id":"AllBlogs.Page","type":"CUSTOM","urlPath":"/blogs","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"TkbMessagePage","type":"TKB_ARTICLE","urlPath":"/kb/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"BlogEditPage","type":"BLOG","urlPath":"/blog/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"ManageUsersPage","type":"USER","urlPath":"/users/manage/:tab?/:manageUsersTab?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"ForumReplyPage","type":"FORUM_REPLY","urlPath":"/discussions/:boardId/:messageSubject/:messageId/replies/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"PrivacyPolicyPage","type":"COMMUNITY","urlPath":"/privacypolicy","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"NotificationPage","type":"COMMUNITY","urlPath":"/notifications","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"UserPage","type":"USER","urlPath":"/users/:login/:userId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"OccasionReplyPage","type":"OCCASION_REPLY","urlPath":"/event/:boardId/:messageSubject/:messageId/comments/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"ManageMembersPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId/manage/:tab?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"SearchResultsPage","type":"COMMUNITY","urlPath":"/search","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"BlogReplyPage","type":"BLOG_REPLY","urlPath":"/blog/:boardId/:messageSubject/:messageId/replies/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"GroupHubPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"TermsOfServicePage","type":"COMMUNITY","urlPath":"/termsofservice","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"CategoryPage","type":"CATEGORY","urlPath":"/category/:categoryId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"ForumViewAllTopicsPage","type":"FORUM","urlPath":"/category/:categoryId/discussions/:boardId/all-topics/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"TkbPostPage","type":"TKB","urlPath":"/category/:categoryId/kbs/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1743765852563,"localOverride":null,"page":{"id":"GroupHubPostPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"}],"localOverride":false},"CachedAsset:text:en_US-components/context/AppContext/AppContextProvider-0":{"__typename":"CachedAsset","id":"text:en_US-components/context/AppContext/AppContextProvider-0","value":{"noCommunity":"Cannot find community","noUser":"Cannot find current user","noNode":"Cannot find node with id {nodeId}","noMessage":"Cannot find message with id {messageId}"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/common/Loading/LoadingDot-0":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/Loading/LoadingDot-0","value":{"title":"Loading..."},"localOverride":false},"User:user:-1":{"__typename":"User","id":"user:-1","uid":-1,"login":"Deleted","email":"","avatar":null,"rank":null,"kudosWeight":1,"registrationData":{"__typename":"RegistrationData","status":"ANONYMOUS","registrationTime":null,"confirmEmailStatus":false,"registrationAccessLevel":"VIEW","ssoRegistrationFields":[]},"ssoId":null,"profileSettings":{"__typename":"ProfileSettings","dateDisplayStyle":{"__typename":"InheritableStringSettingWithPossibleValues","key":"layout.friendly_dates_enabled","value":"false","localValue":"true","possibleValues":["true","false"]},"dateDisplayFormat":{"__typename":"InheritableStringSetting","key":"layout.format_pattern_date","value":"MMM dd yyyy","localValue":"MM-dd-yyyy"},"language":{"__typename":"InheritableStringSettingWithPossibleValues","key":"profile.language","value":"en-US","localValue":"en","possibleValues":["en-US"]}},"deleted":false},"Theme:customTheme1":{"__typename":"Theme","id":"customTheme1"},"Category:category:AI":{"__typename":"Category","id":"category:AI","entityType":"CATEGORY","displayId":"AI","nodeType":"category","depth":3,"title":"Artificial Intelligence and Machine Learning","shortTitle":"Artificial Intelligence and Machine Learning","parent":{"__ref":"Category:category:solutions"},"categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:top":{"__typename":"Category","id":"category:top","displayId":"top","nodeType":"category","depth":0,"title":"Top","entityType":"CATEGORY","shortTitle":"Top"},"Category:category:communities":{"__typename":"Category","id":"category:communities","displayId":"communities","nodeType":"category","depth":1,"parent":{"__ref":"Category:category:top"},"title":"Communities","entityType":"CATEGORY","shortTitle":"Communities"},"Category:category:solutions":{"__typename":"Category","id":"category:solutions","displayId":"solutions","nodeType":"category","depth":2,"parent":{"__ref":"Category:category:communities"},"title":"Topics","entityType":"CATEGORY","shortTitle":"Topics"},"Blog:board:Azure-AI-Services-blog":{"__typename":"Blog","id":"board:Azure-AI-Services-blog","entityType":"BLOG","displayId":"Azure-AI-Services-blog","nodeType":"board","depth":4,"conversationStyle":"BLOG","title":"AI - Azure AI services Blog","description":"","avatar":null,"profileSettings":{"__typename":"ProfileSettings","language":null},"parent":{"__ref":"Category:category:AI"},"ancestors":{"__typename":"CoreNodeConnection","edges":[{"__typename":"CoreNodeEdge","node":{"__ref":"Community:community:gxcuf89792"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:communities"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:solutions"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:AI"}}]},"userContext":{"__typename":"NodeUserContext","canAddAttachments":false,"canUpdateNode":false,"canPostMessages":false,"isSubscribed":false},"boardPolicies":{"__typename":"BoardPolicies","canPublishArticleOnCreate":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.forums.policy_can_publish_on_create_workflow_action.accessDenied","key":"error.lithium.policies.forums.policy_can_publish_on_create_workflow_action.accessDenied","args":[]}}},"shortTitle":"AI - Azure AI services Blog","repliesProperties":{"__typename":"RepliesProperties","sortOrder":"REVERSE_PUBLISH_TIME","repliesFormat":"threaded"},"tagProperties":{"__typename":"TagNodeProperties","tagsEnabled":{"__typename":"PolicyResult","failureReason":null}},"requireTags":true,"tagType":"PRESET_ONLY"},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/cmstNC05WEo0blc\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/cmstNC05WEo0blc","height":512,"width":512,"mimeType":"image/png"},"Rank:rank:4":{"__typename":"Rank","id":"rank:4","position":6,"name":"Microsoft","color":"333333","icon":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/cmstNC05WEo0blc\"}"},"rankStyle":"OUTLINE"},"User:user:2033958":{"__typename":"User","id":"user:2033958","uid":2033958,"login":"alinabeck","deleted":false,"avatar":{"__typename":"UserAvatar","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/dS0yMDMzOTU4LUVPamxFaQ?image-coordinates=0%2C71%2C500%2C571"},"rank":{"__ref":"Rank:rank:4"},"email":"","messagesCount":1,"biography":null,"topicsCount":1,"kudosReceivedCount":4,"kudosGivenCount":0,"kudosWeight":1,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2023-09-17T23:07:51.547-07:00","confirmEmailStatus":null},"followersCount":null,"solutionsCount":0},"BlogTopicMessage:message:4302729":{"__typename":"BlogTopicMessage","uid":4302729,"subject":"Raising the bar for RAG excellence: query rewriting and new semantic ranker","id":"message:4302729","revisionNum":44,"repliesCount":0,"author":{"__ref":"User:user:2033958"},"depth":0,"hasGivenKudo":false,"board":{"__ref":"Blog:board:Azure-AI-Services-blog"},"conversation":{"__ref":"Conversation:conversation:4302729"},"messagePolicies":{"__typename":"MessagePolicies","canPublishArticleOnEdit":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.forums.policy_can_publish_on_edit_workflow_action.accessDenied","key":"error.lithium.policies.forums.policy_can_publish_on_edit_workflow_action.accessDenied","args":[]}},"canModerateSpamMessage":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","key":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","args":[]}}},"contentWorkflow":{"__typename":"ContentWorkflow","state":"PUBLISH","scheduledPublishTime":null,"scheduledTimezone":null,"userContext":{"__typename":"MessageWorkflowContext","canSubmitForReview":null,"canEdit":false,"canRecall":null,"canSubmitForPublication":null,"canReturnToAuthor":null,"canPublish":null,"canReturnToReview":null,"canSchedule":false},"shortScheduledTimezone":null},"readOnly":false,"editFrozen":false,"moderationData":{"__ref":"ModerationData:moderation_data:4302729"},"teaser":"\n

Azure AI Search has raised the bar for RAG performance, introducing a generative query engine with SLM-powered query rewriting and a new reranking model for semantic ranker. With these new additions, Azure AI Search has outperformed previous top scores for relevance and latency.

","body":"\n

By Alec Berntson, Alina Stoica Beck, Amaia Salvador Aguilera, Farzad Sunavala, Thibault Gisselbrecht and Xianshun Chen

\n

 

\n

We are announcing 2 major updates that raise the bar again for RAG retrieval: a new capability, query rewriting, and a new model for semantic ranker.  These enhancements set new performance standards for relevance and latency across many benchmarks.

\n\n

Last year, we showed that vector search alone is not sufficient for adequate relevance; combining hybrid search with reranking proved to be the most successful retrieval stack for delivering high quality results. Since then, using a reranker and hybrid search in your RAG app has become table stakes.

\n

This year, we have expanded and improved our query pipeline performance, with model training and optimizations based on insights from in-production RAG applications, and  billions of queries a day. With the addition of query rewriting and a new model for semantic ranker, our retrieval stack has surpassed our previous leading results from a year ago.

\n

Performance Benchmarks

\n

Performance Summary

\n

Background

\n

The query stack in Azure AI Search follows a pattern that's often used in sophisticated search systems, where there are two main layers of execution: recall (L1) and ranking (L2). A more detailed explanation can be found in section 1 of our previous post,  but in short, the L1 recalls documents from customer indexes using either text, vector or hybrid (a combination of the two) representations. Ranking, using Semantic Ranker, reorders the top 50 documents from the L1 to put the best content first (e.g. for input to an LLM for RAG). Query rewriting is a new step that runs before the L1. It produces up to 10  different rewrites which are sent together to the L1 to improve its recall.

\n

Summary

\n

We tested Azure AI Search with the new QR + SR models on a multitude of datasets that span many different use cases. The following insights compare hybrid, QR and new SR to hybrid L1 alone. While the two models can be used with text-only or vector-only L1s, hybrid L1 is a strong baseline that usually offers the best L1 recall.

\n

For customers with typical content:

\n\n

Retrieval Performance Across Different Search Configurations and Datasets

\n

Table 1 compares the performance of different search configurations, including the new semantic ranker and query rewriting, on many different datasets.

\n

Summary Metrics (NDCG)

\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\n

 Search configuration

\n
Open SourceInternal
\n

BEIR 

\n
\n

Miracl 

\n
\n

Customer 

\n
\n

MIML 

\n
\n

Support 

\n
\n

Average 

\n
\n

Delta*

\n
\n

Text only

\n
\n

41.6 

\n
\n

49.5 

\n
\n

43.5 

\n
\n

46.1 

\n
\n

38.4 

\n
\n

42.6 

\n
\n

 

\n
\n

text-embedding-ada-002

\n
\n

Vector

\n
\n

47.3 

\n
\n

57.3 

\n
\n

38.0 

\n
\n

51.9 

\n
\n

45.5 

\n
\n

45.1 

\n
\n

 

\n
\n

Hybrid

\n
\n

50.2 

\n
\n

59.1 

\n
\n

45.3 

\n
\n

53.1 

\n
\n

46.9 

\n
\n

48.4 

\n
\n

 

\n
\n

Hybrid + SR (legacy)

\n
\n

51.3 

\n
\n

72.0 

\n
\n

62.1 

\n
\n

67.7 

\n
\n

59.7 

\n
\n

63.1 

\n
\n

+14.7 

\n
\n

Hybrid + SR (new)

\n
\n

55.0 

\n
\n

78.0 

\n
\n

68.2 

\n
\n

75.0 

\n
\n

69.9 

\n
\n

71.1 

\n
\n

+22.7 

\n
\n

Hybrid+ QR + SR (new)

\n
\n

54.9 

\n
\n

78.1 

\n
\n

68.1 

\n
\n

75.5 

\n
\n

71.5 

\n
\n

71.7 

\n
\n

+23.3 

\n
\n

text-embedding-3-large 256-dim BQ

\n
\n

Vector

\n
\n

47.5 

\n
\n

73.4 

\n
\n

37.1 

\n
\n

53.4 

\n
\n

31.0 

\n
\n

40.5 

\n
\n

 

\n
\n

Hybrid

\n
\n

49.6 

\n
\n

69.5 

\n
\n

45.7 

\n
\n

55.7 

\n
\n

43.5 

\n
\n

48.3 

\n
\n

 

\n
\n

Hybrid + SR (legacy)

\n
\n

51.5 

\n
\n

71.8 

\n
\n

62.4 

\n
\n

68.5 

\n
\n

57.9 

\n
\n

62.9 

\n
\n

+14.6 

\n
\n

Hybrid + SR (new)

\n
\n

55.3 

\n
\n

79.0 

\n
\n

68.5 

\n
\n

75.9 

\n
\n

68.1 

\n
\n

70.8 

\n
\n

+22.5 

\n
\n

Hybrid+ QR + SR (new)

\n
\n

55.2 

\n
\n

78.9 

\n
\n

68.4 

\n
\n

76.2 

\n
\n

70.6 

\n
\n

71.7 

\n
\n

+23.4 

\n
\n

text-embedding-3-large

\n
\n

Vector

\n
\n

54.6 

\n
\n

78.1 

\n
\n

42.6 

\n
\n

60.3 

\n
\n

35.0 

\n
\n

46.0 

\n
\n

 

\n
\n

Hybrid

\n
\n

53.0 

\n
\n

70.5 

\n
\n

48.5 

\n
\n

58.2 

\n
\n

46.9 

\n
\n

51.2 

\n
\n

 

\n
\n

Hybrid + SR (legacy)

\n
\n

52.1 

\n
\n

71.8 

\n
\n

63.3 

\n
\n

69.5 

\n
\n

59.3 

\n
\n

64.0 

\n
\n

+12.8 

\n
\n

Hybrid + SR (new)

\n
\n

56.3 

\n
\n

79.3 

\n
\n

69.4 

\n
\n

77.2 

\n
\n

70.3 

\n
\n

72.3 

\n
\n

+21.1 

\n
\n

Hybrid+ QR + SR (new)

\n
\n

55.9 

\n
\n

79.4 

\n
\n

69.3 

\n
\n

77.2 

\n
\n

72.0 

\n
\n

72.8 

\n
\n

+21.6 

\n
\n
\n

Table 1: Summary Metrics across benchmarks. Beir and Miracl use NDCG@10, Internal use NDCG@3. * Delta is against hybrid L1 as baseline. Customer, MIML, Support datasets are described below. Largest values in bold.

\n

 

\n

Benchmark selection and design

\n

QR+SR delivers substantial improvements over its predecessor. Academic benchmarks are shown for transparency, but it is important to look at the queries and documents included in them to ensure they align to production scenarios. We have sought to improve our measurement in several dimensions:

\n\n

We used 3 sources of documents for our internal benchmarks:

\n\n

The synthetic queries were generated by prompting several different large language models in more than ten different ways. Numerous quality control steps were followed to filter malformed or non-representative queries. We further reviewed these queries with real customers. The resulting queries are of many types, from keyword and web search-like, to complex questions.

\n

We use benchmark-provided labels to produce metrics for public datasets (BEIR and Miracl). For our internal benchmarks, we calibrated a large language model (GPT-4o) prompt against thousands of high-quality human labels. This prompt took in a query-document pair and generated a relevance score on a 5-point scale. For every internal benchmark experiment, we scored the top 50 documents to ensure there were no measurement holes. Public datasets have many holes and we left them as-is to enable external comparisons.

\n

For each query, we used all the data that was labeled for the different methods to compute the ideal ranking of documents for that query. We compared the ranking provided by each method to this ideal ranking to compute NDCG@3. This makes the different methods and search configurations comparable to each other.

\n

Datasets that closely align to real customer challenges allow us to produce models that are robust when they encounter real world complexity. The improvements we see across all these datasets demonstrate this.

\n

Search configurations

\n

Azure AI Search enables several different L1 configurations: text-based, vector-based and hybrid which combines results from both using RRF. QR + SR can be composed with any of these options. In this post we focused on hybrid search because it is a high baseline; we observed even larger relevance improvements when using vector-only or text-only L1s.

\n

We broke up documents into 1024 token chunks (no overlap was used in this analysis) because we observe customers commonly using this size. 1024 token chunks are on the larger size but still preserve the option to combine multiple chunks for LLM consumption and keep multi-turn context windows manageable.

\n

Result Insights

\n

Insight: QR+SR expands embedding model flexibility and improves quality

\n

Embedding models represent an index maintenance challenge – when a new model is released, all documents need to be re-embedded to get the gains. It’s also likely that you’ll want to use Binary Quantization (BQ) to reduce the storage cost of vectors. Older embedding models (text-embedding-ada-002) and embedding models using BQ (text-embedding-003-large 256 dimensions) do not achieve the same performance (-2.8 and -2.9 points respectively) in a hybrid search setup as a modern, full dimension embedding model (text-embedding-003-large at 3072 dimensions).

\n

 

\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\n

Embedding Model

\n
\n

Dimensions 

\n
\n

Vector-only 

\n
\n

Hybrid 

\n
\n

Hybrid + QR + SR 

\n
\n

text-embedding-ada-002

\n
\n

1536 

\n
\n

45.1 

\n
\n

48.4 

\n
\n

71.7 

\n
\n

text-embedding-3-large

\n
\n

(BQ)  256 

\n
\n

40.5 

\n
\n

48.3 

\n
\n

71.7 

\n
\n

3072 

\n
\n

46.0 

\n
\n

51.2 

\n
\n

72.8 

\n
\n
\n

Table 2: NDCG@3 comparison of different embedding models shows that Hybrid+QR+SR offers robust relevance. Largest values in bold.

\n

 

\n

Our data in Table 2 shows that QR + SR can significantly improve relevance over L1. By promoting the best document chunks to the top of the recall set, it provides substantial relevance gains over a best in class embedding model and can bring the older or heavily compressed embedding models to within a point of the best search configuration. This allows you to save on re-embedding costs or use storage optimized techniques with minimal relevance penalty.

\n

 

\n

Insight: QR+SR gives large relevance gains across Language/Content Segments

\n

Table 3 shows the NDCG@3 gain (absolute increase) of enabling QR+SR over traditional hybrid search in the MIML dataset. Text-embedding-003-large at 256 dimensions with BQ is the embedding model used for this example. Each segment-language pair represents about 1500 queries searching against 1000 documents split into 1024 token chunks. The relevance improvement is consistently substantial across all content segments and languages (average +21 with a range from +12 points to +28 points). This gives confidence that SR+QR should be enabled by default on RAG applications to deliver the best retrieved content.

\n

 

\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\n

Content Segment

\n
\n

German 

\n
\n

English 

\n
\n

Spanish 

\n
\n

French 

\n
\n

Japanese 

\n
\n

Chinese (simplified)

\n
\n

Chinese (traditional)

\n
\n

Average

\n
\n

Accounting & Tax Services

\n
\n

+22.0 

\n
\n

+25.2 

\n
\n

+24.4 

\n
\n

+22.6 

\n
\n

+21.5 

\n
\n

+20.8 

\n
\n

+17.3 

\n
\n

+22.0 

\n
\n

Banking

\n
\n

+21.8 

\n
\n

+24.5 

\n
\n

+23.6 

\n
\n

+22.5 

\n
\n

+22.9 

\n
\n

+19.6 

\n
\n

+19.1 

\n
\n

+22.0 

\n
\n

Government Administration

\n
\n

+23.1 

\n
\n

+27.5 

\n
\n

+27.8 

\n
\n

+23.9 

\n
\n

+22.3 

\n
\n

+19.1 

\n
\n

+20.4 

\n
\n

+23.5 

\n
\n

Healthcare Administration

\n
\n

+20.1 

\n
\n

+24.7 

\n
\n

+21.7 

\n
\n

+19.5 

\n
\n

+20.3 

\n
\n

+15.5 

\n
\n

+16.8 

\n
\n

+19.8 

\n
\n

Healthcare Research

\n
\n

+19.3 

\n
\n

+21.1 

\n
\n

+21.6 

\n
\n

+17.6 

\n
\n

+17.0 

\n
\n

+14.5 

\n
\n

+12.2 

\n
\n

+17.6 

\n
\n

Human Resources

\n
\n

+17.0 

\n
\n

+25.1 

\n
\n

+20.6 

\n
\n

+17.5 

\n
\n

+21.6 

\n
\n

+12.0 

\n
\n

+12.9 

\n
\n

+18.1 

\n
\n

Industrial and Manufacturing

\n
\n

+21.4 

\n
\n

+20.4 

\n
\n

+20.6 

\n
\n

+18.4 

\n
\n

+19.5 

\n
\n

+16.1 

\n
\n

+20.1 

\n
\n

+19.5 

\n
\n

Insurance

\n
\n

+19.9 

\n
\n

+25.0 

\n
\n

+22.7 

\n
\n

+23.0 

\n
\n

+17.2 

\n
\n

+15.8 

\n
\n

+18.3 

\n
\n

+20.3 

\n
\n

Legal

\n
\n

+22.8 

\n
\n

+26.8 

\n
\n

+24.9 

\n
\n

+21.0 

\n
\n

+17.9 

\n
\n

+18.9 

\n
\n

+16.8 

\n
\n

+21.3 

\n
\n

Product Manuals

\n
\n

+20.9 

\n
\n

+23.5 

\n
\n

+21.9 

\n
\n

+17.8 

\n
\n

+18.3 

\n
\n

+27.4 

\n
\n

+18.2 

\n
\n

+21.2 

\n
\n

Average

\n
\n

+20.8 

\n
\n

+23.8 

\n
\n

+23.0 

\n
\n

+20.4 

\n
\n

+19.9 

\n
\n

+18.0 

\n
\n

+17.2 

\n
\n

+20.7 

\n
\n
\n

Table 3: NDCG@3 gain (absolute increase) of enabling QR+SR over hybrid search baseline. Row and column averages in bold.

\n

 

\n

Insight: QR+SR gives large relevance gains across Query Types

\n

We classified the MIML and Support queries into categories to give insight as to how the search stack would perform in different scenarios. Tables 4 and 5 aggregate the queries of each type across languages and content segments and show a consistent story: enabling SR + QR will provide a large benefit in all scenarios.

\n

A few observations:

\n\n

 

\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\n

Query Type

\n
\n

Text 

\n
\n

Vector 

\n
\n

Hybrid 

\n
\n

Hybrid + SR 

\n
\n

Hybrid+ QR + SR 

\n
\n

Delta vs Hybrid 

\n
\n

acronym

\n
\n

40.4 

\n
\n

31.4 

\n
\n

45.8 

\n
\n

68.5 

\n
\n

69.9 

\n
\n

+24.1 

\n
\n

codeword

\n
\n

36.2 

\n
\n

17.4 

\n
\n

32.3 

\n
\n

58.6 

\n
\n

64.4 

\n
\n

+32.1 

\n
\n

concept

\n
\n

28.3 

\n
\n

41.3 

\n
\n

44.8 

\n
\n

64.3 

\n
\n

65.1 

\n
\n

+20.3 

\n
\n

fact

\n
\n

28.6 

\n
\n

42.0 

\n
\n

45.4 

\n
\n

64.8 

\n
\n

65.0 

\n
\n

+19.6 

\n
\n

keyword

\n
\n

40.9 

\n
\n

33.9 

\n
\n

47.5 

\n
\n

71.4 

\n
\n

73.3 

\n
\n

+25.8 

\n
\n

misspellings

\n
\n

23.5 

\n
\n

31.9 

\n
\n

38.4 

\n
\n

60.8 

\n
\n

63.2 

\n
\n

+24.8 

\n
\n

question

\n
\n

28.6 

\n
\n

42.6 

\n
\n

47.0 

\n
\n

67.1 

\n
\n

68.4 

\n
\n

+21.4 

\n
\n

web-like

\n
\n

37.0 

\n
\n

39.1 

\n
\n

49.3 

\n
\n

71.5 

\n
\n

72.9 

\n
\n

+23.6 

\n
\n

easy

\n
\n

43.3 

\n
\n

38.1 

\n
\n

52.2 

\n
\n

75.6 

\n
\n

76.6 

\n
\n

+24.4 

\n
\n

hard

\n
\n

23.5 

\n
\n

25.6 

\n
\n

30.8 

\n
\n

54.3 

\n
\n

58.2 

\n
\n

+27.4 

\n
\n
\n

Table 4:  Support Benchmark by category (NDCG@3). Text-embedding-3-large 3072-dimensions used for all Vector and Hybrid L1s. Largest values in bold.

\n

 

\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\n

Query Type

\n
Text Vector Hybrid Hybrid + SR Hybrid+ QR + SR Delta vs Hybrid 
\n

acronym

\n
\n

55.9 

\n
\n

61.8 

\n
\n

63.3 

\n
\n

79.6 

\n
\n

79.8 

\n
\n

+16.5 

\n
\n

codeword

\n
\n

58.6 

\n
\n

53.4 

\n
\n

60.0 

\n
\n

80.5 

\n
\n

80.8 

\n
\n

+20.8 

\n
\n

concept

\n
\n

44.3 

\n
\n

63.8 

\n
\n

59.3 

\n
\n

76.6 

\n
\n

76.8 

\n
\n

+17.5 

\n
\n

fact

\n
\n

48.9 

\n
\n

58.0 

\n
\n

58.5 

\n
\n

80.3 

\n
\n

80.4 

\n
\n

+21.9 

\n
\n

keyword

\n
\n

47.6 

\n
\n

61.3 

\n
\n

59.5 

\n
\n

76.9 

\n
\n

76.9 

\n
\n

+17.4 

\n
\n

misspellings

\n
\n

38.9 

\n
\n

57.5 

\n
\n

54.6 

\n
\n

71.9 

\n
\n

72.1 

\n
\n

+17.5 

\n
\n

question

\n
\n

45.4 

\n
\n

60.3 

\n
\n

57.8 

\n
\n

78.0 

\n
\n

78.1 

\n
\n

+20.3 

\n
\n

web-like

\n
\n

47.6 

\n
\n

64.9 

\n
\n

60.4 

\n
\n

78.3 

\n
\n

78.4 

\n
\n

+18.0 

\n
\n

easy

\n
\n

44.7 

\n
\n

63.8 

\n
\n

60.4 

\n
\n

77.5 

\n
\n

77.0 

\n
\n

+16.6 

\n
\n

hard

\n
\n

46.5 

\n
\n

56.2 

\n
\n

55.3 

\n
\n

76.2 

\n
\n

76.8 

\n
\n

+21.5 

\n
\n
\n

Table 5: MIML Benchmark by category (NDCG@3). Text-embedding-3-large 3072-dimensions used for all Vector and Hybrid L1s. Largest values in bold.

\n

 

\n

Insight: Query rewriting greatly improves text-based relevance

\n

We can see that QR is particularly helpful when L1 is text-based only. QR improves relevance by +2 to +4 more points when using text-based L1 than hybrid L1 on MIML and Support datasets. A large number of customers have text-only indexes, and this is a great way to strongly improve relevance if adding a vector representation (to get a hybrid L1) is not feasible.

\n

This QR implementation creates new words and phrases to represent the original query; these new terms expand the match footprint, which increases recall. This is somewhat less effective for embedding-based representations because semantic matching is already part of vector retrieval.

\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\n

Dataset

\n
\n

L1 Type

\n
\n

L1 

\n
\n

L1 + SR 

\n
\n

L1 + QR + SR 

\n
\n

QR Gain over SR 

\n
\n

Support

\n
\n

Text

\n
\n

38.4 

\n
\n

61.7 

\n
\n

65.2 

\n
\n

+3.5 

\n
\n

Hybrid

\n
\n

46.9 

\n
\n

70.3 

\n
\n

72.0 

\n
\n

+1.7 

\n
\n

MIML

\n
\n

Text

\n
\n

46.1 

\n
\n

66.3 

\n
\n

70.3 

\n
\n

+4.0 

\n
\n

Hybrid

\n
\n

58.2 

\n
\n

77.2 

\n
\n

77.2 

\n
\n

0.0 

\n
\n
\n

Table 6: Impact of QR on Text vs Hybrid Search (NDCG@3).

\n

Model Creation and Optimization

\n

Model training

\n

We listened to customer feedback and observed industry trends over the past year since our last model update. Several strategies were used to train QR and a new SR:

\n\n

 

\n

Latency optimization

\n

Latency is important for production environments, especially for RAG applications where retrieval and LLMs must work together for each response. We used an internal package that bundled CUDA level post-training optimizations in our runtime stack to enable much faster inference for the same payload/model size. This allows our new model to run up to 2.3 times faster than the previous one, as shown by Table 7.

\n

Typical incremental latency for SR (milliseconds)

\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\n

Document length (tokens)

\n
\n

Previous SR Model

\n
\n

New SR Model

\n
\n

 128 

\n
\n

44 

\n
\n

50 

\n
\n

 256 

\n
\n

116 

\n
\n

59 

\n
\n

 512 

\n
\n

182 

\n
\n

78 

\n
\n

 1024 

\n
\n

210 

\n
\n

113 

\n
\n

 2048 

\n
\n

243 

\n
\n

158  

\n
\n
\n

Table 7: Average model execution latency in test environment to rank 50 documents (all with the same specified token length). All SR features enabled (captions, highlights, answers).

\n

 

\n

This is also true for QR (Table 8) where we fine-tuned and optimized an SLM to run within a tight latency budget despite having over 1 billion parameters.

\n

Typical incremental latency for QR (milliseconds)

\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\n

Query length (tokens) 

\n
\n

QR Model 

\n
\n

\n
\n

95 

\n
\n

\n
\n

116 

\n
\n

16 

\n
\n

144 

\n
\n

32 

\n
\n

147 

\n
\n

48 

\n
\n

167 

\n
\n
\n

Table 8: Average model execution latency in test environment to generate 10 rewrites for queries with the specified token length.

\n

Getting started with SR + QR in Azure AI Search

\n

The system we evaluated in this work is available in production for developers to use in their own applications, as part of the Azure AI Search service. You can learn more about Azure AI Search in general here, or jump directly to the documentation for Semantic Ranker or Query Rewriting.

\n

Appendix

\n

External Dataset description

\n\n

Query types description (one query can have multiple types)

\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\n

Query type

\n
\n

Description

\n
\n

Example 

\n
\n

Web-like queries

\n
\n

Shortened queries similar to those commonly entered into Google or Bing

\n
\n

“Best retrieval concept queries”

\n
\n

Keyword

\n
\n

Short queries that consist of only important words

\n
\n

“semantic ranker”

\n
\n

Misspelling

\n
\n

Queries with misspellings, typos or transpositions of letters

\n
\n

“Ho w mny documents are samantically r4nked”

\n
\n

Acronym

\n
\n

Queries that contain an acronym

\n
\n

“when were ATMs invented”

\n
\n

Codeword

\n
\n

Queries that contain an identifier

\n
\n

“time of arrival for flight AF852 “

\n
\n

Question

\n
\n

Queries that ask a question

\n
\n

“who wrote Brothers Karamazov”

\n
\n

Fact seeking queries

\n
\n

Questions asking for simple facts with some given conditions, such as stock prices on a certain date and a director’s recent movies in a certain genre

\n
\n

“what were Microsoft earnings in 2020”

\n
\n

Concept seeking queries

\n
\n

Abstract questions that require multiple sentences to answer

\n
\n

“Why should I use semantic search to rank results?”

\n
\n
\n

 

","body@stringLength":"77940","rawBody":"\n

By Alec Berntson, Alina Stoica Beck, Amaia Salvador Aguilera, Farzad Sunavala, Thibault Gisselbrecht and Xianshun Chen

\n

 

\n

We are announcing 2 major updates that raise the bar again for RAG retrieval: a new capability, query rewriting, and a new model for semantic ranker.  These enhancements set new performance standards for relevance and latency across many benchmarks.

\n\n

Last year, we showed that vector search alone is not sufficient for adequate relevance; combining hybrid search with reranking proved to be the most successful retrieval stack for delivering high quality results. Since then, using a reranker and hybrid search in your RAG app has become table stakes.

\n

This year, we have expanded and improved our query pipeline performance, with model training and optimizations based on insights from in-production RAG applications, and  billions of queries a day. With the addition of query rewriting and a new model for semantic ranker, our retrieval stack has surpassed our previous leading results from a year ago.

\n

Performance Benchmarks

\n

Performance Summary

\n

Background

\n

The query stack in Azure AI Search follows a pattern that's often used in sophisticated search systems, where there are two main layers of execution: recall (L1) and ranking (L2). A more detailed explanation can be found in section 1 of our previous post,  but in short, the L1 recalls documents from customer indexes using either text, vector or hybrid (a combination of the two) representations. Ranking, using Semantic Ranker, reorders the top 50 documents from the L1 to put the best content first (e.g. for input to an LLM for RAG). Query rewriting is a new step that runs before the L1. It produces up to 10  different rewrites which are sent together to the L1 to improve its recall.

\n

Summary

\n

We tested Azure AI Search with the new QR + SR models on a multitude of datasets that span many different use cases. The following insights compare hybrid, QR and new SR to hybrid L1 alone. While the two models can be used with text-only or vector-only L1s, hybrid L1 is a strong baseline that usually offers the best L1 recall.

\n

For customers with typical content:

\n\n

Retrieval Performance Across Different Search Configurations and Datasets

\n

Table 1 compares the performance of different search configurations, including the new semantic ranker and query rewriting, on many different datasets.

\n

Summary Metrics (NDCG)

\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\n

 Search configuration

\n
Open SourceInternal
\n

BEIR 

\n
\n

Miracl 

\n
\n

Customer 

\n
\n

MIML 

\n
\n

Support 

\n
\n

Average 

\n
\n

Delta*

\n
\n

Text only

\n
\n

41.6 

\n
\n

49.5 

\n
\n

43.5 

\n
\n

46.1 

\n
\n

38.4 

\n
\n

42.6 

\n
\n

 

\n
\n

text-embedding-ada-002

\n
\n

Vector

\n
\n

47.3 

\n
\n

57.3 

\n
\n

38.0 

\n
\n

51.9 

\n
\n

45.5 

\n
\n

45.1 

\n
\n

 

\n
\n

Hybrid

\n
\n

50.2 

\n
\n

59.1 

\n
\n

45.3 

\n
\n

53.1 

\n
\n

46.9 

\n
\n

48.4 

\n
\n

 

\n
\n

Hybrid + SR (legacy)

\n
\n

51.3 

\n
\n

72.0 

\n
\n

62.1 

\n
\n

67.7 

\n
\n

59.7 

\n
\n

63.1 

\n
\n

+14.7 

\n
\n

Hybrid + SR (new)

\n
\n

55.0 

\n
\n

78.0 

\n
\n

68.2 

\n
\n

75.0 

\n
\n

69.9 

\n
\n

71.1 

\n
\n

+22.7 

\n
\n

Hybrid+ QR + SR (new)

\n
\n

54.9 

\n
\n

78.1 

\n
\n

68.1 

\n
\n

75.5 

\n
\n

71.5 

\n
\n

71.7 

\n
\n

+23.3 

\n
\n

text-embedding-3-large 256-dim BQ

\n
\n

Vector

\n
\n

47.5 

\n
\n

73.4 

\n
\n

37.1 

\n
\n

53.4 

\n
\n

31.0 

\n
\n

40.5 

\n
\n

 

\n
\n

Hybrid

\n
\n

49.6 

\n
\n

69.5 

\n
\n

45.7 

\n
\n

55.7 

\n
\n

43.5 

\n
\n

48.3 

\n
\n

 

\n
\n

Hybrid + SR (legacy)

\n
\n

51.5 

\n
\n

71.8 

\n
\n

62.4 

\n
\n

68.5 

\n
\n

57.9 

\n
\n

62.9 

\n
\n

+14.6 

\n
\n

Hybrid + SR (new)

\n
\n

55.3 

\n
\n

79.0 

\n
\n

68.5 

\n
\n

75.9 

\n
\n

68.1 

\n
\n

70.8 

\n
\n

+22.5 

\n
\n

Hybrid+ QR + SR (new)

\n
\n

55.2 

\n
\n

78.9 

\n
\n

68.4 

\n
\n

76.2 

\n
\n

70.6 

\n
\n

71.7 

\n
\n

+23.4 

\n
\n

text-embedding-3-large

\n
\n

Vector

\n
\n

54.6 

\n
\n

78.1 

\n
\n

42.6 

\n
\n

60.3 

\n
\n

35.0 

\n
\n

46.0 

\n
\n

 

\n
\n

Hybrid

\n
\n

53.0 

\n
\n

70.5 

\n
\n

48.5 

\n
\n

58.2 

\n
\n

46.9 

\n
\n

51.2 

\n
\n

 

\n
\n

Hybrid + SR (legacy)

\n
\n

52.1 

\n
\n

71.8 

\n
\n

63.3 

\n
\n

69.5 

\n
\n

59.3 

\n
\n

64.0 

\n
\n

+12.8 

\n
\n

Hybrid + SR (new)

\n
\n

56.3 

\n
\n

79.3 

\n
\n

69.4 

\n
\n

77.2 

\n
\n

70.3 

\n
\n

72.3 

\n
\n

+21.1 

\n
\n

Hybrid+ QR + SR (new)

\n
\n

55.9 

\n
\n

79.4 

\n
\n

69.3 

\n
\n

77.2 

\n
\n

72.0 

\n
\n

72.8 

\n
\n

+21.6 

\n
\n
\n

Table 1: Summary Metrics across benchmarks. Beir and Miracl use NDCG@10, Internal use NDCG@3. * Delta is against hybrid L1 as baseline. Customer, MIML, Support datasets are described below. Largest values in bold.

\n

 

\n

Benchmark selection and design

\n

QR+SR delivers substantial improvements over its predecessor. Academic benchmarks are shown for transparency, but it is important to look at the queries and documents included in them to ensure they align to production scenarios. We have sought to improve our measurement in several dimensions:

\n\n

We used 3 sources of documents for our internal benchmarks:

\n\n

The synthetic queries were generated by prompting several different large language models in more than ten different ways. Numerous quality control steps were followed to filter malformed or non-representative queries. We further reviewed these queries with real customers. The resulting queries are of many types, from keyword and web search-like, to complex questions.

\n

We use benchmark-provided labels to produce metrics for public datasets (BEIR and Miracl). For our internal benchmarks, we calibrated a large language model (GPT-4o) prompt against thousands of high-quality human labels. This prompt took in a query-document pair and generated a relevance score on a 5-point scale. For every internal benchmark experiment, we scored the top 50 documents to ensure there were no measurement holes. Public datasets have many holes and we left them as-is to enable external comparisons.

\n

For each query, we used all the data that was labeled for the different methods to compute the ideal ranking of documents for that query. We compared the ranking provided by each method to this ideal ranking to compute NDCG@3. This makes the different methods and search configurations comparable to each other.

\n

Datasets that closely align to real customer challenges allow us to produce models that are robust when they encounter real world complexity. The improvements we see across all these datasets demonstrate this.

\n

Search configurations

\n

Azure AI Search enables several different L1 configurations: text-based, vector-based and hybrid which combines results from both using RRF. QR + SR can be composed with any of these options. In this post we focused on hybrid search because it is a high baseline; we observed even larger relevance improvements when using vector-only or text-only L1s.

\n

We broke up documents into 1024 token chunks (no overlap was used in this analysis) because we observe customers commonly using this size. 1024 token chunks are on the larger size but still preserve the option to combine multiple chunks for LLM consumption and keep multi-turn context windows manageable.

\n

Result Insights

\n

Insight: QR+SR expands embedding model flexibility and improves quality

\n

Embedding models represent an index maintenance challenge – when a new model is released, all documents need to be re-embedded to get the gains. It’s also likely that you’ll want to use Binary Quantization (BQ) to reduce the storage cost of vectors. Older embedding models (text-embedding-ada-002) and embedding models using BQ (text-embedding-003-large 256 dimensions) do not achieve the same performance (-2.8 and -2.9 points respectively) in a hybrid search setup as a modern, full dimension embedding model (text-embedding-003-large at 3072 dimensions).

\n

 

\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\n

Embedding Model

\n
\n

Dimensions 

\n
\n

Vector-only 

\n
\n

Hybrid 

\n
\n

Hybrid + QR + SR 

\n
\n

text-embedding-ada-002

\n
\n

1536 

\n
\n

45.1 

\n
\n

48.4 

\n
\n

71.7 

\n
\n

text-embedding-3-large

\n
\n

(BQ)  256 

\n
\n

40.5 

\n
\n

48.3 

\n
\n

71.7 

\n
\n

3072 

\n
\n

46.0 

\n
\n

51.2 

\n
\n

72.8 

\n
\n
\n

Table 2: NDCG@3 comparison of different embedding models shows that Hybrid+QR+SR offers robust relevance. Largest values in bold.

\n

 

\n

Our data in Table 2 shows that QR + SR can significantly improve relevance over L1. By promoting the best document chunks to the top of the recall set, it provides substantial relevance gains over a best in class embedding model and can bring the older or heavily compressed embedding models to within a point of the best search configuration. This allows you to save on re-embedding costs or use storage optimized techniques with minimal relevance penalty.

\n

 

\n

Insight: QR+SR gives large relevance gains across Language/Content Segments

\n

Table 3 shows the NDCG@3 gain (absolute increase) of enabling QR+SR over traditional hybrid search in the MIML dataset. Text-embedding-003-large at 256 dimensions with BQ is the embedding model used for this example. Each segment-language pair represents about 1500 queries searching against 1000 documents split into 1024 token chunks. The relevance improvement is consistently substantial across all content segments and languages (average +21 with a range from +12 points to +28 points). This gives confidence that SR+QR should be enabled by default on RAG applications to deliver the best retrieved content.

\n

 

\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\n

Content Segment

\n
\n

German 

\n
\n

English 

\n
\n

Spanish 

\n
\n

French 

\n
\n

Japanese 

\n
\n

Chinese (simplified)

\n
\n

Chinese (traditional)

\n
\n

Average

\n
\n

Accounting & Tax Services

\n
\n

+22.0 

\n
\n

+25.2 

\n
\n

+24.4 

\n
\n

+22.6 

\n
\n

+21.5 

\n
\n

+20.8 

\n
\n

+17.3 

\n
\n

+22.0 

\n
\n

Banking

\n
\n

+21.8 

\n
\n

+24.5 

\n
\n

+23.6 

\n
\n

+22.5 

\n
\n

+22.9 

\n
\n

+19.6 

\n
\n

+19.1 

\n
\n

+22.0 

\n
\n

Government Administration

\n
\n

+23.1 

\n
\n

+27.5 

\n
\n

+27.8 

\n
\n

+23.9 

\n
\n

+22.3 

\n
\n

+19.1 

\n
\n

+20.4 

\n
\n

+23.5 

\n
\n

Healthcare Administration

\n
\n

+20.1 

\n
\n

+24.7 

\n
\n

+21.7 

\n
\n

+19.5 

\n
\n

+20.3 

\n
\n

+15.5 

\n
\n

+16.8 

\n
\n

+19.8 

\n
\n

Healthcare Research

\n
\n

+19.3 

\n
\n

+21.1 

\n
\n

+21.6 

\n
\n

+17.6 

\n
\n

+17.0 

\n
\n

+14.5 

\n
\n

+12.2 

\n
\n

+17.6 

\n
\n

Human Resources

\n
\n

+17.0 

\n
\n

+25.1 

\n
\n

+20.6 

\n
\n

+17.5 

\n
\n

+21.6 

\n
\n

+12.0 

\n
\n

+12.9 

\n
\n

+18.1 

\n
\n

Industrial and Manufacturing

\n
\n

+21.4 

\n
\n

+20.4 

\n
\n

+20.6 

\n
\n

+18.4 

\n
\n

+19.5 

\n
\n

+16.1 

\n
\n

+20.1 

\n
\n

+19.5 

\n
\n

Insurance

\n
\n

+19.9 

\n
\n

+25.0 

\n
\n

+22.7 

\n
\n

+23.0 

\n
\n

+17.2 

\n
\n

+15.8 

\n
\n

+18.3 

\n
\n

+20.3 

\n
\n

Legal

\n
\n

+22.8 

\n
\n

+26.8 

\n
\n

+24.9 

\n
\n

+21.0 

\n
\n

+17.9 

\n
\n

+18.9 

\n
\n

+16.8 

\n
\n

+21.3 

\n
\n

Product Manuals

\n
\n

+20.9 

\n
\n

+23.5 

\n
\n

+21.9 

\n
\n

+17.8 

\n
\n

+18.3 

\n
\n

+27.4 

\n
\n

+18.2 

\n
\n

+21.2 

\n
\n

Average

\n
\n

+20.8 

\n
\n

+23.8 

\n
\n

+23.0 

\n
\n

+20.4 

\n
\n

+19.9 

\n
\n

+18.0 

\n
\n

+17.2 

\n
\n

+20.7 

\n
\n
\n

Table 3: NDCG@3 gain (absolute increase) of enabling QR+SR over hybrid search baseline. Row and column averages in bold.

\n

 

\n

Insight: QR+SR gives large relevance gains across Query Types

\n

We classified the MIML and Support queries into categories to give insight as to how the search stack would perform in different scenarios. Tables 4 and 5 aggregate the queries of each type across languages and content segments and show a consistent story: enabling SR + QR will provide a large benefit in all scenarios.

\n

A few observations:

\n\n

 

\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\n

Query Type

\n
\n

Text 

\n
\n

Vector 

\n
\n

Hybrid 

\n
\n

Hybrid + SR 

\n
\n

Hybrid+ QR + SR 

\n
\n

Delta vs Hybrid 

\n
\n

acronym

\n
\n

40.4 

\n
\n

31.4 

\n
\n

45.8 

\n
\n

68.5 

\n
\n

69.9 

\n
\n

+24.1 

\n
\n

codeword

\n
\n

36.2 

\n
\n

17.4 

\n
\n

32.3 

\n
\n

58.6 

\n
\n

64.4 

\n
\n

+32.1 

\n
\n

concept

\n
\n

28.3 

\n
\n

41.3 

\n
\n

44.8 

\n
\n

64.3 

\n
\n

65.1 

\n
\n

+20.3 

\n
\n

fact

\n
\n

28.6 

\n
\n

42.0 

\n
\n

45.4 

\n
\n

64.8 

\n
\n

65.0 

\n
\n

+19.6 

\n
\n

keyword

\n
\n

40.9 

\n
\n

33.9 

\n
\n

47.5 

\n
\n

71.4 

\n
\n

73.3 

\n
\n

+25.8 

\n
\n

misspellings

\n
\n

23.5 

\n
\n

31.9 

\n
\n

38.4 

\n
\n

60.8 

\n
\n

63.2 

\n
\n

+24.8 

\n
\n

question

\n
\n

28.6 

\n
\n

42.6 

\n
\n

47.0 

\n
\n

67.1 

\n
\n

68.4 

\n
\n

+21.4 

\n
\n

web-like

\n
\n

37.0 

\n
\n

39.1 

\n
\n

49.3 

\n
\n

71.5 

\n
\n

72.9 

\n
\n

+23.6 

\n
\n

easy

\n
\n

43.3 

\n
\n

38.1 

\n
\n

52.2 

\n
\n

75.6 

\n
\n

76.6 

\n
\n

+24.4 

\n
\n

hard

\n
\n

23.5 

\n
\n

25.6 

\n
\n

30.8 

\n
\n

54.3 

\n
\n

58.2 

\n
\n

+27.4 

\n
\n
\n

Table 4:  Support Benchmark by category (NDCG@3). Text-embedding-3-large 3072-dimensions used for all Vector and Hybrid L1s. Largest values in bold.

\n

 

\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\n

Query Type

\n
Text Vector Hybrid Hybrid + SR Hybrid+ QR + SR Delta vs Hybrid 
\n

acronym

\n
\n

55.9 

\n
\n

61.8 

\n
\n

63.3 

\n
\n

79.6 

\n
\n

79.8 

\n
\n

+16.5 

\n
\n

codeword

\n
\n

58.6 

\n
\n

53.4 

\n
\n

60.0 

\n
\n

80.5 

\n
\n

80.8 

\n
\n

+20.8 

\n
\n

concept

\n
\n

44.3 

\n
\n

63.8 

\n
\n

59.3 

\n
\n

76.6 

\n
\n

76.8 

\n
\n

+17.5 

\n
\n

fact

\n
\n

48.9 

\n
\n

58.0 

\n
\n

58.5 

\n
\n

80.3 

\n
\n

80.4 

\n
\n

+21.9 

\n
\n

keyword

\n
\n

47.6 

\n
\n

61.3 

\n
\n

59.5 

\n
\n

76.9 

\n
\n

76.9 

\n
\n

+17.4 

\n
\n

misspellings

\n
\n

38.9 

\n
\n

57.5 

\n
\n

54.6 

\n
\n

71.9 

\n
\n

72.1 

\n
\n

+17.5 

\n
\n

question

\n
\n

45.4 

\n
\n

60.3 

\n
\n

57.8 

\n
\n

78.0 

\n
\n

78.1 

\n
\n

+20.3 

\n
\n

web-like

\n
\n

47.6 

\n
\n

64.9 

\n
\n

60.4 

\n
\n

78.3 

\n
\n

78.4 

\n
\n

+18.0 

\n
\n

easy

\n
\n

44.7 

\n
\n

63.8 

\n
\n

60.4 

\n
\n

77.5 

\n
\n

77.0 

\n
\n

+16.6 

\n
\n

hard

\n
\n

46.5 

\n
\n

56.2 

\n
\n

55.3 

\n
\n

76.2 

\n
\n

76.8 

\n
\n

+21.5 

\n
\n
\n

Table 5: MIML Benchmark by category (NDCG@3). Text-embedding-3-large 3072-dimensions used for all Vector and Hybrid L1s. Largest values in bold.

\n

 

\n

Insight: Query rewriting greatly improves text-based relevance

\n

We can see that QR is particularly helpful when L1 is text-based only. QR improves relevance by +2 to +4 more points when using text-based L1 than hybrid L1 on MIML and Support datasets. A large number of customers have text-only indexes, and this is a great way to strongly improve relevance if adding a vector representation (to get a hybrid L1) is not feasible.

\n

This QR implementation creates new words and phrases to represent the original query; these new terms expand the match footprint, which increases recall. This is somewhat less effective for embedding-based representations because semantic matching is already part of vector retrieval.

\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\n

Dataset

\n
\n

L1 Type

\n
\n

L1 

\n
\n

L1 + SR 

\n
\n

L1 + QR + SR 

\n
\n

QR Gain over SR 

\n
\n

Support

\n
\n

Text

\n
\n

38.4 

\n
\n

61.7 

\n
\n

65.2 

\n
\n

+3.5 

\n
\n

Hybrid

\n
\n

46.9 

\n
\n

70.3 

\n
\n

72.0 

\n
\n

+1.7 

\n
\n

MIML

\n
\n

Text

\n
\n

46.1 

\n
\n

66.3 

\n
\n

70.3 

\n
\n

+4.0 

\n
\n

Hybrid

\n
\n

58.2 

\n
\n

77.2 

\n
\n

77.2 

\n
\n

0.0 

\n
\n
\n

Table 6: Impact of QR on Text vs Hybrid Search (NDCG@3).

\n

Model Creation and Optimization

\n

Model training

\n

We listened to customer feedback and observed industry trends over the past year since our last model update. Several strategies were used to train QR and a new SR:

\n\n

 

\n

Latency optimization

\n

Latency is important for production environments, especially for RAG applications where retrieval and LLMs must work together for each response. We used an internal package that bundled CUDA level post-training optimizations in our runtime stack to enable much faster inference for the same payload/model size. This allows our new model to run up to 2.3 times faster than the previous one, as shown by Table 7.

\n

Typical incremental latency for SR (milliseconds)

\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\n

Document length (tokens)

\n
\n

Previous SR Model

\n
\n

New SR Model

\n
\n

 128 

\n
\n

44 

\n
\n

50 

\n
\n

 256 

\n
\n

116 

\n
\n

59 

\n
\n

 512 

\n
\n

182 

\n
\n

78 

\n
\n

 1024 

\n
\n

210 

\n
\n

113 

\n
\n

 2048 

\n
\n

243 

\n
\n

158  

\n
\n
\n

Table 7: Average model execution latency in test environment to rank 50 documents (all with the same specified token length). All SR features enabled (captions, highlights, answers).

\n

 

\n

This is also true for QR (Table 8) where we fine-tuned and optimized an SLM to run within a tight latency budget despite having over 1 billion parameters.

\n

Typical incremental latency for QR (milliseconds)

\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\n

Query length (tokens) 

\n
\n

QR Model 

\n
\n

\n
\n

95 

\n
\n

\n
\n

116 

\n
\n

16 

\n
\n

144 

\n
\n

32 

\n
\n

147 

\n
\n

48 

\n
\n

167 

\n
\n
\n

Table 8: Average model execution latency in test environment to generate 10 rewrites for queries with the specified token length.

\n

Getting started with SR + QR in Azure AI Search

\n

The system we evaluated in this work is available in production for developers to use in their own applications, as part of the Azure AI Search service. You can learn more about Azure AI Search in general here, or jump directly to the documentation for Semantic Ranker or Query Rewriting.

\n

Appendix

\n

External Dataset description

\n\n

Query types description (one query can have multiple types)

\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\n

Query type

\n
\n

Description

\n
\n

Example 

\n
\n

Web-like queries

\n
\n

Shortened queries similar to those commonly entered into Google or Bing

\n
\n

“Best retrieval concept queries”

\n
\n

Keyword

\n
\n

Short queries that consist of only important words

\n
\n

“semantic ranker”

\n
\n

Misspelling

\n
\n

Queries with misspellings, typos or transpositions of letters

\n
\n

“Ho w mny documents are samantically r4nked”

\n
\n

Acronym

\n
\n

Queries that contain an acronym

\n
\n

“when were ATMs invented”

\n
\n

Codeword

\n
\n

Queries that contain an identifier

\n
\n

“time of arrival for flight AF852 “

\n
\n

Question

\n
\n

Queries that ask a question

\n
\n

“who wrote Brothers Karamazov”

\n
\n

Fact seeking queries

\n
\n

Questions asking for simple facts with some given conditions, such as stock prices on a certain date and a director’s recent movies in a certain genre

\n
\n

“what were Microsoft earnings in 2020”

\n
\n

Concept seeking queries

\n
\n

Abstract questions that require multiple sentences to answer

\n
\n

“Why should I use semantic search to rank results?”

\n
\n
\n

 

","kudosSumWeight":4,"postTime":"2024-11-19T05:49:30.057-08:00","images":{"__typename":"AssociatedImageConnection","edges":[{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDE","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MzAyNzI5LWU2bUh4Wg?revision=44\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuMXwyLjF8b3wyNXxfTlZffDI","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MzAyNzI5LXkxYlc3Zw?revision=44\"}"}}],"totalCount":2,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"attachments":{"__typename":"AttachmentConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"tags":{"__typename":"TagConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[{"__typename":"TagEdge","cursor":"MjUuMXwyLjF8b3wxMHxfTlZffDE","node":{"__typename":"Tag","id":"tag:azure ai search","text":"azure ai search","time":"2019-12-04T13:04:54.809-08:00","lastActivityTime":null,"messagesCount":null,"followersCount":null}}]},"timeToRead":15,"rawTeaser":"\n

Azure AI Search has raised the bar for RAG performance, introducing a generative query engine with SLM-powered query rewriting and a new reranking model for semantic ranker. With these new additions, Azure AI Search has outperformed previous top scores for relevance and latency.

","introduction":"\nIntroducing an improved generative query engine with query rewriting and next-gen reranking model\n","coverImage":null,"coverImageProperties":{"__typename":"CoverImageProperties","style":"STANDARD","titlePosition":"BOTTOM","altText":""},"currentRevision":{"__ref":"Revision:revision:4302729_44"},"latestVersion":{"__typename":"FriendlyVersion","major":"26","minor":"0"},"metrics":{"__typename":"MessageMetrics","views":16710},"visibilityScope":"PUBLIC","canonicalUrl":"https://techcommunity.microsoft.com/blog/azure-ai-services-blog/raising-the-bar-for-rag-excellence-query-rewriting-and-new-semantic-ranker/4302729/","seoTitle":"Raising the bar for RAG excellence: introducing generative query rewriting and new ranking model","seoDescription":"Azure AI Search has raised the bar for RAG performance, introducing a generative query engine with SLM-powered query rewriting and a new reranking model for semantic ranker. With these new additions, Azure AI Search has outperformed previous top scores for relevance and latency","placeholder":false,"originalMessageForPlaceholder":null,"contributors":{"__typename":"UserConnection","edges":[]},"nonCoAuthorContributors":{"__typename":"UserConnection","edges":[]},"coAuthors":{"__typename":"UserConnection","edges":[]},"blogMessagePolicies":{"__typename":"BlogMessagePolicies","canDoAuthoringActionsOnBlog":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.blog.action_can_do_authoring_action.accessDenied","key":"error.lithium.policies.blog.action_can_do_authoring_action.accessDenied","args":[]}}},"archivalData":null,"replies":{"__typename":"MessageConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"customFields":[],"revisions({\"constraints\":{\"isPublished\":{\"eq\":true}},\"first\":1})":{"__typename":"RevisionConnection","totalCount":44}},"Conversation:conversation:4302729":{"__typename":"Conversation","id":"conversation:4302729","solved":false,"topic":{"__ref":"BlogTopicMessage:message:4302729"},"lastPostingActivityTime":"2024-11-21T04:44:02.170-08:00","lastPostTime":"2024-11-19T05:49:30.057-08:00","unreadReplyCount":0,"isSubscribed":false},"ModerationData:moderation_data:4302729":{"__typename":"ModerationData","id":"moderation_data:4302729","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MzAyNzI5LWU2bUh4Wg?revision=44\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MzAyNzI5LWU2bUh4Wg?revision=44","title":"aisearch-qr.png","associationType":"TEASER","width":1536,"height":864,"altText":""},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MzAyNzI5LXkxYlc3Zw?revision=44\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS00MzAyNzI5LXkxYlc3Zw?revision=44","title":"Social graphic -blog announcements.jpg","associationType":"BODY","width":1536,"height":864,"altText":""},"Revision:revision:4302729_44":{"__typename":"Revision","id":"revision:4302729_44","lastEditTime":"2024-11-21T04:44:02.170-08:00"},"CachedAsset:theme:customTheme1-1743778046087":{"__typename":"CachedAsset","id":"theme:customTheme1-1743778046087","value":{"id":"customTheme1","animation":{"fast":"150ms","normal":"250ms","slow":"500ms","slowest":"750ms","function":"cubic-bezier(0.07, 0.91, 0.51, 1)","__typename":"AnimationThemeSettings"},"avatar":{"borderRadius":"50%","collections":["default"],"__typename":"AvatarThemeSettings"},"basics":{"browserIcon":{"imageAssetName":"favicon-1730836283320.png","imageLastModified":"1730836286415","__typename":"ThemeAsset"},"customerLogo":{"imageAssetName":"favicon-1730836271365.png","imageLastModified":"1730836274203","__typename":"ThemeAsset"},"maximumWidthOfPageContent":"1300px","oneColumnNarrowWidth":"800px","gridGutterWidthMd":"30px","gridGutterWidthXs":"10px","pageWidthStyle":"WIDTH_OF_BROWSER","__typename":"BasicsThemeSettings"},"buttons":{"borderRadiusSm":"3px","borderRadius":"3px","borderRadiusLg":"5px","paddingY":"5px","paddingYLg":"7px","paddingYHero":"var(--lia-bs-btn-padding-y-lg)","paddingX":"12px","paddingXLg":"16px","paddingXHero":"60px","fontStyle":"NORMAL","fontWeight":"700","textTransform":"NONE","disabledOpacity":0.5,"primaryTextColor":"var(--lia-bs-white)","primaryTextHoverColor":"var(--lia-bs-white)","primaryTextActiveColor":"var(--lia-bs-white)","primaryBgColor":"var(--lia-bs-primary)","primaryBgHoverColor":"hsl(var(--lia-bs-primary-h), var(--lia-bs-primary-s), calc(var(--lia-bs-primary-l) * 0.85))","primaryBgActiveColor":"hsl(var(--lia-bs-primary-h), var(--lia-bs-primary-s), calc(var(--lia-bs-primary-l) * 0.7))","primaryBorder":"1px solid transparent","primaryBorderHover":"1px solid transparent","primaryBorderActive":"1px solid transparent","primaryBorderFocus":"1px solid var(--lia-bs-white)","primaryBoxShadowFocus":"0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","secondaryTextColor":"var(--lia-bs-gray-900)","secondaryTextHoverColor":"hsl(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), calc(var(--lia-bs-gray-900-l) * 0.95))","secondaryTextActiveColor":"hsl(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), calc(var(--lia-bs-gray-900-l) * 0.9))","secondaryBgColor":"var(--lia-bs-gray-200)","secondaryBgHoverColor":"hsl(var(--lia-bs-gray-200-h), var(--lia-bs-gray-200-s), calc(var(--lia-bs-gray-200-l) * 0.96))","secondaryBgActiveColor":"hsl(var(--lia-bs-gray-200-h), var(--lia-bs-gray-200-s), calc(var(--lia-bs-gray-200-l) * 0.92))","secondaryBorder":"1px solid transparent","secondaryBorderHover":"1px solid transparent","secondaryBorderActive":"1px solid transparent","secondaryBorderFocus":"1px solid transparent","secondaryBoxShadowFocus":"0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","tertiaryTextColor":"var(--lia-bs-gray-900)","tertiaryTextHoverColor":"hsl(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), calc(var(--lia-bs-gray-900-l) * 0.95))","tertiaryTextActiveColor":"hsl(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), calc(var(--lia-bs-gray-900-l) * 0.9))","tertiaryBgColor":"transparent","tertiaryBgHoverColor":"transparent","tertiaryBgActiveColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.04)","tertiaryBorder":"1px solid transparent","tertiaryBorderHover":"1px solid hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.08)","tertiaryBorderActive":"1px solid transparent","tertiaryBorderFocus":"1px solid transparent","tertiaryBoxShadowFocus":"0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","destructiveTextColor":"var(--lia-bs-danger)","destructiveTextHoverColor":"hsl(var(--lia-bs-danger-h), var(--lia-bs-danger-s), calc(var(--lia-bs-danger-l) * 0.95))","destructiveTextActiveColor":"hsl(var(--lia-bs-danger-h), var(--lia-bs-danger-s), calc(var(--lia-bs-danger-l) * 0.9))","destructiveBgColor":"var(--lia-bs-gray-200)","destructiveBgHoverColor":"hsl(var(--lia-bs-gray-200-h), var(--lia-bs-gray-200-s), calc(var(--lia-bs-gray-200-l) * 0.96))","destructiveBgActiveColor":"hsl(var(--lia-bs-gray-200-h), var(--lia-bs-gray-200-s), calc(var(--lia-bs-gray-200-l) * 0.92))","destructiveBorder":"1px solid transparent","destructiveBorderHover":"1px solid transparent","destructiveBorderActive":"1px solid transparent","destructiveBorderFocus":"1px solid transparent","destructiveBoxShadowFocus":"0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","__typename":"ButtonsThemeSettings"},"border":{"color":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.08)","mainContent":"NONE","sideContent":"LIGHT","radiusSm":"3px","radius":"5px","radiusLg":"9px","radius50":"100vw","__typename":"BorderThemeSettings"},"boxShadow":{"xs":"0 0 0 1px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.08), 0 3px 0 -1px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.16)","sm":"0 2px 4px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.12)","md":"0 5px 15px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.3)","lg":"0 10px 30px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.3)","__typename":"BoxShadowThemeSettings"},"cards":{"bgColor":"var(--lia-panel-bg-color)","borderRadius":"var(--lia-panel-border-radius)","boxShadow":"var(--lia-box-shadow-xs)","__typename":"CardsThemeSettings"},"chip":{"maxWidth":"300px","height":"30px","__typename":"ChipThemeSettings"},"coreTypes":{"defaultMessageLinkColor":"var(--lia-bs-link-color)","defaultMessageLinkDecoration":"none","defaultMessageLinkFontStyle":"NORMAL","defaultMessageLinkFontWeight":"400","defaultMessageFontStyle":"NORMAL","defaultMessageFontWeight":"400","forumColor":"#4099E2","forumFontFamily":"var(--lia-bs-font-family-base)","forumFontWeight":"var(--lia-default-message-font-weight)","forumLineHeight":"var(--lia-bs-line-height-base)","forumFontStyle":"var(--lia-default-message-font-style)","forumMessageLinkColor":"var(--lia-default-message-link-color)","forumMessageLinkDecoration":"var(--lia-default-message-link-decoration)","forumMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","forumMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","forumSolvedColor":"#148563","blogColor":"#1CBAA0","blogFontFamily":"var(--lia-bs-font-family-base)","blogFontWeight":"var(--lia-default-message-font-weight)","blogLineHeight":"1.75","blogFontStyle":"var(--lia-default-message-font-style)","blogMessageLinkColor":"var(--lia-default-message-link-color)","blogMessageLinkDecoration":"var(--lia-default-message-link-decoration)","blogMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","blogMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","tkbColor":"#4C6B90","tkbFontFamily":"var(--lia-bs-font-family-base)","tkbFontWeight":"var(--lia-default-message-font-weight)","tkbLineHeight":"1.75","tkbFontStyle":"var(--lia-default-message-font-style)","tkbMessageLinkColor":"var(--lia-default-message-link-color)","tkbMessageLinkDecoration":"var(--lia-default-message-link-decoration)","tkbMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","tkbMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","qandaColor":"#4099E2","qandaFontFamily":"var(--lia-bs-font-family-base)","qandaFontWeight":"var(--lia-default-message-font-weight)","qandaLineHeight":"var(--lia-bs-line-height-base)","qandaFontStyle":"var(--lia-default-message-link-font-style)","qandaMessageLinkColor":"var(--lia-default-message-link-color)","qandaMessageLinkDecoration":"var(--lia-default-message-link-decoration)","qandaMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","qandaMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","qandaSolvedColor":"#3FA023","ideaColor":"#FF8000","ideaFontFamily":"var(--lia-bs-font-family-base)","ideaFontWeight":"var(--lia-default-message-font-weight)","ideaLineHeight":"var(--lia-bs-line-height-base)","ideaFontStyle":"var(--lia-default-message-font-style)","ideaMessageLinkColor":"var(--lia-default-message-link-color)","ideaMessageLinkDecoration":"var(--lia-default-message-link-decoration)","ideaMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","ideaMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","contestColor":"#FCC845","contestFontFamily":"var(--lia-bs-font-family-base)","contestFontWeight":"var(--lia-default-message-font-weight)","contestLineHeight":"var(--lia-bs-line-height-base)","contestFontStyle":"var(--lia-default-message-link-font-style)","contestMessageLinkColor":"var(--lia-default-message-link-color)","contestMessageLinkDecoration":"var(--lia-default-message-link-decoration)","contestMessageLinkFontStyle":"ITALIC","contestMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","occasionColor":"#D13A1F","occasionFontFamily":"var(--lia-bs-font-family-base)","occasionFontWeight":"var(--lia-default-message-font-weight)","occasionLineHeight":"var(--lia-bs-line-height-base)","occasionFontStyle":"var(--lia-default-message-font-style)","occasionMessageLinkColor":"var(--lia-default-message-link-color)","occasionMessageLinkDecoration":"var(--lia-default-message-link-decoration)","occasionMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","occasionMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","grouphubColor":"#333333","categoryColor":"#949494","communityColor":"#FFFFFF","productColor":"#949494","__typename":"CoreTypesThemeSettings"},"colors":{"black":"#000000","white":"#FFFFFF","gray100":"#F7F7F7","gray200":"#F7F7F7","gray300":"#E8E8E8","gray400":"#D9D9D9","gray500":"#CCCCCC","gray600":"#717171","gray700":"#707070","gray800":"#545454","gray900":"#333333","dark":"#545454","light":"#F7F7F7","primary":"#0069D4","secondary":"#333333","bodyText":"#1E1E1E","bodyBg":"#FFFFFF","info":"#409AE2","success":"#41C5AE","warning":"#FCC844","danger":"#BC341B","alertSystem":"#FF6600","textMuted":"#707070","highlight":"#FFFCAD","outline":"var(--lia-bs-primary)","custom":["#D3F5A4","#243A5E"],"__typename":"ColorsThemeSettings"},"divider":{"size":"3px","marginLeft":"4px","marginRight":"4px","borderRadius":"50%","bgColor":"var(--lia-bs-gray-600)","bgColorActive":"var(--lia-bs-gray-600)","__typename":"DividerThemeSettings"},"dropdown":{"fontSize":"var(--lia-bs-font-size-sm)","borderColor":"var(--lia-bs-border-color)","borderRadius":"var(--lia-bs-border-radius-sm)","dividerBg":"var(--lia-bs-gray-300)","itemPaddingY":"5px","itemPaddingX":"20px","headerColor":"var(--lia-bs-gray-700)","__typename":"DropdownThemeSettings"},"email":{"link":{"color":"#0069D4","hoverColor":"#0061c2","decoration":"none","hoverDecoration":"underline","__typename":"EmailLinkSettings"},"border":{"color":"#e4e4e4","__typename":"EmailBorderSettings"},"buttons":{"borderRadiusLg":"5px","paddingXLg":"16px","paddingYLg":"7px","fontWeight":"700","primaryTextColor":"#ffffff","primaryTextHoverColor":"#ffffff","primaryBgColor":"#0069D4","primaryBgHoverColor":"#005cb8","primaryBorder":"1px solid transparent","primaryBorderHover":"1px solid transparent","__typename":"EmailButtonsSettings"},"panel":{"borderRadius":"5px","borderColor":"#e4e4e4","__typename":"EmailPanelSettings"},"__typename":"EmailThemeSettings"},"emoji":{"skinToneDefault":"#ffcd43","skinToneLight":"#fae3c5","skinToneMediumLight":"#e2cfa5","skinToneMedium":"#daa478","skinToneMediumDark":"#a78058","skinToneDark":"#5e4d43","__typename":"EmojiThemeSettings"},"heading":{"color":"var(--lia-bs-body-color)","fontFamily":"Segoe UI","fontStyle":"NORMAL","fontWeight":"400","h1FontSize":"34px","h2FontSize":"32px","h3FontSize":"28px","h4FontSize":"24px","h5FontSize":"20px","h6FontSize":"16px","lineHeight":"1.3","subHeaderFontSize":"11px","subHeaderFontWeight":"500","h1LetterSpacing":"normal","h2LetterSpacing":"normal","h3LetterSpacing":"normal","h4LetterSpacing":"normal","h5LetterSpacing":"normal","h6LetterSpacing":"normal","subHeaderLetterSpacing":"2px","h1FontWeight":"var(--lia-bs-headings-font-weight)","h2FontWeight":"var(--lia-bs-headings-font-weight)","h3FontWeight":"var(--lia-bs-headings-font-weight)","h4FontWeight":"var(--lia-bs-headings-font-weight)","h5FontWeight":"var(--lia-bs-headings-font-weight)","h6FontWeight":"var(--lia-bs-headings-font-weight)","__typename":"HeadingThemeSettings"},"icons":{"size10":"10px","size12":"12px","size14":"14px","size16":"16px","size20":"20px","size24":"24px","size30":"30px","size40":"40px","size50":"50px","size60":"60px","size80":"80px","size120":"120px","size160":"160px","__typename":"IconsThemeSettings"},"imagePreview":{"bgColor":"var(--lia-bs-gray-900)","titleColor":"var(--lia-bs-white)","controlColor":"var(--lia-bs-white)","controlBgColor":"var(--lia-bs-gray-800)","__typename":"ImagePreviewThemeSettings"},"input":{"borderColor":"var(--lia-bs-gray-600)","disabledColor":"var(--lia-bs-gray-600)","focusBorderColor":"var(--lia-bs-primary)","labelMarginBottom":"10px","btnFontSize":"var(--lia-bs-font-size-sm)","focusBoxShadow":"0 0 0 3px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","checkLabelMarginBottom":"2px","checkboxBorderRadius":"3px","borderRadiusSm":"var(--lia-bs-border-radius-sm)","borderRadius":"var(--lia-bs-border-radius)","borderRadiusLg":"var(--lia-bs-border-radius-lg)","formTextMarginTop":"4px","textAreaBorderRadius":"var(--lia-bs-border-radius)","activeFillColor":"var(--lia-bs-primary)","__typename":"InputThemeSettings"},"loading":{"dotDarkColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.2)","dotLightColor":"hsla(var(--lia-bs-white-h), var(--lia-bs-white-s), var(--lia-bs-white-l), 0.5)","barDarkColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.06)","barLightColor":"hsla(var(--lia-bs-white-h), var(--lia-bs-white-s), var(--lia-bs-white-l), 0.4)","__typename":"LoadingThemeSettings"},"link":{"color":"var(--lia-bs-primary)","hoverColor":"hsl(var(--lia-bs-primary-h), var(--lia-bs-primary-s), calc(var(--lia-bs-primary-l) - 10%))","decoration":"none","hoverDecoration":"underline","__typename":"LinkThemeSettings"},"listGroup":{"itemPaddingY":"15px","itemPaddingX":"15px","borderColor":"var(--lia-bs-gray-300)","__typename":"ListGroupThemeSettings"},"modal":{"contentTextColor":"var(--lia-bs-body-color)","contentBg":"var(--lia-bs-white)","backgroundBg":"var(--lia-bs-black)","smSize":"440px","mdSize":"760px","lgSize":"1080px","backdropOpacity":0.3,"contentBoxShadowXs":"var(--lia-bs-box-shadow-sm)","contentBoxShadow":"var(--lia-bs-box-shadow)","headerFontWeight":"700","__typename":"ModalThemeSettings"},"navbar":{"position":"FIXED","background":{"attachment":null,"clip":null,"color":"var(--lia-bs-white)","imageAssetName":"","imageLastModified":"0","origin":null,"position":"CENTER_CENTER","repeat":"NO_REPEAT","size":"COVER","__typename":"BackgroundProps"},"backgroundOpacity":0.8,"paddingTop":"15px","paddingBottom":"15px","borderBottom":"1px solid var(--lia-bs-border-color)","boxShadow":"var(--lia-bs-box-shadow-sm)","brandMarginRight":"30px","brandMarginRightSm":"10px","brandLogoHeight":"30px","linkGap":"10px","linkJustifyContent":"flex-start","linkPaddingY":"5px","linkPaddingX":"10px","linkDropdownPaddingY":"9px","linkDropdownPaddingX":"var(--lia-nav-link-px)","linkColor":"var(--lia-bs-body-color)","linkHoverColor":"var(--lia-bs-primary)","linkFontSize":"var(--lia-bs-font-size-sm)","linkFontStyle":"NORMAL","linkFontWeight":"400","linkTextTransform":"NONE","linkLetterSpacing":"normal","linkBorderRadius":"var(--lia-bs-border-radius-sm)","linkBgColor":"transparent","linkBgHoverColor":"transparent","linkBorder":"none","linkBorderHover":"none","linkBoxShadow":"none","linkBoxShadowHover":"none","linkTextBorderBottom":"none","linkTextBorderBottomHover":"none","dropdownPaddingTop":"10px","dropdownPaddingBottom":"15px","dropdownPaddingX":"10px","dropdownMenuOffset":"2px","dropdownDividerMarginTop":"10px","dropdownDividerMarginBottom":"10px","dropdownBorderColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.08)","controllerBgHoverColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.1)","controllerIconColor":"var(--lia-bs-body-color)","controllerIconHoverColor":"var(--lia-bs-body-color)","controllerTextColor":"var(--lia-nav-controller-icon-color)","controllerTextHoverColor":"var(--lia-nav-controller-icon-hover-color)","controllerHighlightColor":"hsla(30, 100%, 50%)","controllerHighlightTextColor":"var(--lia-yiq-light)","controllerBorderRadius":"var(--lia-border-radius-50)","hamburgerColor":"var(--lia-nav-controller-icon-color)","hamburgerHoverColor":"var(--lia-nav-controller-icon-color)","hamburgerBgColor":"transparent","hamburgerBgHoverColor":"transparent","hamburgerBorder":"none","hamburgerBorderHover":"none","collapseMenuMarginLeft":"20px","collapseMenuDividerBg":"var(--lia-nav-link-color)","collapseMenuDividerOpacity":0.16,"__typename":"NavbarThemeSettings"},"pager":{"textColor":"var(--lia-bs-link-color)","textFontWeight":"var(--lia-font-weight-md)","textFontSize":"var(--lia-bs-font-size-sm)","__typename":"PagerThemeSettings"},"panel":{"bgColor":"var(--lia-bs-white)","borderRadius":"var(--lia-bs-border-radius)","borderColor":"var(--lia-bs-border-color)","boxShadow":"none","__typename":"PanelThemeSettings"},"popover":{"arrowHeight":"8px","arrowWidth":"16px","maxWidth":"300px","minWidth":"100px","headerBg":"var(--lia-bs-white)","borderColor":"var(--lia-bs-border-color)","borderRadius":"var(--lia-bs-border-radius)","boxShadow":"0 0.5rem 1rem hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.15)","__typename":"PopoverThemeSettings"},"prism":{"color":"#000000","bgColor":"#f5f2f0","fontFamily":"var(--font-family-monospace)","fontSize":"var(--lia-bs-font-size-base)","fontWeightBold":"var(--lia-bs-font-weight-bold)","fontStyleItalic":"italic","tabSize":2,"highlightColor":"#b3d4fc","commentColor":"#62707e","punctuationColor":"#6f6f6f","namespaceOpacity":"0.7","propColor":"#990055","selectorColor":"#517a00","operatorColor":"#906736","operatorBgColor":"hsla(0, 0%, 100%, 0.5)","keywordColor":"#0076a9","functionColor":"#d3284b","variableColor":"#c14700","__typename":"PrismThemeSettings"},"rte":{"bgColor":"var(--lia-bs-white)","borderRadius":"var(--lia-panel-border-radius)","boxShadow":" var(--lia-panel-box-shadow)","customColor1":"#bfedd2","customColor2":"#fbeeb8","customColor3":"#f8cac6","customColor4":"#eccafa","customColor5":"#c2e0f4","customColor6":"#2dc26b","customColor7":"#f1c40f","customColor8":"#e03e2d","customColor9":"#b96ad9","customColor10":"#3598db","customColor11":"#169179","customColor12":"#e67e23","customColor13":"#ba372a","customColor14":"#843fa1","customColor15":"#236fa1","customColor16":"#ecf0f1","customColor17":"#ced4d9","customColor18":"#95a5a6","customColor19":"#7e8c8d","customColor20":"#34495e","customColor21":"#000000","customColor22":"#ffffff","defaultMessageHeaderMarginTop":"40px","defaultMessageHeaderMarginBottom":"20px","defaultMessageItemMarginTop":"0","defaultMessageItemMarginBottom":"10px","diffAddedColor":"hsla(170, 53%, 51%, 0.4)","diffChangedColor":"hsla(43, 97%, 63%, 0.4)","diffNoneColor":"hsla(0, 0%, 80%, 0.4)","diffRemovedColor":"hsla(9, 74%, 47%, 0.4)","specialMessageHeaderMarginTop":"40px","specialMessageHeaderMarginBottom":"20px","specialMessageItemMarginTop":"0","specialMessageItemMarginBottom":"10px","__typename":"RteThemeSettings"},"tags":{"bgColor":"var(--lia-bs-gray-200)","bgHoverColor":"var(--lia-bs-gray-400)","borderRadius":"var(--lia-bs-border-radius-sm)","color":"var(--lia-bs-body-color)","hoverColor":"var(--lia-bs-body-color)","fontWeight":"var(--lia-font-weight-md)","fontSize":"var(--lia-font-size-xxs)","textTransform":"UPPERCASE","letterSpacing":"0.5px","__typename":"TagsThemeSettings"},"toasts":{"borderRadius":"var(--lia-bs-border-radius)","paddingX":"12px","__typename":"ToastsThemeSettings"},"typography":{"fontFamilyBase":"Segoe UI","fontStyleBase":"NORMAL","fontWeightBase":"400","fontWeightLight":"300","fontWeightNormal":"400","fontWeightMd":"500","fontWeightBold":"700","letterSpacingSm":"normal","letterSpacingXs":"normal","lineHeightBase":"1.5","fontSizeBase":"16px","fontSizeXxs":"11px","fontSizeXs":"12px","fontSizeSm":"14px","fontSizeLg":"20px","fontSizeXl":"24px","smallFontSize":"14px","customFonts":[{"source":"SERVER","name":"Segoe UI","styles":[{"style":"NORMAL","weight":"400","__typename":"FontStyleData"},{"style":"NORMAL","weight":"300","__typename":"FontStyleData"},{"style":"NORMAL","weight":"600","__typename":"FontStyleData"},{"style":"NORMAL","weight":"700","__typename":"FontStyleData"},{"style":"ITALIC","weight":"400","__typename":"FontStyleData"}],"assetNames":["SegoeUI-normal-400.woff2","SegoeUI-normal-300.woff2","SegoeUI-normal-600.woff2","SegoeUI-normal-700.woff2","SegoeUI-italic-400.woff2"],"__typename":"CustomFont"},{"source":"SERVER","name":"MWF Fluent Icons","styles":[{"style":"NORMAL","weight":"400","__typename":"FontStyleData"}],"assetNames":["MWFFluentIcons-normal-400.woff2"],"__typename":"CustomFont"}],"__typename":"TypographyThemeSettings"},"unstyledListItem":{"marginBottomSm":"5px","marginBottomMd":"10px","marginBottomLg":"15px","marginBottomXl":"20px","marginBottomXxl":"25px","__typename":"UnstyledListItemThemeSettings"},"yiq":{"light":"#ffffff","dark":"#000000","__typename":"YiqThemeSettings"},"colorLightness":{"primaryDark":0.36,"primaryLight":0.74,"primaryLighter":0.89,"primaryLightest":0.95,"infoDark":0.39,"infoLight":0.72,"infoLighter":0.85,"infoLightest":0.93,"successDark":0.24,"successLight":0.62,"successLighter":0.8,"successLightest":0.91,"warningDark":0.39,"warningLight":0.68,"warningLighter":0.84,"warningLightest":0.93,"dangerDark":0.41,"dangerLight":0.72,"dangerLighter":0.89,"dangerLightest":0.95,"__typename":"ColorLightnessThemeSettings"},"localOverride":false,"__typename":"Theme"},"localOverride":false},"CachedAsset:text:en_US-components/common/EmailVerification-1743095130000":{"__typename":"CachedAsset","id":"text:en_US-components/common/EmailVerification-1743095130000","value":{"email.verification.title":"Email Verification Required","email.verification.message.update.email":"To participate in the community, you must first verify your email address. The verification email was sent to {email}. To change your email, visit My Settings.","email.verification.message.resend.email":"To participate in the community, you must first verify your email address. The verification email was sent to {email}. Resend email."},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/common/Loading/LoadingDot-1743095130000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/Loading/LoadingDot-1743095130000","value":{"title":"Loading..."},"localOverride":false},"CachedAsset:quilt:o365.prod:pages/blogs/BlogMessagePage:board:Azure-AI-Services-blog-1743765848604":{"__typename":"CachedAsset","id":"quilt:o365.prod:pages/blogs/BlogMessagePage:board:Azure-AI-Services-blog-1743765848604","value":{"id":"BlogMessagePage","container":{"id":"Common","headerProps":{"backgroundImageProps":null,"backgroundColor":null,"addComponents":null,"removeComponents":["community.widget.bannerWidget"],"componentOrder":null,"__typename":"QuiltContainerSectionProps"},"headerComponentProps":{"community.widget.breadcrumbWidget":{"disableLastCrumbForDesktop":false}},"footerProps":null,"footerComponentProps":null,"items":[{"id":"blog-article","layout":"ONE_COLUMN","bgColor":null,"showTitle":null,"showDescription":null,"textPosition":null,"textColor":null,"sectionEditLevel":"LOCKED","bgImage":null,"disableSpacing":null,"edgeToEdgeDisplay":null,"fullHeight":null,"showBorder":null,"__typename":"OneColumnQuiltSection","columnMap":{"main":[{"id":"blogs.widget.blogArticleWidget","className":"lia-blog-container","props":null,"__typename":"QuiltComponent"}],"__typename":"OneSectionColumns"}},{"id":"section-1729184836777","layout":"MAIN_SIDE","bgColor":"transparent","showTitle":false,"showDescription":false,"textPosition":"CENTER","textColor":"var(--lia-bs-body-color)","sectionEditLevel":null,"bgImage":null,"disableSpacing":null,"edgeToEdgeDisplay":null,"fullHeight":null,"showBorder":null,"__typename":"MainSideQuiltSection","columnMap":{"main":[],"side":[{"id":"custom.widget.Social_Sharing","className":null,"props":{"widgetVisibility":"signedInOrAnonymous","useTitle":true,"useBackground":true,"title":"Share","lazyLoad":false},"__typename":"QuiltComponent"}],"__typename":"MainSideSectionColumns"}}],"__typename":"QuiltContainer"},"__typename":"Quilt","localOverride":false},"localOverride":false},"CachedAsset:text:en_US-pages/blogs/BlogMessagePage-1743095130000":{"__typename":"CachedAsset","id":"text:en_US-pages/blogs/BlogMessagePage-1743095130000","value":{"title":"{contextMessageSubject} | {communityTitle}","errorMissing":"This blog post cannot be found","name":"Blog Message Page","section.blog-article.title":"Blog Post","archivedMessageTitle":"This Content Has Been Archived","section.section-1729184836777.title":"","section.section-1729184836777.description":"","section.CncIde.title":"Blog Post","section.tifEmD.description":"","section.tifEmD.title":""},"localOverride":false},"CachedAsset:quiltWrapper:o365.prod:Common:1743765648181":{"__typename":"CachedAsset","id":"quiltWrapper:o365.prod:Common:1743765648181","value":{"id":"Common","header":{"backgroundImageProps":{"assetName":null,"backgroundSize":"COVER","backgroundRepeat":"NO_REPEAT","backgroundPosition":"CENTER_CENTER","lastModified":null,"__typename":"BackgroundImageProps"},"backgroundColor":"transparent","items":[{"id":"community.widget.navbarWidget","props":{"showUserName":true,"showRegisterLink":true,"useIconLanguagePicker":true,"useLabelLanguagePicker":true,"className":"QuiltComponent_lia-component-edit-mode__0nCcm","links":{"sideLinks":[],"mainLinks":[{"children":[],"linkType":"INTERNAL","id":"gxcuf89792","params":{},"routeName":"CommunityPage"},{"children":[],"linkType":"EXTERNAL","id":"external-link","url":"/Directory","target":"SELF"},{"children":[{"linkType":"INTERNAL","id":"microsoft365","params":{"categoryId":"microsoft365"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"microsoft-teams","params":{"categoryId":"MicrosoftTeams"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"windows","params":{"categoryId":"Windows"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"microsoft-securityand-compliance","params":{"categoryId":"microsoft-security"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"outlook","params":{"categoryId":"Outlook"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"planner","params":{"categoryId":"Planner"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"windows-server","params":{"categoryId":"Windows-Server"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"azure","params":{"categoryId":"Azure"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"exchange","params":{"categoryId":"Exchange"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"microsoft-endpoint-manager","params":{"categoryId":"microsoft-endpoint-manager"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"s-q-l-server","params":{"categoryId":"SQL-Server"},"routeName":"CategoryPage"},{"linkType":"EXTERNAL","id":"external-link-2","url":"/Directory","target":"SELF"}],"linkType":"EXTERNAL","id":"communities","url":"/","target":"BLANK"},{"children":[{"linkType":"INTERNAL","id":"education-sector","params":{"categoryId":"EducationSector"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"a-i","params":{"categoryId":"AI"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"i-t-ops-talk","params":{"categoryId":"ITOpsTalk"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"partner-community","params":{"categoryId":"PartnerCommunity"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"microsoft-mechanics","params":{"categoryId":"MicrosoftMechanics"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"healthcare-and-life-sciences","params":{"categoryId":"HealthcareAndLifeSciences"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"public-sector","params":{"categoryId":"PublicSector"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"io-t","params":{"categoryId":"IoT"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"driving-adoption","params":{"categoryId":"DrivingAdoption"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"s-m-b","params":{"categoryId":"SMB"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"startupsat-microsoft","params":{"categoryId":"StartupsatMicrosoft"},"routeName":"CategoryPage"},{"linkType":"EXTERNAL","id":"external-link-1","url":"/Directory","target":"SELF"}],"linkType":"EXTERNAL","id":"communities-1","url":"/","target":"SELF"},{"children":[],"linkType":"EXTERNAL","id":"external","url":"/Blogs","target":"SELF"},{"children":[],"linkType":"EXTERNAL","id":"external-1","url":"/Events","target":"SELF"},{"children":[{"linkType":"INTERNAL","id":"microsoft-learn-1","params":{"categoryId":"MicrosoftLearn"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"microsoft-learn-blog","params":{"boardId":"MicrosoftLearnBlog","categoryId":"MicrosoftLearn"},"routeName":"BlogBoardPage"},{"linkType":"EXTERNAL","id":"external-10","url":"https://learningroomdirectory.microsoft.com/","target":"BLANK"},{"linkType":"EXTERNAL","id":"external-3","url":"https://docs.microsoft.com/learn/dynamics365/?WT.mc_id=techcom_header-webpage-m365","target":"BLANK"},{"linkType":"EXTERNAL","id":"external-4","url":"https://docs.microsoft.com/learn/m365/?wt.mc_id=techcom_header-webpage-m365","target":"BLANK"},{"linkType":"EXTERNAL","id":"external-5","url":"https://docs.microsoft.com/learn/topics/sci/?wt.mc_id=techcom_header-webpage-m365","target":"BLANK"},{"linkType":"EXTERNAL","id":"external-6","url":"https://docs.microsoft.com/learn/powerplatform/?wt.mc_id=techcom_header-webpage-powerplatform","target":"BLANK"},{"linkType":"EXTERNAL","id":"external-7","url":"https://docs.microsoft.com/learn/github/?wt.mc_id=techcom_header-webpage-github","target":"BLANK"},{"linkType":"EXTERNAL","id":"external-8","url":"https://docs.microsoft.com/learn/teams/?wt.mc_id=techcom_header-webpage-teams","target":"BLANK"},{"linkType":"EXTERNAL","id":"external-9","url":"https://docs.microsoft.com/learn/dotnet/?wt.mc_id=techcom_header-webpage-dotnet","target":"BLANK"},{"linkType":"EXTERNAL","id":"external-2","url":"https://docs.microsoft.com/learn/azure/?WT.mc_id=techcom_header-webpage-m365","target":"BLANK"}],"linkType":"INTERNAL","id":"microsoft-learn","params":{"categoryId":"MicrosoftLearn"},"routeName":"CategoryPage"},{"children":[],"linkType":"INTERNAL","id":"community-info-center","params":{"categoryId":"Community-Info-Center"},"routeName":"CategoryPage"}]},"style":{"boxShadow":"var(--lia-bs-box-shadow-sm)","controllerHighlightColor":"hsla(30, 100%, 50%)","linkFontWeight":"400","dropdownDividerMarginBottom":"10px","hamburgerBorderHover":"none","linkBoxShadowHover":"none","linkFontSize":"14px","backgroundOpacity":0.8,"controllerBorderRadius":"var(--lia-border-radius-50)","hamburgerBgColor":"transparent","hamburgerColor":"var(--lia-nav-controller-icon-color)","linkTextBorderBottom":"none","brandLogoHeight":"30px","linkBgHoverColor":"transparent","linkLetterSpacing":"normal","collapseMenuDividerOpacity":0.16,"dropdownPaddingBottom":"15px","paddingBottom":"15px","dropdownMenuOffset":"2px","hamburgerBgHoverColor":"transparent","borderBottom":"1px solid var(--lia-bs-border-color)","hamburgerBorder":"none","dropdownPaddingX":"10px","brandMarginRightSm":"10px","linkBoxShadow":"none","collapseMenuDividerBg":"var(--lia-nav-link-color)","linkColor":"var(--lia-bs-body-color)","linkJustifyContent":"flex-start","dropdownPaddingTop":"10px","controllerHighlightTextColor":"var(--lia-yiq-dark)","controllerTextColor":"var(--lia-nav-controller-icon-color)","background":{"imageAssetName":"","color":"var(--lia-bs-white)","size":"COVER","repeat":"NO_REPEAT","position":"CENTER_CENTER","imageLastModified":""},"linkBorderRadius":"var(--lia-bs-border-radius-sm)","linkHoverColor":"var(--lia-bs-body-color)","position":"FIXED","linkBorder":"none","linkTextBorderBottomHover":"2px solid var(--lia-bs-body-color)","brandMarginRight":"30px","hamburgerHoverColor":"var(--lia-nav-controller-icon-color)","linkBorderHover":"none","collapseMenuMarginLeft":"20px","linkFontStyle":"NORMAL","controllerTextHoverColor":"var(--lia-nav-controller-icon-hover-color)","linkPaddingX":"10px","linkPaddingY":"5px","paddingTop":"15px","linkTextTransform":"NONE","dropdownBorderColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.08)","controllerBgHoverColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.1)","linkBgColor":"transparent","linkDropdownPaddingX":"var(--lia-nav-link-px)","linkDropdownPaddingY":"9px","controllerIconColor":"var(--lia-bs-body-color)","dropdownDividerMarginTop":"10px","linkGap":"10px","controllerIconHoverColor":"var(--lia-bs-body-color)"},"showSearchIcon":false,"languagePickerStyle":"iconAndLabel"},"__typename":"QuiltComponent"},{"id":"community.widget.breadcrumbWidget","props":{"backgroundColor":"transparent","linkHighlightColor":"var(--lia-bs-primary)","visualEffects":{"showBottomBorder":true},"linkTextColor":"var(--lia-bs-gray-700)"},"__typename":"QuiltComponent"},{"id":"custom.widget.community_banner","props":{"widgetVisibility":"signedInOrAnonymous","useTitle":true,"usePageWidth":false,"useBackground":false,"title":"","lazyLoad":false},"__typename":"QuiltComponent"},{"id":"custom.widget.HeroBanner","props":{"widgetVisibility":"signedInOrAnonymous","usePageWidth":false,"useTitle":true,"cMax_items":3,"useBackground":false,"title":"","lazyLoad":false,"widgetChooser":"custom.widget.HeroBanner"},"__typename":"QuiltComponent"}],"__typename":"QuiltWrapperSection"},"footer":{"backgroundImageProps":{"assetName":null,"backgroundSize":"COVER","backgroundRepeat":"NO_REPEAT","backgroundPosition":"CENTER_CENTER","lastModified":null,"__typename":"BackgroundImageProps"},"backgroundColor":"transparent","items":[{"id":"custom.widget.MicrosoftFooter","props":{"widgetVisibility":"signedInOrAnonymous","useTitle":true,"useBackground":false,"title":"","lazyLoad":false},"__typename":"QuiltComponent"}],"__typename":"QuiltWrapperSection"},"__typename":"QuiltWrapper","localOverride":false},"localOverride":false},"CachedAsset:text:en_US-components/common/ActionFeedback-1743095130000":{"__typename":"CachedAsset","id":"text:en_US-components/common/ActionFeedback-1743095130000","value":{"joinedGroupHub.title":"Welcome","joinedGroupHub.message":"You are now a member of this group and are subscribed to updates.","groupHubInviteNotFound.title":"Invitation Not Found","groupHubInviteNotFound.message":"Sorry, we could not find your invitation to the group. The owner may have canceled the invite.","groupHubNotFound.title":"Group Not Found","groupHubNotFound.message":"The grouphub you tried to join does not exist. It may have been deleted.","existingGroupHubMember.title":"Already Joined","existingGroupHubMember.message":"You are already a member of this group.","accountLocked.title":"Account Locked","accountLocked.message":"Your account has been locked due to multiple failed attempts. Try again in {lockoutTime} minutes.","editedGroupHub.title":"Changes Saved","editedGroupHub.message":"Your group has been updated.","leftGroupHub.title":"Goodbye","leftGroupHub.message":"You are no longer a member of this group and will not receive future updates.","deletedGroupHub.title":"Deleted","deletedGroupHub.message":"The group has been deleted.","groupHubCreated.title":"Group Created","groupHubCreated.message":"{groupHubName} is ready to use","accountClosed.title":"Account Closed","accountClosed.message":"The account has been closed and you will now be redirected to the homepage","resetTokenExpired.title":"Reset Password Link has Expired","resetTokenExpired.message":"Try resetting your password again","invalidUrl.title":"Invalid URL","invalidUrl.message":"The URL you're using is not recognized. Verify your URL and try again.","accountClosedForUser.title":"Account Closed","accountClosedForUser.message":"{userName}'s account is closed","inviteTokenInvalid.title":"Invitation Invalid","inviteTokenInvalid.message":"Your invitation to the community has been canceled or expired.","inviteTokenError.title":"Invitation Verification Failed","inviteTokenError.message":"The url you are utilizing is not recognized. Verify your URL and try again","pageNotFound.title":"Access Denied","pageNotFound.message":"You do not have access to this area of the community or it doesn't exist","eventAttending.title":"Responded as Attending","eventAttending.message":"You'll be notified when there's new activity and reminded as the event approaches","eventInterested.title":"Responded as Interested","eventInterested.message":"You'll be notified when there's new activity and reminded as the event approaches","eventNotFound.title":"Event Not Found","eventNotFound.message":"The event you tried to respond to does not exist.","redirectToRelatedPage.title":"Showing Related Content","redirectToRelatedPageForBaseUsers.title":"Showing Related Content","redirectToRelatedPageForBaseUsers.message":"The content you are trying to access is archived","redirectToRelatedPage.message":"The content you are trying to access is archived","relatedUrl.archivalLink.flyoutMessage":"The content you are trying to access is archived View Archived Content"},"localOverride":false},"CachedAsset:component:custom.widget.community_banner-en-1743765884141":{"__typename":"CachedAsset","id":"component:custom.widget.community_banner-en-1743765884141","value":{"component":{"id":"custom.widget.community_banner","template":{"id":"community_banner","markupLanguage":"HANDLEBARS","style":".community-banner {\n a.top-bar.btn {\n top: 0px;\n width: 100%;\n z-index: 999;\n text-align: center;\n left: 0px;\n background: #0068b8;\n color: white;\n padding: 10px 0px;\n display:block;\n box-shadow:none !important;\n border: none !important;\n border-radius: none !important;\n margin: 0px !important;\n font-size:14px;\n }\n}","texts":null,"defaults":{"config":{"applicablePages":[],"description":"community announcement text","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"components":[{"id":"custom.widget.community_banner","form":null,"config":null,"props":[],"__typename":"Component"}],"grouping":"CUSTOM","__typename":"ComponentTemplate"},"properties":{"config":{"applicablePages":[],"description":"community announcement text","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"form":null,"__typename":"Component","localOverride":false},"globalCss":{"css":".custom_widget_community_banner_community-banner_1a5zb_1 {\n a.custom_widget_community_banner_top-bar_1a5zb_2.custom_widget_community_banner_btn_1a5zb_2 {\n top: 0;\n width: 100%;\n z-index: 999;\n text-align: center;\n left: 0;\n background: #0068b8;\n color: white;\n padding: 0.625rem 0;\n display:block;\n box-shadow:none !important;\n border: none !important;\n border-radius: none !important;\n margin: 0 !important;\n font-size:0.875rem;\n }\n}","tokens":{"community-banner":"custom_widget_community_banner_community-banner_1a5zb_1","top-bar":"custom_widget_community_banner_top-bar_1a5zb_2","btn":"custom_widget_community_banner_btn_1a5zb_2"}},"form":null},"localOverride":false},"CachedAsset:component:custom.widget.HeroBanner-en-1743765884141":{"__typename":"CachedAsset","id":"component:custom.widget.HeroBanner-en-1743765884141","value":{"component":{"id":"custom.widget.HeroBanner","template":{"id":"HeroBanner","markupLanguage":"REACT","style":null,"texts":{"searchPlaceholderText":"Search this community","followActionText":"Follow","unfollowActionText":"Following","searchOnHoverText":"Please enter your search term(s) and then press return key to complete a search."},"defaults":{"config":{"applicablePages":[],"description":null,"fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[{"id":"max_items","dataType":"NUMBER","list":false,"defaultValue":"3","label":"Max Items","description":"The maximum number of items to display in the carousel","possibleValues":null,"control":"INPUT","__typename":"PropDefinition"}],"__typename":"ComponentProperties"},"components":[{"id":"custom.widget.HeroBanner","form":{"fields":[{"id":"widgetChooser","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"title","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"useTitle","validation":null,"noValidation":null,"dataType":"BOOLEAN","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"useBackground","validation":null,"noValidation":null,"dataType":"BOOLEAN","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"widgetVisibility","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"moreOptions","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"cMax_items","validation":null,"noValidation":null,"dataType":"NUMBER","list":false,"control":"INPUT","defaultValue":"3","label":"Max Items","description":"The maximum number of items to display in the carousel","possibleValues":null,"__typename":"FormField"}],"layout":{"rows":[{"id":"widgetChooserGroup","type":"fieldset","as":null,"items":[{"id":"widgetChooser","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"titleGroup","type":"fieldset","as":null,"items":[{"id":"title","className":null,"__typename":"FormFieldRef"},{"id":"useTitle","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"useBackground","type":"fieldset","as":null,"items":[{"id":"useBackground","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"widgetVisibility","type":"fieldset","as":null,"items":[{"id":"widgetVisibility","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"moreOptionsGroup","type":"fieldset","as":null,"items":[{"id":"moreOptions","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"componentPropsGroup","type":"fieldset","as":null,"items":[{"id":"cMax_items","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"}],"actionButtons":null,"className":"custom_widget_HeroBanner_form","formGroupFieldSeparator":"divider","__typename":"FormLayout"},"__typename":"Form"},"config":null,"props":[],"__typename":"Component"}],"grouping":"CUSTOM","__typename":"ComponentTemplate"},"properties":{"config":{"applicablePages":[],"description":null,"fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[{"id":"max_items","dataType":"NUMBER","list":false,"defaultValue":"3","label":"Max Items","description":"The maximum number of items to display in the carousel","possibleValues":null,"control":"INPUT","__typename":"PropDefinition"}],"__typename":"ComponentProperties"},"form":{"fields":[{"id":"widgetChooser","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"title","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"useTitle","validation":null,"noValidation":null,"dataType":"BOOLEAN","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"useBackground","validation":null,"noValidation":null,"dataType":"BOOLEAN","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"widgetVisibility","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"moreOptions","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"cMax_items","validation":null,"noValidation":null,"dataType":"NUMBER","list":false,"control":"INPUT","defaultValue":"3","label":"Max Items","description":"The maximum number of items to display in the carousel","possibleValues":null,"__typename":"FormField"}],"layout":{"rows":[{"id":"widgetChooserGroup","type":"fieldset","as":null,"items":[{"id":"widgetChooser","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"titleGroup","type":"fieldset","as":null,"items":[{"id":"title","className":null,"__typename":"FormFieldRef"},{"id":"useTitle","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"useBackground","type":"fieldset","as":null,"items":[{"id":"useBackground","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"widgetVisibility","type":"fieldset","as":null,"items":[{"id":"widgetVisibility","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"moreOptionsGroup","type":"fieldset","as":null,"items":[{"id":"moreOptions","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"componentPropsGroup","type":"fieldset","as":null,"items":[{"id":"cMax_items","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"}],"actionButtons":null,"className":"custom_widget_HeroBanner_form","formGroupFieldSeparator":"divider","__typename":"FormLayout"},"__typename":"Form"},"__typename":"Component","localOverride":false},"globalCss":null,"form":{"fields":[{"id":"widgetChooser","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"title","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"useTitle","validation":null,"noValidation":null,"dataType":"BOOLEAN","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"useBackground","validation":null,"noValidation":null,"dataType":"BOOLEAN","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"widgetVisibility","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"moreOptions","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"cMax_items","validation":null,"noValidation":null,"dataType":"NUMBER","list":false,"control":"INPUT","defaultValue":"3","label":"Max Items","description":"The maximum number of items to display in the carousel","possibleValues":null,"__typename":"FormField"}],"layout":{"rows":[{"id":"widgetChooserGroup","type":"fieldset","as":null,"items":[{"id":"widgetChooser","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"titleGroup","type":"fieldset","as":null,"items":[{"id":"title","className":null,"__typename":"FormFieldRef"},{"id":"useTitle","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"useBackground","type":"fieldset","as":null,"items":[{"id":"useBackground","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"widgetVisibility","type":"fieldset","as":null,"items":[{"id":"widgetVisibility","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"moreOptionsGroup","type":"fieldset","as":null,"items":[{"id":"moreOptions","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"componentPropsGroup","type":"fieldset","as":null,"items":[{"id":"cMax_items","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"}],"actionButtons":null,"className":"custom_widget_HeroBanner_form","formGroupFieldSeparator":"divider","__typename":"FormLayout"},"__typename":"Form"}},"localOverride":false},"CachedAsset:component:custom.widget.Social_Sharing-en-1743765884141":{"__typename":"CachedAsset","id":"component:custom.widget.Social_Sharing-en-1743765884141","value":{"component":{"id":"custom.widget.Social_Sharing","template":{"id":"Social_Sharing","markupLanguage":"HANDLEBARS","style":".social-share {\n .sharing-options {\n position: relative;\n margin: 0;\n padding: 0;\n line-height: 10px;\n display: flex;\n justify-content: left;\n gap: 5px;\n list-style-type: none;\n li {\n text-align: left;\n a {\n min-width: 30px;\n min-height: 30px;\n display: block;\n padding: 1px;\n .social-share-linkedin {\n img {\n background-color: rgb(0, 119, 181);\n }\n }\n .social-share-facebook {\n img {\n background-color: rgb(59, 89, 152);\n }\n }\n .social-share-x {\n img {\n background-color: rgb(0, 0, 0);\n }\n }\n .social-share-rss {\n img {\n background-color: rgb(0, 0, 0);\n }\n }\n .social-share-reddit {\n img {\n background-color: rgb(255, 69, 0);\n }\n }\n .social-share-email {\n img {\n background-color: rgb(132, 132, 132);\n }\n }\n }\n a {\n img {\n height: 2rem;\n }\n }\n }\n }\n}\n","texts":null,"defaults":{"config":{"applicablePages":[],"description":"Adds buttons to share to various social media websites","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"components":[{"id":"custom.widget.Social_Sharing","form":null,"config":null,"props":[],"__typename":"Component"}],"grouping":"CUSTOM","__typename":"ComponentTemplate"},"properties":{"config":{"applicablePages":[],"description":"Adds buttons to share to various social media websites","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"form":null,"__typename":"Component","localOverride":false},"globalCss":{"css":".custom_widget_Social_Sharing_social-share_c7xxz_1 {\n .custom_widget_Social_Sharing_sharing-options_c7xxz_2 {\n position: relative;\n margin: 0;\n padding: 0;\n line-height: 0.625rem;\n display: flex;\n justify-content: left;\n gap: 0.3125rem;\n list-style-type: none;\n li {\n text-align: left;\n a {\n min-width: 1.875rem;\n min-height: 1.875rem;\n display: block;\n padding: 0.0625rem;\n .custom_widget_Social_Sharing_social-share-linkedin_c7xxz_18 {\n img {\n background-color: rgb(0, 119, 181);\n }\n }\n .custom_widget_Social_Sharing_social-share-facebook_c7xxz_23 {\n img {\n background-color: rgb(59, 89, 152);\n }\n }\n .custom_widget_Social_Sharing_social-share-x_c7xxz_28 {\n img {\n background-color: rgb(0, 0, 0);\n }\n }\n .custom_widget_Social_Sharing_social-share-rss_c7xxz_33 {\n img {\n background-color: rgb(0, 0, 0);\n }\n }\n .custom_widget_Social_Sharing_social-share-reddit_c7xxz_38 {\n img {\n background-color: rgb(255, 69, 0);\n }\n }\n .custom_widget_Social_Sharing_social-share-email_c7xxz_43 {\n img {\n background-color: rgb(132, 132, 132);\n }\n }\n }\n a {\n img {\n height: 2rem;\n }\n }\n }\n }\n}\n","tokens":{"social-share":"custom_widget_Social_Sharing_social-share_c7xxz_1","sharing-options":"custom_widget_Social_Sharing_sharing-options_c7xxz_2","social-share-linkedin":"custom_widget_Social_Sharing_social-share-linkedin_c7xxz_18","social-share-facebook":"custom_widget_Social_Sharing_social-share-facebook_c7xxz_23","social-share-x":"custom_widget_Social_Sharing_social-share-x_c7xxz_28","social-share-rss":"custom_widget_Social_Sharing_social-share-rss_c7xxz_33","social-share-reddit":"custom_widget_Social_Sharing_social-share-reddit_c7xxz_38","social-share-email":"custom_widget_Social_Sharing_social-share-email_c7xxz_43"}},"form":null},"localOverride":false},"CachedAsset:component:custom.widget.MicrosoftFooter-en-1743765884141":{"__typename":"CachedAsset","id":"component:custom.widget.MicrosoftFooter-en-1743765884141","value":{"component":{"id":"custom.widget.MicrosoftFooter","template":{"id":"MicrosoftFooter","markupLanguage":"HANDLEBARS","style":".context-uhf {\n min-width: 280px;\n font-size: 15px;\n box-sizing: border-box;\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n & *,\n & *:before,\n & *:after {\n box-sizing: inherit;\n }\n a.c-uhff-link {\n color: #616161;\n word-break: break-word;\n text-decoration: none;\n }\n &a:link,\n &a:focus,\n &a:hover,\n &a:active,\n &a:visited {\n text-decoration: none;\n color: inherit;\n }\n & div {\n font-family: 'Segoe UI', SegoeUI, 'Helvetica Neue', Helvetica, Arial, sans-serif;\n }\n}\n.c-uhff {\n background: #f2f2f2;\n margin: -1.5625;\n width: auto;\n height: auto;\n}\n.c-uhff-nav {\n margin: 0 auto;\n max-width: calc(1600px + 10%);\n padding: 0 5%;\n box-sizing: inherit;\n &:before,\n &:after {\n content: ' ';\n display: table;\n clear: left;\n }\n @media only screen and (max-width: 1083px) {\n padding-left: 12px;\n }\n .c-heading-4 {\n color: #616161;\n word-break: break-word;\n font-size: 15px;\n line-height: 20px;\n padding: 36px 0 4px;\n font-weight: 600;\n }\n .c-uhff-nav-row {\n .c-uhff-nav-group {\n display: block;\n float: left;\n min-height: 1px;\n vertical-align: text-top;\n padding: 0 12px;\n width: 100%;\n zoom: 1;\n &:first-child {\n padding-left: 0;\n @media only screen and (max-width: 1083px) {\n padding-left: 12px;\n }\n }\n @media only screen and (min-width: 540px) and (max-width: 1082px) {\n width: 33.33333%;\n }\n @media only screen and (min-width: 1083px) {\n width: 16.6666666667%;\n }\n ul.c-list.f-bare {\n font-size: 11px;\n line-height: 16px;\n margin-top: 0;\n margin-bottom: 0;\n padding-left: 0;\n list-style-type: none;\n li {\n word-break: break-word;\n padding: 8px 0;\n margin: 0;\n }\n }\n }\n }\n}\n.c-uhff-base {\n background: #f2f2f2;\n margin: 0 auto;\n max-width: calc(1600px + 10%);\n padding: 30px 5% 16px;\n &:before,\n &:after {\n content: ' ';\n display: table;\n }\n &:after {\n clear: both;\n }\n a.c-uhff-ccpa {\n font-size: 11px;\n line-height: 16px;\n float: left;\n margin: 3px 0;\n }\n a.c-uhff-ccpa:hover {\n text-decoration: underline;\n }\n ul.c-list {\n font-size: 11px;\n line-height: 16px;\n float: right;\n margin: 3px 0;\n color: #616161;\n li {\n padding: 0 24px 4px 0;\n display: inline-block;\n }\n }\n .c-list.f-bare {\n padding-left: 0;\n list-style-type: none;\n }\n @media only screen and (max-width: 1083px) {\n display: flex;\n flex-wrap: wrap;\n padding: 30px 24px 16px;\n }\n}\n","texts":{"New tab":"What's New","New 1":"Surface Laptop Studio 2","New 2":"Surface Laptop Go 3","New 3":"Surface Pro 9","New 4":"Surface Laptop 5","New 5":"Surface Studio 2+","New 6":"Copilot in Windows","New 7":"Microsoft 365","New 8":"Windows 11 apps","Store tab":"Microsoft Store","Store 1":"Account Profile","Store 2":"Download Center","Store 3":"Microsoft Store Support","Store 4":"Returns","Store 5":"Order tracking","Store 6":"Certified Refurbished","Store 7":"Microsoft Store Promise","Store 8":"Flexible Payments","Education tab":"Education","Edu 1":"Microsoft in education","Edu 2":"Devices for education","Edu 3":"Microsoft Teams for Education","Edu 4":"Microsoft 365 Education","Edu 5":"How to buy for your school","Edu 6":"Educator Training and development","Edu 7":"Deals for students and parents","Edu 8":"Azure for students","Business tab":"Business","Bus 1":"Microsoft Cloud","Bus 2":"Microsoft Security","Bus 3":"Dynamics 365","Bus 4":"Microsoft 365","Bus 5":"Microsoft Power Platform","Bus 6":"Microsoft Teams","Bus 7":"Microsoft Industry","Bus 8":"Small Business","Developer tab":"Developer & IT","Dev 1":"Azure","Dev 2":"Developer Center","Dev 3":"Documentation","Dev 4":"Microsoft Learn","Dev 5":"Microsoft Tech Community","Dev 6":"Azure Marketplace","Dev 7":"AppSource","Dev 8":"Visual Studio","Company tab":"Company","Com 1":"Careers","Com 2":"About Microsoft","Com 3":"Company News","Com 4":"Privacy at Microsoft","Com 5":"Investors","Com 6":"Diversity and inclusion","Com 7":"Accessiblity","Com 8":"Sustainibility"},"defaults":{"config":{"applicablePages":[],"description":"The Microsoft Footer","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"components":[{"id":"custom.widget.MicrosoftFooter","form":null,"config":null,"props":[],"__typename":"Component"}],"grouping":"CUSTOM","__typename":"ComponentTemplate"},"properties":{"config":{"applicablePages":[],"description":"The Microsoft Footer","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"form":null,"__typename":"Component","localOverride":false},"globalCss":{"css":".custom_widget_MicrosoftFooter_context-uhf_f95yq_1 {\n min-width: 17.5rem;\n font-size: 0.9375rem;\n box-sizing: border-box;\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n & *,\n & *:before,\n & *:after {\n box-sizing: inherit;\n }\n a.custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12 {\n color: #616161;\n word-break: break-word;\n text-decoration: none;\n }\n &a:link,\n &a:focus,\n &a:hover,\n &a:active,\n &a:visited {\n text-decoration: none;\n color: inherit;\n }\n & div {\n font-family: 'Segoe UI', SegoeUI, 'Helvetica Neue', Helvetica, Arial, sans-serif;\n }\n}\n.custom_widget_MicrosoftFooter_c-uhff_f95yq_12 {\n background: #f2f2f2;\n margin: -1.5625;\n width: auto;\n height: auto;\n}\n.custom_widget_MicrosoftFooter_c-uhff-nav_f95yq_35 {\n margin: 0 auto;\n max-width: calc(100rem + 10%);\n padding: 0 5%;\n box-sizing: inherit;\n &:before,\n &:after {\n content: ' ';\n display: table;\n clear: left;\n }\n @media only screen and (max-width: 1083px) {\n padding-left: 0.75rem;\n }\n .custom_widget_MicrosoftFooter_c-heading-4_f95yq_49 {\n color: #616161;\n word-break: break-word;\n font-size: 0.9375rem;\n line-height: 1.25rem;\n padding: 2.25rem 0 0.25rem;\n font-weight: 600;\n }\n .custom_widget_MicrosoftFooter_c-uhff-nav-row_f95yq_57 {\n .custom_widget_MicrosoftFooter_c-uhff-nav-group_f95yq_58 {\n display: block;\n float: left;\n min-height: 0.0625rem;\n vertical-align: text-top;\n padding: 0 0.75rem;\n width: 100%;\n zoom: 1;\n &:first-child {\n padding-left: 0;\n @media only screen and (max-width: 1083px) {\n padding-left: 0.75rem;\n }\n }\n @media only screen and (min-width: 540px) and (max-width: 1082px) {\n width: 33.33333%;\n }\n @media only screen and (min-width: 1083px) {\n width: 16.6666666667%;\n }\n ul.custom_widget_MicrosoftFooter_c-list_f95yq_78.custom_widget_MicrosoftFooter_f-bare_f95yq_78 {\n font-size: 0.6875rem;\n line-height: 1rem;\n margin-top: 0;\n margin-bottom: 0;\n padding-left: 0;\n list-style-type: none;\n li {\n word-break: break-word;\n padding: 0.5rem 0;\n margin: 0;\n }\n }\n }\n }\n}\n.custom_widget_MicrosoftFooter_c-uhff-base_f95yq_94 {\n background: #f2f2f2;\n margin: 0 auto;\n max-width: calc(100rem + 10%);\n padding: 1.875rem 5% 1rem;\n &:before,\n &:after {\n content: ' ';\n display: table;\n }\n &:after {\n clear: both;\n }\n a.custom_widget_MicrosoftFooter_c-uhff-ccpa_f95yq_107 {\n font-size: 0.6875rem;\n line-height: 1rem;\n float: left;\n margin: 0.1875rem 0;\n }\n a.custom_widget_MicrosoftFooter_c-uhff-ccpa_f95yq_107:hover {\n text-decoration: underline;\n }\n ul.custom_widget_MicrosoftFooter_c-list_f95yq_78 {\n font-size: 0.6875rem;\n line-height: 1rem;\n float: right;\n margin: 0.1875rem 0;\n color: #616161;\n li {\n padding: 0 1.5rem 0.25rem 0;\n display: inline-block;\n }\n }\n .custom_widget_MicrosoftFooter_c-list_f95yq_78.custom_widget_MicrosoftFooter_f-bare_f95yq_78 {\n padding-left: 0;\n list-style-type: none;\n }\n @media only screen and (max-width: 1083px) {\n display: flex;\n flex-wrap: wrap;\n padding: 1.875rem 1.5rem 1rem;\n }\n}\n","tokens":{"context-uhf":"custom_widget_MicrosoftFooter_context-uhf_f95yq_1","c-uhff-link":"custom_widget_MicrosoftFooter_c-uhff-link_f95yq_12","c-uhff":"custom_widget_MicrosoftFooter_c-uhff_f95yq_12","c-uhff-nav":"custom_widget_MicrosoftFooter_c-uhff-nav_f95yq_35","c-heading-4":"custom_widget_MicrosoftFooter_c-heading-4_f95yq_49","c-uhff-nav-row":"custom_widget_MicrosoftFooter_c-uhff-nav-row_f95yq_57","c-uhff-nav-group":"custom_widget_MicrosoftFooter_c-uhff-nav-group_f95yq_58","c-list":"custom_widget_MicrosoftFooter_c-list_f95yq_78","f-bare":"custom_widget_MicrosoftFooter_f-bare_f95yq_78","c-uhff-base":"custom_widget_MicrosoftFooter_c-uhff-base_f95yq_94","c-uhff-ccpa":"custom_widget_MicrosoftFooter_c-uhff-ccpa_f95yq_107"}},"form":null},"localOverride":false},"CachedAsset:text:en_US-components/community/Breadcrumb-1743095130000":{"__typename":"CachedAsset","id":"text:en_US-components/community/Breadcrumb-1743095130000","value":{"navLabel":"Breadcrumbs","dropdown":"Additional parent page navigation"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageBanner-1743095130000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageBanner-1743095130000","value":{"messageMarkedAsSpam":"This post has been marked as spam","messageMarkedAsSpam@board:TKB":"This article has been marked as spam","messageMarkedAsSpam@board:BLOG":"This post has been marked as spam","messageMarkedAsSpam@board:FORUM":"This discussion has been marked as spam","messageMarkedAsSpam@board:OCCASION":"This event has been marked as spam","messageMarkedAsSpam@board:IDEA":"This idea has been marked as spam","manageSpam":"Manage Spam","messageMarkedAsAbuse":"This post has been marked as abuse","messageMarkedAsAbuse@board:TKB":"This article has been marked as abuse","messageMarkedAsAbuse@board:BLOG":"This post has been marked as abuse","messageMarkedAsAbuse@board:FORUM":"This discussion has been marked as abuse","messageMarkedAsAbuse@board:OCCASION":"This event has been marked as abuse","messageMarkedAsAbuse@board:IDEA":"This idea has been marked as abuse","preModCommentAuthorText":"This comment will be published as soon as it is approved","preModCommentModeratorText":"This comment is awaiting moderation","messageMarkedAsOther":"This post has been rejected due to other reasons","messageMarkedAsOther@board:TKB":"This article has been rejected due to other reasons","messageMarkedAsOther@board:BLOG":"This post has been rejected due to other reasons","messageMarkedAsOther@board:FORUM":"This discussion has been rejected due to other reasons","messageMarkedAsOther@board:OCCASION":"This event has been rejected due to other reasons","messageMarkedAsOther@board:IDEA":"This idea has been rejected due to other reasons","messageArchived":"This post was archived on {date}","relatedUrl":"View Related Content","relatedContentText":"Showing related content","archivedContentLink":"View Archived Content"},"localOverride":false},"Category:category:Exchange":{"__typename":"Category","id":"category:Exchange","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:Planner":{"__typename":"Category","id":"category:Planner","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:Outlook":{"__typename":"Category","id":"category:Outlook","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:Community-Info-Center":{"__typename":"Category","id":"category:Community-Info-Center","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:EducationSector":{"__typename":"Category","id":"category:EducationSector","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:DrivingAdoption":{"__typename":"Category","id":"category:DrivingAdoption","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:Azure":{"__typename":"Category","id":"category:Azure","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:Windows-Server":{"__typename":"Category","id":"category:Windows-Server","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:SQL-Server":{"__typename":"Category","id":"category:SQL-Server","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:MicrosoftTeams":{"__typename":"Category","id":"category:MicrosoftTeams","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:PublicSector":{"__typename":"Category","id":"category:PublicSector","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:microsoft365":{"__typename":"Category","id":"category:microsoft365","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:IoT":{"__typename":"Category","id":"category:IoT","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:HealthcareAndLifeSciences":{"__typename":"Category","id":"category:HealthcareAndLifeSciences","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:SMB":{"__typename":"Category","id":"category:SMB","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:ITOpsTalk":{"__typename":"Category","id":"category:ITOpsTalk","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:microsoft-endpoint-manager":{"__typename":"Category","id":"category:microsoft-endpoint-manager","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:MicrosoftLearn":{"__typename":"Category","id":"category:MicrosoftLearn","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Blog:board:MicrosoftLearnBlog":{"__typename":"Blog","id":"board:MicrosoftLearnBlog","blogPolicies":{"__typename":"BlogPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}},"boardPolicies":{"__typename":"BoardPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:MicrosoftMechanics":{"__typename":"Category","id":"category:MicrosoftMechanics","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:StartupsatMicrosoft":{"__typename":"Category","id":"category:StartupsatMicrosoft","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:PartnerCommunity":{"__typename":"Category","id":"category:PartnerCommunity","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:Windows":{"__typename":"Category","id":"category:Windows","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:microsoft-security":{"__typename":"Category","id":"category:microsoft-security","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"QueryVariables:TopicReplyList:message:4302729:44":{"__typename":"QueryVariables","id":"TopicReplyList:message:4302729:44","value":{"id":"message:4302729","first":10,"sorts":{"postTime":{"direction":"DESC"}},"repliesFirst":3,"repliesFirstDepthThree":1,"repliesSorts":{"postTime":{"direction":"DESC"}},"useAvatar":true,"useAuthorLogin":true,"useAuthorRank":true,"useBody":true,"useKudosCount":true,"useTimeToRead":false,"useMedia":false,"useReadOnlyIcon":false,"useRepliesCount":true,"useSearchSnippet":false,"useAcceptedSolutionButton":false,"useSolvedBadge":false,"useAttachments":false,"attachmentsFirst":5,"useTags":true,"useNodeAncestors":false,"useUserHoverCard":false,"useNodeHoverCard":false,"useModerationStatus":true,"usePreviewSubjectModal":false,"useMessageStatus":true}},"ROOT_MUTATION":{"__typename":"Mutation"},"CachedAsset:text:en_US-components/community/Navbar-1743095130000":{"__typename":"CachedAsset","id":"text:en_US-components/community/Navbar-1743095130000","value":{"community":"Community Home","inbox":"Inbox","manageContent":"Manage Content","tos":"Terms of Service","forgotPassword":"Forgot Password","themeEditor":"Theme Editor","edit":"Edit Navigation Bar","skipContent":"Skip to content","gxcuf89792":"Tech Community","external-1":"Events","s-m-b":"Small and Medium Businesses","windows-server":"Windows Server","education-sector":"Education Sector","driving-adoption":"Driving Adoption","microsoft-learn":"Microsoft Learn","s-q-l-server":"SQL Server","partner-community":"Microsoft Partner Community","microsoft365":"Microsoft 365","external-9":".NET","external-8":"Teams","external-7":"Github","products-services":"Products","external-6":"Power Platform","communities-1":"Topics","external-5":"Microsoft Security","planner":"Planner","external-4":"Microsoft 365","external-3":"Dynamics 365","azure":"Azure","healthcare-and-life-sciences":"Healthcare and Life Sciences","external-2":"Azure","microsoft-mechanics":"Microsoft Mechanics","microsoft-learn-1":"Community","external-10":"Learning Room Directory","microsoft-learn-blog":"Blog","windows":"Windows","i-t-ops-talk":"ITOps Talk","external-link-1":"View All","microsoft-securityand-compliance":"Microsoft Security","public-sector":"Public Sector","community-info-center":"Lounge","external-link-2":"View All","microsoft-teams":"Microsoft Teams","external":"Blogs","microsoft-endpoint-manager":"Microsoft Intune and Configuration Manager","startupsat-microsoft":"Startups at Microsoft","exchange":"Exchange","a-i":"AI and Machine Learning","io-t":"Internet of Things (IoT)","outlook":"Outlook","external-link":"Community Hubs","communities":"Products"},"localOverride":false},"CachedAsset:text:en_US-components/community/NavbarHamburgerDropdown-1743095130000":{"__typename":"CachedAsset","id":"text:en_US-components/community/NavbarHamburgerDropdown-1743095130000","value":{"hamburgerLabel":"Side Menu"},"localOverride":false},"CachedAsset:text:en_US-components/community/BrandLogo-1743095130000":{"__typename":"CachedAsset","id":"text:en_US-components/community/BrandLogo-1743095130000","value":{"logoAlt":"Khoros","themeLogoAlt":"Brand Logo"},"localOverride":false},"CachedAsset:text:en_US-components/community/NavbarTextLinks-1743095130000":{"__typename":"CachedAsset","id":"text:en_US-components/community/NavbarTextLinks-1743095130000","value":{"more":"More"},"localOverride":false},"CachedAsset:text:en_US-components/authentication/AuthenticationLink-1743095130000":{"__typename":"CachedAsset","id":"text:en_US-components/authentication/AuthenticationLink-1743095130000","value":{"title.login":"Sign In","title.registration":"Register","title.forgotPassword":"Forgot Password","title.multiAuthLogin":"Sign In"},"localOverride":false},"CachedAsset:text:en_US-components/nodes/NodeLink-1743095130000":{"__typename":"CachedAsset","id":"text:en_US-components/nodes/NodeLink-1743095130000","value":{"place":"Place {name}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageView/MessageViewStandard-1743095130000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageView/MessageViewStandard-1743095130000","value":{"anonymous":"Anonymous","author":"{messageAuthorLogin}","authorBy":"{messageAuthorLogin}","board":"{messageBoardTitle}","replyToUser":" to {parentAuthor}","showMoreReplies":"Show More","replyText":"Reply","repliesText":"Replies","markedAsSolved":"Marked as Solved","movedMessagePlaceholder.BLOG":"{count, plural, =0 {This comment has been} other {These comments have been} }","movedMessagePlaceholder.TKB":"{count, plural, =0 {This comment has been} other {These comments have been} }","movedMessagePlaceholder.FORUM":"{count, plural, =0 {This reply has been} other {These replies have been} }","movedMessagePlaceholder.IDEA":"{count, plural, =0 {This comment has been} other {These comments have been} }","movedMessagePlaceholder.OCCASION":"{count, plural, =0 {This comment has been} other {These comments have been} }","movedMessagePlaceholderUrlText":"moved.","messageStatus":"Status: ","statusChanged":"Status changed: {previousStatus} to {currentStatus}","statusAdded":"Status added: {status}","statusRemoved":"Status removed: {status}","labelExpand":"expand replies","labelCollapse":"collapse replies","unhelpfulReason.reason1":"Content is outdated","unhelpfulReason.reason2":"Article is missing information","unhelpfulReason.reason3":"Content is for a different Product","unhelpfulReason.reason4":"Doesn't match what I was searching for"},"localOverride":false},"CachedAsset:text:en_US-components/messages/ThreadedReplyList-1743095130000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/ThreadedReplyList-1743095130000","value":{"title":"{count, plural, one{# Reply} other{# Replies}}","title@board:BLOG":"{count, plural, one{# Comment} other{# Comments}}","title@board:TKB":"{count, plural, one{# Comment} other{# Comments}}","title@board:IDEA":"{count, plural, one{# Comment} other{# Comments}}","title@board:OCCASION":"{count, plural, one{# Comment} other{# Comments}}","noRepliesTitle":"No Replies","noRepliesTitle@board:BLOG":"No Comments","noRepliesTitle@board:TKB":"No Comments","noRepliesTitle@board:IDEA":"No Comments","noRepliesTitle@board:OCCASION":"No Comments","noRepliesDescription":"Be the first to reply","noRepliesDescription@board:BLOG":"Be the first to comment","noRepliesDescription@board:TKB":"Be the first to comment","noRepliesDescription@board:IDEA":"Be the first to comment","noRepliesDescription@board:OCCASION":"Be the first to comment","messageReadOnlyAlert:BLOG":"Comments have been turned off for this post","messageReadOnlyAlert:TKB":"Comments have been turned off for this article","messageReadOnlyAlert:IDEA":"Comments have been turned off for this idea","messageReadOnlyAlert:FORUM":"Replies have been turned off for this discussion","messageReadOnlyAlert:OCCASION":"Comments have been turned off for this event"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageReplyCallToAction-1743095130000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageReplyCallToAction-1743095130000","value":{"leaveReply":"Leave a reply...","leaveReply@board:BLOG@message:root":"Leave a comment...","leaveReply@board:TKB@message:root":"Leave a comment...","leaveReply@board:IDEA@message:root":"Leave a comment...","leaveReply@board:OCCASION@message:root":"Leave a comment...","repliesTurnedOff.FORUM":"Replies are turned off for this topic","repliesTurnedOff.BLOG":"Comments are turned off for this topic","repliesTurnedOff.TKB":"Comments are turned off for this topic","repliesTurnedOff.IDEA":"Comments are turned off for this topic","repliesTurnedOff.OCCASION":"Comments are turned off for this topic","infoText":"Stop poking me!"},"localOverride":false},"CachedAsset:text:en_US-components/community/NavbarDropdownToggle-1743095130000":{"__typename":"CachedAsset","id":"text:en_US-components/community/NavbarDropdownToggle-1743095130000","value":{"ariaLabelClosed":"Press the down arrow to open the menu"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/common/QueryHandler-1743095130000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/QueryHandler-1743095130000","value":{"title":"Query Handler"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageCoverImage-1743095130000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageCoverImage-1743095130000","value":{"coverImageTitle":"Cover Image"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/nodes/NodeTitle-1743095130000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/nodes/NodeTitle-1743095130000","value":{"nodeTitle":"{nodeTitle, select, community {Community} other {{nodeTitle}}} "},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageTimeToRead-1743095130000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageTimeToRead-1743095130000","value":{"minReadText":"{min} MIN READ"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageSubject-1743095130000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageSubject-1743095130000","value":{"noSubject":"(no subject)"},"localOverride":false},"CachedAsset:text:en_US-components/users/UserLink-1743095130000":{"__typename":"CachedAsset","id":"text:en_US-components/users/UserLink-1743095130000","value":{"authorName":"View Profile: {author}","anonymous":"Anonymous"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/users/UserRank-1743095130000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/users/UserRank-1743095130000","value":{"rankName":"{rankName}","userRank":"Author rank {rankName}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageTime-1743095130000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageTime-1743095130000","value":{"postTime":"Published: {time}","lastPublishTime":"Last Update: {time}","conversation.lastPostingActivityTime":"Last posting activity time: {time}","conversation.lastPostTime":"Last post time: {time}","moderationData.rejectTime":"Rejected time: {time}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageBody-1743095130000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageBody-1743095130000","value":{"showMessageBody":"Show More","mentionsErrorTitle":"{mentionsType, select, board {Board} user {User} message {Message} other {}} No Longer Available","mentionsErrorMessage":"The {mentionsType} you are trying to view has been removed from the community.","videoProcessing":"Video is being processed. Please try again in a few minutes.","bannerTitle":"Video provider requires cookies to play the video. Accept to continue or {url} it directly on the provider's site.","buttonTitle":"Accept","urlText":"watch"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageCustomFields-1743095130000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageCustomFields-1743095130000","value":{"CustomField.default.label":"Value of {name}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageRevision-1743095130000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageRevision-1743095130000","value":{"lastUpdatedDatePublished":"{publishCount, plural, one{Published} other{Updated}} {date}","lastUpdatedDateDraft":"Created {date}","version":"Version {major}.{minor}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageReplyButton-1743095130000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageReplyButton-1743095130000","value":{"repliesCount":"{count}","title":"Reply","title@board:BLOG@message:root":"Comment","title@board:TKB@message:root":"Comment","title@board:IDEA@message:root":"Comment","title@board:OCCASION@message:root":"Comment"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageAuthorBio-1743095130000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageAuthorBio-1743095130000","value":{"sendMessage":"Send Message","actionMessage":"Follow this blog board to get notified when there's new activity","coAuthor":"CO-PUBLISHER","contributor":"CONTRIBUTOR","userProfile":"View Profile","iconlink":"Go to {name} {type}"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/users/UserAvatar-1743095130000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/users/UserAvatar-1743095130000","value":{"altText":"{login}'s avatar","altTextGeneric":"User's avatar"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/ranks/UserRankLabel-1743095130000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/ranks/UserRankLabel-1743095130000","value":{"altTitle":"Icon for {rankName} rank"},"localOverride":false},"CachedAsset:text:en_US-components/users/UserRegistrationDate-1743095130000":{"__typename":"CachedAsset","id":"text:en_US-components/users/UserRegistrationDate-1743095130000","value":{"noPrefix":"{date}","withPrefix":"Joined {date}"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/nodes/NodeAvatar-1743095130000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/nodes/NodeAvatar-1743095130000","value":{"altTitle":"Node avatar for {nodeTitle}"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/nodes/NodeDescription-1743095130000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/nodes/NodeDescription-1743095130000","value":{"description":"{description}"},"localOverride":false},"CachedAsset:text:en_US-components/tags/TagView/TagViewChip-1743095130000":{"__typename":"CachedAsset","id":"text:en_US-components/tags/TagView/TagViewChip-1743095130000","value":{"tagLabelName":"Tag name {tagName}"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/nodes/NodeIcon-1743095130000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/nodes/NodeIcon-1743095130000","value":{"contentType":"Content Type {style, select, FORUM {Forum} BLOG {Blog} TKB {Knowledge Base} IDEA {Ideas} OCCASION {Events} other {}} icon"},"localOverride":false}}}},"page":"/blogs/BlogMessagePage/BlogMessagePage","query":{"utm_source":"bluesky","utm_medium":"social","utm_campaign":"azure…","boardId":"azure-ai-services-blog","messageSubject":"raising-the-bar-for-rag-excellence-query-rewriting-and-new-semantic-ranker","messageId":"4302729"},"buildId":"HEhyUrv5OXNBIbfCLaOrw","runtimeConfig":{"buildInformationVisible":false,"logLevelApp":"info","logLevelMetrics":"info","openTelemetryClientEnabled":false,"openTelemetryConfigName":"o365","openTelemetryServiceVersion":"25.1.0","openTelemetryUniverse":"prod","openTelemetryCollector":"http://localhost:4318","openTelemetryRouteChangeAllowedTime":"5000","apolloDevToolsEnabled":false,"inboxMuteWipFeatureEnabled":false},"isFallback":false,"isExperimentalCompile":false,"dynamicIds":["./components/community/Navbar/NavbarWidget.tsx","./components/community/Breadcrumb/BreadcrumbWidget.tsx","./components/customComponent/CustomComponent/CustomComponent.tsx","./components/blogs/BlogArticleWidget/BlogArticleWidget.tsx","./components/external/components/ExternalComponent.tsx","./components/messages/MessageView/MessageViewStandard/MessageViewStandard.tsx","./components/messages/ThreadedReplyList/ThreadedReplyList.tsx","../shared/client/components/common/List/UnwrappedList/UnwrappedList.tsx","./components/tags/TagView/TagView.tsx","./components/tags/TagView/TagViewChip/TagViewChip.tsx"],"appGip":true,"scriptLoader":[{"id":"analytics","src":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/pagescripts/1730819800000/analytics.js?page.id=BlogMessagePage&entity.id=board%3Aazure-ai-services-blog&entity.id=message%3A4302729","strategy":"afterInteractive"}]}