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

    Your Nylon Audit Needs the Backpacks Too: One Edge Hop Inside the Retriever

    "nylon camping tent" over 118 product images returns five tents, and three of them are polyester or canvas. One traverse_edge hop along a customer-owned same_material edge adds the seven nylon hiking backpacks that no image embedding would rank near a tent.

    A portrait diagram. The headline reads Your nylon audit needs the backpacks too, with the subline that semantic search matches what a thing looks like, three of these five tents are polyester or canvas, and material is a fact the customer owns, so it lives on a typed edge that one hop follows. The query is nylon camping tent. A feature_search band shows the top five results, two of five nylon: two Nylon Camping Tents, two Polyester Camping Tents and one Canvas Camping Tent, each with its SKU. A traverse_edge band follows same_material from each hit and adds seven Nylon Hiking Backpacks with their SKUs, marked plus seven nylon. A footer shows the edge written on the object, with type same_material and attributes material nylon and target_category backpack, and the stage config with edge_type same_material, direction out, include_source true and max_per_source 7.
    "nylon camping tent" over 118 product images returns five tents, and three of them are polyester or canvas. One traverse_edge hop along a customer-owned same_material edge adds the seven nylon hiking backpacks that no image embedding would rank near a tent.

    Search 118 product images for nylon camping tent and semantic similarity does what it is built to do: it returns five things that look like camping tents. Two are nylon. Three are polyester or canvas. For a supplier recall that needs every nylon item in the catalog, the result is wrong in both directions. It hands you three items of the wrong material, and it never shows the seven nylon hiking backpacks sitting in the same catalog, because no image embedding ranks a backpack near a tent.

    Material is a fact the customer already owns, so it belongs on an edge, where facts go. Mixpeek objects carry a root-level edges array of typed, directed, attributed relationships in the customer's own vocabulary. For this run, 98 same_material edges were written across the 14 nylon objects, linking every nylon tent to every nylon backpack and back.

    The traverse_edge stage then follows those edges inside the retriever. Five hits went into the stage and seven nylon backpacks came out, and the stage never looked at a pixel. Vector search finds the candidates, the edge hop expands them along a relationship the customer defined, and the whole thing is one retriever definition and one call. There is no second system to run and no graph database to keep in sync.

    Two notes worth carrying with the picture. Edges are read off documents, and the batch writer copies them from the object at extraction time, so edges written onto an already-extracted corpus stay inert until you re-extract. Scope that re-extraction to the linked objects, or you will pay for GPU embedding across the whole collection again. And this catalog is synthetic: its generator assigns material independently of the product, which is how a first build on steel produced rows titled Steel Cast Iron Pan. The diagram was rebuilt on nylon, where tent and backpack are both credibly nylon, so the numbers on it hold.

    Everything on the diagram traces to one run on 2026-09-06 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