<mxfile host="app.diagrams.net" modified="2026-10-25T00:00:00.000Z" agent="OpenAI Codex" version="24.7.17" type="device"><diagram id="azure-ai-search-hybrid-retrieval" name="Azure AI Search Hybrid Retrieval"><mxGraphModel dx="1440" dy="920" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1440" pageHeight="920" math="0" shadow="0"><root><mxCell id="0"/><mxCell id="1" parent="0"/><mxCell id="s1" value="AZURE AI SEARCH QUERY PATH" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fffefa;fillOpacity=45;strokeColor=#222222;strokeWidth=2;dashed=1;dashPattern=8 6;fontColor=#676761;fontSize=14;fontStyle=1;verticalAlign=top;spacingTop=12;" vertex="1" parent="1"><mxGeometry x="225" y="220" width="960" height="470" as="geometry"/></mxCell><mxCell id="query" value="&lt;div style=&quot;text-align:left&quot;&gt;&lt;small&gt;QUERY&lt;/small&gt;&lt;br&gt;&lt;b&gt;User query&lt;/b&gt;&lt;br&gt;Exact terms or intent&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#efeee9;strokeColor=#222222;strokeWidth=2;fontColor=#222222;fontSize=16;spacing=12;arcSize=14;" vertex="1" parent="1"><mxGeometry x="45" y="390" width="190" height="122" as="geometry"/></mxCell><mxCell id="keyword" value="&lt;div style=&quot;text-align:left&quot;&gt;&lt;small&gt;TEXT&lt;/small&gt;&lt;br&gt;&lt;b&gt;Keyword search&lt;/b&gt;&lt;br&gt;BM25 · exact matches&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e4efe7;strokeColor=#222222;strokeWidth=2;fontColor=#222222;fontSize=16;spacing=12;arcSize=14;" vertex="1" parent="1"><mxGeometry x="300" y="295" width="225" height="120" as="geometry"/></mxCell><mxCell id="vector" value="&lt;div style=&quot;text-align:left&quot;&gt;&lt;small&gt;VECTORS&lt;/small&gt;&lt;br&gt;&lt;b&gt;Vector search&lt;/b&gt;&lt;br&gt;HNSW · semantic matches&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e2edf5;strokeColor=#222222;strokeWidth=2;fontColor=#222222;fontSize=16;spacing=12;arcSize=14;" vertex="1" parent="1"><mxGeometry x="300" y="510" width="225" height="120" as="geometry"/></mxCell><mxCell id="rrf" value="&lt;div style=&quot;text-align:left&quot;&gt;&lt;small&gt;FUSION&lt;/small&gt;&lt;br&gt;&lt;b&gt;RRF merge&lt;/b&gt;&lt;br&gt;Reciprocal Rank Fusion&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f6edcf;strokeColor=#222222;strokeWidth=2;fontColor=#222222;fontSize=16;spacing=12;arcSize=14;" vertex="1" parent="1"><mxGeometry x="625" y="390" width="210" height="122" as="geometry"/></mxCell><mxCell id="semantic" value="&lt;div style=&quot;text-align:left&quot;&gt;&lt;small&gt;RERANK&lt;/small&gt;&lt;br&gt;&lt;b&gt;Semantic ranker&lt;/b&gt;&lt;br&gt;Optional relevance pass&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f4e2df;strokeColor=#222222;strokeWidth=2;fontColor=#222222;fontSize=16;spacing=12;arcSize=14;" vertex="1" parent="1"><mxGeometry x="910" y="390" width="205" height="122" as="geometry"/></mxCell><mxCell id="context" value="&lt;div style=&quot;text-align:left&quot;&gt;&lt;small&gt;RESULT&lt;/small&gt;&lt;br&gt;&lt;b&gt;RAG context&lt;/b&gt;&lt;br&gt;Selected passages&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#efeee9;strokeColor=#222222;strokeWidth=2;fontColor=#222222;fontSize=16;spacing=12;arcSize=14;" vertex="1" parent="1"><mxGeometry x="1190" y="390" width="205" height="122" as="geometry"/></mxCell><mxCell id="e1" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#222222;strokeWidth=2;fontColor=#676761;fontSize=12;labelBackgroundColor=#fbfaf7;" edge="1" parent="1" source="query" target="keyword"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="e2" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#222222;strokeWidth=2;fontColor=#676761;fontSize=12;labelBackgroundColor=#fbfaf7;" edge="1" parent="1" source="query" target="vector"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="e3" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#222222;strokeWidth=2;fontColor=#676761;fontSize=12;labelBackgroundColor=#fbfaf7;" edge="1" parent="1" source="keyword" target="rrf"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="e4" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#222222;strokeWidth=2;fontColor=#676761;fontSize=12;labelBackgroundColor=#fbfaf7;" edge="1" parent="1" source="vector" target="rrf"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="e5" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#222222;strokeWidth=2;fontColor=#676761;fontSize=12;labelBackgroundColor=#fbfaf7;" edge="1" parent="1" source="rrf" target="semantic"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="e6" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#222222;strokeWidth=2;fontColor=#676761;fontSize=12;labelBackgroundColor=#fbfaf7;" edge="1" parent="1" source="semantic" target="context"><mxGeometry relative="1" as="geometry"/></mxCell></root></mxGraphModel></diagram></mxfile>