Share via

Azure AI Search - Hybrid Search (with text and vector query) + Semantic Ranking + Scoring Profile not working as intended. Is there a bug?

Alan Kong 20 Reputation points
2025-08-01T06:44:19.45+00:00

I had built up an Index on Azure AI Search for document search.

I am currently experimenting with the semantic ranking with scoring profile feature, release on the 2025-05-01 preview - https://learn.microsoft.com/en-us/azure/search/semantic-how-to-enable-scoring-profiles#example-query-and-response

The links mentioned that if the scoring profile and semantic configuration is enabled, the boosting from scoring profile are applied twice, one at the L1 initial ranking phase, two at the final L2 ranking phase where the rerankerScore will be boosted by the scoring profile.

In my query config, I have both text and vector queries (to do Hybrid Search).
Below are the settings.

query config

{
  "search": "next-generation wearables healthcare",
  "count": true,
  "vectorQueries": [
    {
      "kind": "text",
      "text": "next-generation wearables healthcare",
      "fields": "dir_research_area_vector,cv_research_area_vector,open_research_area_vector,publication_summary_vector,awarded_grants_str_vector"
    }
  ],
  "queryType": "semantic",
  "semanticConfiguration": "semantic_boost_config",
  "scoringProfile": "citation_boost",
  "answers": "extractive|count-3",
  "captions": "extractive|highlight-true",
  "queryLanguage": "en-us",
  "queryRewrites": "generative",
  "select": "id,fullname,school,designation,qualification,dir_research_area,cv_research_area,open_research_area,h_index,document_count,citation_count,publication_summary,awarded_grants_str,"
}

sample results:

    "value": [
        {
            "@search.score": 0.3685784637928009,
            "@search.rerankerScore": 2.525500535964966,
            "@search.rerankerBoostedScore": 2.525500535964966,
			"id": "bob",

I noticed that when i switch around the scoring profile, @search.score changes, showing the effect of the L1 scoring profile boosting. However for the L2 scoring profile boosting, I didnt not see any effect after playing around with several scoring profile config. Both the @search.rerankerScore and @search.rerankerBoostedScore are always the same for some reason.

When I remove the Vector Query portion in the query like so:

{
  "search": "next-generation wearables healthcare",
  "count": true,
  "queryType": "semantic",
  "semanticConfiguration": "semantic_boost_config",
  "scoringProfile": "citation_boost",
  "answers": "extractive|count-3",
  "captions": "extractive|highlight-true",
  "queryLanguage": "en-us",
  "queryRewrites": "generative",
  "select": "id,fullname,school,designation,qualification,dir_research_area,cv_research_area,open_research_area,h_index,document_count,citation_count,publication_summary,awarded_grants_str,"
}

the results shows there is boosting in the rerankerBoostedScore:

    "value": [
		{
            "@search.score": 1026.1346,
            "@search.rerankerScore": 2.525500535964966,
            "@search.rerankerBoostedScore": 9.408830537254095,
			"id": "bob"

the @search.score now doesnt take into account any vector search results and only uses text query only (BM25) - hence the large score values

interesting enough, the rerankerScore is the same as before. It can also been seen that the rerankerBoostedScore is adjusted by the scoring profile which is what i am expecting.

My index has both text and vector fields (there come in pairs with 1 text field, and 1 vector field generated from vectorizing the vector field), as well as numeric fields like citation_count, document_count and h_index which are used in the boosting scoring profile using magnitude functions.

Is there a bug for semantic ranking with scoring profile for hybrid search or vector query search?

I would expect, for the 1st example that the rerankerBoostedScore to be different for rerankerScore but its the same so there doesnt seem to be any scoring profile applied a 2nd time. Furthermore, when setting scoring profile functions, I only have the options to select the text field and not the vectorized fields which might led to the conclusion that semantic ranking with scoring profile is only available for textual queries and do not take into account vector queries.

Can anyone help or let me know if this is a bug or is working as intended?
For me, I can always apply a 2nd scoring boosting manually on my own but just wanna make sure since the documentation on the link isnt very clear.

Azure AI Search
Azure AI Search

An Azure search service with built-in artificial intelligence capabilities that enrich information to help identify and explore relevant content at scale.


Answer accepted by question author

  1. Siva Nair 835 Reputation points Microsoft External Staff Moderator
    2025-08-01T10:41:38.48+00:00

    Hi Alan Kong,

    This behavior is working as intended. The apparent lack of boosting in @search.rerankerBoostedScore during hybrid search with vector queries is due to current limitations in how Azure AI Search applies scoring profiles in semantic ranking.

    Why is @search.rerankerBoostedScore not changing in hybrid search?

    1. Semantic Ranker Only Applies to Textual Content
    • The semantic reranker (L2) does not use vector embeddings for reranking. It only applies to textual content from the initial result set4.
    • In hybrid search, the initial ranking is done using Reciprocal Rank Fusion (RRF), which merges text and vector results5.
    • If vector similarity dominates the top results, the semantic reranker may not have sufficient textual context to apply meaningful reranking or boosting.
    1. Scoring Profile Boosting at L2 Only Works with Functions
    • Boosting at the L2 phase (@search.rerankerBoostedScore) only applies if your scoring profile includes function-based boosting, such as:
      • magnitude (e.g., citation count)
      • freshness (e.g., publication date)
      • distance (e.g., geo-coordinates)
      • tags (string collections)
      • If your scoring profile only uses weighted text fields, it will not affect @search.rerankerBoostedScore

    Why does it work when vector queries are removed?

    When you remove vector queries:

    • The initial ranking is purely BM25-based (textual).
    • The semantic reranker has full access to textual context.
    • Function-based scoring profile boosts are applied successfully at L2, resulting in a boosted @search.rerankerBoostedScore.

    Limitations as per Microsoft Docs

    • Scoring profiles cannot reference vector fields.
    • Semantic reranker does not use vector embeddings.
    • Boosting at L2 only applies to scoring profile functions, not weighted text fields.
    • Hybrid search results may not benefit from L2 boosting if vector results dominate.

    This is not a bug, but a documented limitation of the current preview release (2025-05-01-preview). Your observations are accurate and align with how Azure AI Search is designed to work in hybrid scenarios.

    Recommendations

    1. Ensure your scoring profile uses function-based boosting (e.g., magnitude on citation_count, document_count, h_index).
    2. Consider post-processing reranker scores manually if hybrid search is essential and semantic boosting is insufficient.
    3. Monitor future updates to Azure AI Search for expanded support of vector-aware semantic reranking.

    Let me know if you have any further queries, happy to help you.

    Was this answer helpful?

    1 person found this answer helpful.
    0 comments No comments

0 additional answers

Sort by: Most helpful

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.