NEWVectors or files. Pick a path.Start →
    Back to DiagramsRetrieval Mechanics

    Your Supplier Renamed It, One Stage Still Finds It: A Matching Cascade That Reports Its Tier

    Four catalog items reconciled against a 13-item supplier list. An identical string matches at the exact tier, one hyphen falls through to fuzzy at 0.95, a reordered name falls through to vector at 0.9528, and a jute rug that has no counterpart is reported as not_in_supplier_catalog instead of being paired with the nearest wool rug.

    A portrait diagram. The headline reads Your supplier renamed it, one stage still finds it, with the subline that cross_compare walks a cascade, stops at the first tier that hits and reports which tier caught each item. A band shows the four tiers: exact (string identical), fuzzy (threshold 0.85), vector (threshold 0.94) and no match (falls through). A table pairs four catalog items with the supplier's name for them: Nylon Camping Tent matched exactly at 1.0000 as exact_match; Copper Cast Iron Pan matched Copper Cast-Iron Pan at the fuzzy tier, 0.9500, close_match; Velvet Armchair matched Armchair - Velvet at the vector tier, 0.9528, close_match; Jute Area Rug matched nothing and is labelled not_in_supplier_catalog. A footer shows the configured match_tiers and no_match_label over 13 reference documents.
    Four catalog items reconciled against a 13-item supplier list. An identical string matches at the exact tier, one hyphen falls through to fuzzy at 0.95, a reordered name falls through to vector at 0.9528, and a jute rug that has no counterpart is reported as not_in_supplier_catalog instead of being paired with the nearest wool rug.

    Reconciling two catalogs sounds like one question with one score, and the score is the least useful part of the answer. The cross_compare stage walks a cascade of matching tiers, exact string, then fuzzy, then embedding similarity, stops at the first tier that hits, and reports which tier produced each match. A match earned by an identical string and a match earned by an embedding are different claims about the data, and keeping the tier keeps that difference.

    On this run, four items from a 118-product catalog were reconciled against a 13-item supplier list. Nylon Camping Tent matched an identical string at the exact tier. Copper Cast Iron Pan met the supplier's Copper Cast-Iron Pan at the fuzzy tier, one hyphen apart, at 0.95. Velvet Armchair met Armchair - Velvet at the vector tier, a reordered name, at 0.9528. The rug is the row that matters: there were rugs in the supplier list, and a nearest-neighbour search would have paired the jute rug with a wool one at a confident-looking 0.918. The stage reported not_in_supplier_catalog instead.

    The thresholds on the diagram are measured, not defaults. This catalog names products as material plus product type, which makes it structurally self-similar: at a permissive vector floor of 0.60 every source matched something and the no-match label never appeared, with Steel Cast Iron Pan matching Steel Floor Lamp at 0.879. The floor has to sit above what a deliberately wrong pair scores. Then check separately that a no-match is reachable at all: thirteen references cannot cover 118 products, so a run with zero unmatched items is assigning neighbours, and the count of the no-match label is the diagnostic.

    One more thing to be straight about. The reference list was designed so that each tier has a real case: the hyphen variant and the reordered name exist to exercise fuzzy and vector matching. That is a fair test of the mechanism. Tuning a threshold until a wrong match looked right would be a different thing, and it did not happen here.

    Everything on the diagram traces to one run on 2026-09-07 against the demo namespace, with the rows generated from the saved response.

    Run this on your own data

    Mixpeek turns video, images, audio, and documents in your object storage into searchable, timestamped results through one API.

    Search your own data