{
  "summary": {
    "timestamp": "2026-02-09 11:08:47",
    "source": "src",
    "k": 10,
    "coarse_k": 100,
    "query_count": 7,
    "avg_jaccard_topk": 0.41421235160730957,
    "avg_rbo_topk": 0.22899068093857142,
    "staged": {
      "success": 7,
      "avg_latency_ms": 32009.68328570468
    },
    "dense_rerank": {
      "success": 7,
      "avg_latency_ms": 2783.3305999977247
    }
  },
  "comparisons": [
    {
      "query": "class Config",
      "staged": {
        "strategy": "staged",
        "query": "class Config",
        "latency_ms": 40875.45489999652,
        "num_results": 10,
        "topk_paths": [
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\api\\semantic.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\parsers\\factory.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\search\\graph_expander.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\watcher\\file_watcher.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\dir_index.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\lsp\\server.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\cli\\embedding_manager.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\api\\references.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\search\\chain_search.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\__init__.py"
        ],
        "stage_stats": {
          "stage_times": {
            "stage1_binary_ms": 10633.91399383545,
            "stage2_expand_ms": 12487.980365753174,
            "stage3_cluster_ms": 10781.587362289429,
            "stage4_rerank_ms": 6914.837837219238
          },
          "stage_counts": {
            "stage1_candidates": 100,
            "stage2_expanded": 149,
            "stage3_clustered": 20,
            "stage4_reranked": 20
          }
        },
        "error": null
      },
      "dense_rerank": {
        "strategy": "dense_rerank",
        "query": "class Config",
        "latency_ms": 3111.874899983406,
        "num_results": 10,
        "topk_paths": [
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\cli\\commands.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\dir_index.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\semantic\\chunker.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\semantic\\vector_store.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\search\\query_parser.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\semantic\\code_extractor.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\cli\\embedding_manager.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\migration_manager.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\registry.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\sqlite_store.py"
        ],
        "stage_stats": null,
        "error": null
      },
      "jaccard_topk": 0.1111111111111111,
      "rbo_topk": 0.06741929885142856,
      "staged_unique_files_topk": 10,
      "dense_unique_files_topk": 10,
      "staged_unique_dirs_topk": 8,
      "dense_unique_dirs_topk": 4
    },
    {
      "query": "def search",
      "staged": {
        "strategy": "staged",
        "query": "def search",
        "latency_ms": 38541.18510001898,
        "num_results": 10,
        "topk_paths": [
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\cli\\commands.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\global_index.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\search\\ranking.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\semantic\\ann_index.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\dir_index.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\index_tree.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\search\\graph_expander.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\search\\enrichment.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\semantic\\vector_store.py"
        ],
        "stage_stats": {
          "stage_times": {
            "stage1_binary_ms": 548.8920211791992,
            "stage2_expand_ms": 27176.724433898926,
            "stage3_cluster_ms": 8352.917671203613,
            "stage4_rerank_ms": 2392.6541805267334
          },
          "stage_counts": {
            "stage1_candidates": 100,
            "stage2_expanded": 101,
            "stage3_clustered": 20,
            "stage4_reranked": 20
          }
        },
        "error": null
      },
      "dense_rerank": {
        "strategy": "dense_rerank",
        "query": "def search",
        "latency_ms": 2652.75,
        "num_results": 10,
        "topk_paths": [
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\cli\\commands.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\search\\query_parser.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\semantic\\vector_store.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\search\\hybrid_search.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\index_tree.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\registry.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\dir_index.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\semantic\\code_extractor.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\search\\chain_search.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\semantic\\chunker.py"
        ],
        "stage_stats": null,
        "error": null
      },
      "jaccard_topk": 0.26666666666666666,
      "rbo_topk": 0.2983708721671428,
      "staged_unique_files_topk": 9,
      "dense_unique_files_topk": 10,
      "staged_unique_dirs_topk": 4,
      "dense_unique_dirs_topk": 4
    },
    {
      "query": "LspBridge",
      "staged": {
        "strategy": "staged",
        "query": "LspBridge",
        "latency_ms": 26319.983999997377,
        "num_results": 10,
        "topk_paths": [
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\vector_meta_store.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\search\\graph_expander.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\registry.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\semantic\\chunker.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\merkle_tree.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\cli\\commands.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\semantic\\code_extractor.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\sqlite_store.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\dir_index.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\global_index.py"
        ],
        "stage_stats": {
          "stage_times": {
            "stage1_binary_ms": 514.4834518432617,
            "stage2_expand_ms": 14329.241514205933,
            "stage3_cluster_ms": 9249.040842056274,
            "stage4_rerank_ms": 2159.9059104919434
          },
          "stage_counts": {
            "stage1_candidates": 100,
            "stage2_expanded": 100,
            "stage3_clustered": 20,
            "stage4_reranked": 20
          }
        },
        "error": null
      },
      "dense_rerank": {
        "strategy": "dense_rerank",
        "query": "LspBridge",
        "latency_ms": 2666.9745999872684,
        "num_results": 10,
        "topk_paths": [
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\cli\\commands.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\vector_meta_store.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\search\\graph_expander.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\registry.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\search\\hybrid_search.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\dir_index.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\index_tree.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\sqlite_store.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\semantic\\code_extractor.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\semantic\\chunker.py"
        ],
        "stage_stats": null,
        "error": null
      },
      "jaccard_topk": 0.6666666666666666,
      "rbo_topk": 0.3571430355128571,
      "staged_unique_files_topk": 10,
      "dense_unique_files_topk": 10,
      "staged_unique_dirs_topk": 4,
      "dense_unique_dirs_topk": 4
    },
    {
      "query": "graph expansion",
      "staged": {
        "strategy": "staged",
        "query": "graph expansion",
        "latency_ms": 25696.087299972773,
        "num_results": 10,
        "topk_paths": [
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\search\\chain_search.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\semantic\\gpu_support.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\cli\\commands.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\semantic\\code_extractor.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\cli\\embedding_manager.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\index_tree.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\vector_meta_store.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\global_index.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\dir_index.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\search\\hybrid_search.py"
        ],
        "stage_stats": {
          "stage_times": {
            "stage1_binary_ms": 560.4684352874756,
            "stage2_expand_ms": 13951.441526412964,
            "stage3_cluster_ms": 8879.387140274048,
            "stage4_rerank_ms": 2229.4514179229736
          },
          "stage_counts": {
            "stage1_candidates": 100,
            "stage2_expanded": 100,
            "stage3_clustered": 20,
            "stage4_reranked": 20
          }
        },
        "error": null
      },
      "dense_rerank": {
        "strategy": "dense_rerank",
        "query": "graph expansion",
        "latency_ms": 2544.8630999922752,
        "num_results": 10,
        "topk_paths": [
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\index_tree.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\migration_manager.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\search\\hybrid_search.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\search\\chain_search.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\global_index.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\dir_index.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\registry.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\cli\\commands.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\sqlite_store.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\semantic\\vector_store.py"
        ],
        "stage_stats": null,
        "error": null
      },
      "jaccard_topk": 0.42857142857142855,
      "rbo_topk": 0.13728894791142857,
      "staged_unique_files_topk": 10,
      "dense_unique_files_topk": 10,
      "staged_unique_dirs_topk": 4,
      "dense_unique_dirs_topk": 4
    },
    {
      "query": "clustering strategy",
      "staged": {
        "strategy": "staged",
        "query": "clustering strategy",
        "latency_ms": 27387.41929998994,
        "num_results": 10,
        "topk_paths": [
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\search\\ranking.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\registry.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\global_index.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\cli\\commands.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\cli\\embedding_manager.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\dir_index.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\semantic\\chunker.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\sqlite_store.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\cli\\__init__.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\semantic\\vector_store.py"
        ],
        "stage_stats": {
          "stage_times": {
            "stage1_binary_ms": 625.0262260437012,
            "stage2_expand_ms": 14211.347103118896,
            "stage3_cluster_ms": 10269.58680152893,
            "stage4_rerank_ms": 2208.007335662842
          },
          "stage_counts": {
            "stage1_candidates": 100,
            "stage2_expanded": 100,
            "stage3_clustered": 20,
            "stage4_reranked": 20
          }
        },
        "error": null
      },
      "dense_rerank": {
        "strategy": "dense_rerank",
        "query": "clustering strategy",
        "latency_ms": 2928.22389999032,
        "num_results": 10,
        "topk_paths": [
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\cli\\commands.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\index_tree.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\search\\hybrid_search.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\semantic\\code_extractor.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\semantic\\vector_store.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\search\\__init__.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\semantic\\gpu_support.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\search\\chain_search.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\search\\enrichment.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\semantic\\chunker.py"
        ],
        "stage_stats": null,
        "error": null
      },
      "jaccard_topk": 0.17647058823529413,
      "rbo_topk": 0.07116480920571429,
      "staged_unique_files_topk": 10,
      "dense_unique_files_topk": 10,
      "staged_unique_dirs_topk": 4,
      "dense_unique_dirs_topk": 4
    },
    {
      "query": "error handling",
      "staged": {
        "strategy": "staged",
        "query": "error handling",
        "latency_ms": 23732.33979997039,
        "num_results": 10,
        "topk_paths": [
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\search\\enrichment.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\dir_index.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\semantic\\vector_store.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\search\\hybrid_search.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\search\\chain_search.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\registry.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\semantic\\chunker.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\cli\\commands.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\__init__.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\index_tree.py"
        ],
        "stage_stats": {
          "stage_times": {
            "stage1_binary_ms": 504.0884017944336,
            "stage2_expand_ms": 12899.415016174316,
            "stage3_cluster_ms": 7881.027936935425,
            "stage4_rerank_ms": 2372.1535205841064
          },
          "stage_counts": {
            "stage1_candidates": 100,
            "stage2_expanded": 100,
            "stage3_clustered": 20,
            "stage4_reranked": 20
          }
        },
        "error": null
      },
      "dense_rerank": {
        "strategy": "dense_rerank",
        "query": "error handling",
        "latency_ms": 2946.439900010824,
        "num_results": 10,
        "topk_paths": [
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\__init__.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\registry.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\search\\hybrid_search.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\cli\\commands.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\index_tree.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\dir_index.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\search\\chain_search.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\semantic\\chunker.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\semantic\\code_extractor.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\cli\\embedding_manager.py"
        ],
        "stage_stats": null,
        "error": null
      },
      "jaccard_topk": 0.6666666666666666,
      "rbo_topk": 0.19158624676285715,
      "staged_unique_files_topk": 10,
      "dense_unique_files_topk": 10,
      "staged_unique_dirs_topk": 4,
      "dense_unique_dirs_topk": 4
    },
    {
      "query": "how to parse json",
      "staged": {
        "strategy": "staged",
        "query": "how to parse json",
        "latency_ms": 41515.31259998679,
        "num_results": 9,
        "topk_paths": [
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\cli\\commands.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\dir_index.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\index_tree.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\semantic\\code_extractor.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\search\\enrichment.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\registry.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\search\\ranking.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\search\\chain_search.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\search\\hybrid_search.py"
        ],
        "stage_stats": {
          "stage_times": {
            "stage1_binary_ms": 601.7005443572998,
            "stage2_expand_ms": 30052.319765090942,
            "stage3_cluster_ms": 8409.791231155396,
            "stage4_rerank_ms": 2371.1729049682617
          },
          "stage_counts": {
            "stage1_candidates": 100,
            "stage2_expanded": 100,
            "stage3_clustered": 20,
            "stage4_reranked": 20
          }
        },
        "error": null
      },
      "dense_rerank": {
        "strategy": "dense_rerank",
        "query": "how to parse json",
        "latency_ms": 2632.1878000199795,
        "num_results": 10,
        "topk_paths": [
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\cli\\commands.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\search\\chain_search.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\index_tree.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\semantic\\code_extractor.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\dir_index.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\search\\hybrid_search.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\search\\ranking.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\semantic\\chunker.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\storage\\sqlite_store.py",
          "d:\\claude_dms3\\codex-lens\\src\\codexlens\\semantic\\ann_index.py"
        ],
        "stage_stats": null,
        "error": null
      },
      "jaccard_topk": 0.5833333333333334,
      "rbo_topk": 0.4799615561585714,
      "staged_unique_files_topk": 9,
      "dense_unique_files_topk": 10,
      "staged_unique_dirs_topk": 4,
      "dense_unique_dirs_topk": 4
    }
  ]
}