Hierarchical ScaNN tree

계층형 ScaNN 트리

Narrow vector candidates through successive cluster levels.

···
html
<div class="v"><header><b>ScaNN TREE</b><span id="state"></span></header><main><div class="levels" id="levels"></div><div class="count" id="count"></div></main><footer>coarse → fine candidates</footer></div>
css
.v{width:min(92vw,660px);height:min(86vh,310px);box-sizing:border-box;padding:clamp(9px,2.5vmin,18px);border:1px solid var(--line);border-radius:14px;background:var(--surface);display:flex;flex-direction:column;gap:7px;color:var(--fg);font:500 clamp(15px,4.5vmin,19px)/1.25 var(--font-sans, sans-serif)}.v header,.v footer{display:flex;justify-content:space-between;align-items:center;gap:8px;white-space:nowrap}.v header b{color:var(--accent);font-size:.9em}.v header span,.v footer{color:var(--muted);font-size:.82em}.v main{flex:1;min-height:0;position:relative;overflow:hidden}.v .mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.v .active{background:var(--accent)!important;color:var(--bg)!important;border-color:var(--accent)!important}.v .muted{opacity:.45} .levels{height:70%;display:flex;align-items:center;justify-content:space-between;gap:5px}.level{flex:1;display:grid;grid-template-columns:repeat(2,1fr);gap:3px;align-content:center}.level i{height:17px;border:1px solid var(--line);border-radius:3px;background:var(--surface);transition:background .3s}.level i.on{background:var(--accent)}.arrow{color:var(--muted)}.count{text-align:center;color:var(--accent);font:600 .85em ui-monospace,monospace}
js
let n=0;function draw(){document.getElementById("levels").innerHTML=[2,4,6,8].map((c,i)=>"<div class=level>"+Array.from({length:c},(_,j)=>"<i class=\""+(i<=n&&j===Math.floor(c/2)?"on":"")+"\"></i>").join("")+"</div>"+(i<3?"<span class=arrow>→</span>":"")).join("");document.getElementById("count").textContent=["coarse cluster","subcluster","leaf group","vector candidates"][n];document.getElementById("state").textContent="level "+(n+1)+" / 4";n=(n+1)%4}draw();setInterval(draw,900)

A hierarchical ScaNN tree partitions vectors from coarse clusters into finer ones. A query follows promising branches so fewer vectors need direct comparison.

AlloyDB’s four-level tree is a preview as of 2026. More levels do not automatically improve recall; configuration and measured recall still matter.

When to use

Use it to understand staged candidate pruning in large vector indexes.

Open as page ↗