OpenSearch Data Model

OpenSearch Data Model An architecture diagram generated by Archify. images · image_id / imohash / pe_embedding · Per project: op_prj_<slug>__<role> images image_id / imohash / pe_embedding items · crop_id / bbox_norm / class_id · Per project: op_prj_<slug>__<role> · region_boxes[] / vlm_* / probe_* items crop_id / bbox_norm / class_id region_boxes[] / vlm_* / probe_* classes · class_id / class_name / group · Per project: op_prj_<slug>__<role> classes class_id / class_name / group class_registry.json · data/projects/<slug>/ · Per project: op_prj_<slug>__<role> class_registry.json data/projects/<slug>/ configs · packs / profiles / keymap / settings · Per project: op_prj_<slug>__<role> · revisions + activations configs packs / profiles / keymap / settings revisions + activations umap_state · clustering reducer cache · Per project: op_prj_<slug>__<role> umap_state clustering reducer cache labels_confirmed · legacy, nothing writes it · Per project: op_prj_<slug>__<role> labels_confirmed legacy, nothing writes it exports/ + bakeoff_eval/ · data/projects/<slug>/ · Per project: op_prj_<slug>__<role> exports/ + bakeoff_eval/ data/projects/<slug>/ op_projects · one record per project · Global (no project) · status / revision / resources op_projects one record per project status / revision / resources op_global_configs · VLM endpoint registry · Global (no project) · no project op_global_configs VLM endpoint registry no project visual_search_global · image_id / CLIP 512-d · Visual search (core /ingest, /search) visual_search_global image_id / CLIP 512-d visual_search_faces · face_id / ArcFace 512-d · Visual search (core /ingest, /search) visual_search_faces face_id / ArcFace 512-d visual_search_vehicles / people · box / crop embedding · Visual search (core /ingest, /search) visual_search_vehicles / people box / crop embedding visual_search_ocr · text + boxes · Visual search (core /ingest, /search) visual_search_ocr text + boxes image_id class_id sync region_profile@rev class names resources image_id image_id image_id Per project: op_prj_<slug>__<role> Global (no project) Visual search (core /ingest, /search) Legend State Index File

Items carry the story

  • • One document per crop: geometry, class, provenance, cluster, VLM, probe and score fields
  • • region_boxes is a nested list: each box has its own state, text, cluster and embedding
  • • pe_embedding (1024-d) drives search, near-dup and clustering

Projects own their data

  • • Every project has six indexes named op_prj_<slug>__<role>; settings and projection state share its configs index
  • • Paths and index names are fixed when the project is created
  • • A guard refuses any request that names another project's index

Search is separate

  • • Core /ingest indexes are independent of every project
  • • All embeddings are k-NN vector fields