{
  "metadata": {
    "corpus_docs": 89,
    "query_count": 108,
    "runs": 3,
    "k": 5,
    "warmup_queries": 5,
    "timestamp": "2026-02-24T14:07:54"
  },
  "summaries": {
    "colbert-replace-bm25": {
      "competitor": "colbert-replace-bm25",
      "total_queries": 324,
      "runs": 3,
      "mrr": 0.5601851851851852,
      "mrr_ci": [
        0.5048739711934157,
        0.6080246913580247
      ],
      "ndcg_5": 0.573651810855178,
      "ndcg_5_ci": [
        0.5190917774239001,
        0.620976123552516
      ],
      "hit_rate_1": 0.5370370370370371,
      "hit_rate_5": 0.6018518518518519,
      "hit_rate_5_ci": [
        0.5462962962962963,
        0.6512345679012346
      ],
      "precision_5": 0.47469135802469137,
      "content_match": 0.8225943646996279,
      "latency_p50": 72.660584,
      "latency_p95": 93.522917,
      "latency_p99": 104.06575,
      "avg_tokens": 3222.3055555555557,
      "by_category": {
        "adversarial": {
          "mrr": 0.0,
          "mrr_ci": [
            0.0,
            0.0
          ],
          "hit_rate_5": 0.0,
          "hit_rate_5_ci": [
            0.0,
            0.0
          ],
          "ndcg_5": 0.0,
          "precision_5": 0.0,
          "count": 90
        },
        "lexical": {
          "mrr": 0.5916666666666667,
          "mrr_ci": [
            0.4971296296296297,
            0.6833796296296295
          ],
          "hit_rate_5": 0.7,
          "hit_rate_5_ci": [
            0.6,
            0.7888888888888889
          ],
          "ndcg_5": 0.6230845355072103,
          "precision_5": 0.4466666666666667,
          "count": 90
        },
        "semantic": {
          "mrr": 0.890625,
          "mrr_ci": [
            0.8385416666666666,
            0.9340711805555555
          ],
          "hit_rate_5": 0.9166666666666666,
          "hit_rate_5_ci": [
            0.8680555555555556,
            0.9583333333333334
          ],
          "ndcg_5": 0.901288739732144,
          "precision_5": 0.7888888888888889,
          "count": 144
        }
      }
    }
  },
  "details": {
    "colbert-replace-bm25": [
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "What is semantic search?",
        "category": "semantic",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/sample_docs/semantic-search.md",
          "tests/fixtures/sample_docs/vector-databases.md",
          "tests/fixtures/scale_docs/elasticsearch-basics.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.3333333333333333,
        "content_match": 1.0,
        "latency_ms": 74.2475,
        "tokens": 1192
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "vector database",
        "category": "semantic",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/sample_docs/vector-databases.md",
          "tests/fixtures/sample_docs/semantic-search.md",
          "tests/fixtures/scale_docs/data-lake-architecture.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.3333333333333333,
        "content_match": 1.0,
        "latency_ms": 86.54675,
        "tokens": 978
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "REST API design",
        "category": "semantic",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/sample_docs/api-design.md",
          "tests/fixtures/scale_docs/api-gateway-patterns.md",
          "tests/fixtures/scale_docs/api-gateway-patterns.md",
          "tests/fixtures/sample_docs/microservices.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.25,
        "content_match": 0.9333333333333333,
        "latency_ms": 64.662,
        "tokens": 3017
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "database normalization",
        "category": "semantic",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/sample_docs/database-design.md",
          "tests/fixtures/sample_docs/database-design.md",
          "tests/fixtures/scale_docs/sql-query-optimization.md",
          "tests/fixtures/scale_docs/nosql-patterns.md",
          "tests/fixtures/scale_docs/data-pipeline-design.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.4,
        "content_match": 0.7333333333333333,
        "latency_ms": 80.163916,
        "tokens": 1725
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "HTTP/2 vs HTTP/3 performance",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/http2-http3.md",
          "tests/fixtures/scale_docs/http2-http3.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 71.799,
        "tokens": 4425
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "PostgreSQL 15 internals",
        "category": "lexical",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/postgresql-internals.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 72.128791,
        "tokens": 3978
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "Apache Kafka 3.0 features",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/apache-kafka.md",
          "tests/fixtures/scale_docs/apache-kafka.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.8666666666666667,
        "latency_ms": 82.663542,
        "tokens": 5453
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "TLS 1.3 handshake process",
        "category": "lexical",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/tls-ssl.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 77.798125,
        "tokens": 3924
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "Kubernetes v1.24 removal of dockershim",
        "category": "lexical",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/kubernetes-architecture.md",
          "tests/fixtures/scale_docs/container-fundamentals.md",
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/scale_docs/kubernetes-architecture.md",
          "tests/fixtures/scale_docs/kubernetes-architecture.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.6,
        "content_match": 0.7333333333333333,
        "latency_ms": 91.5785,
        "tokens": 3821
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "gRPC over HTTP/2",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/grpc-protocol.md",
          "tests/fixtures/scale_docs/http2-http3.md",
          "tests/fixtures/scale_docs/http2-http3.md",
          "tests/fixtures/scale_docs/grpc-protocol.md",
          "tests/fixtures/scale_docs/grpc-protocol.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.6,
        "content_match": 1.0,
        "latency_ms": 74.663417,
        "tokens": 6548
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "Redis 7.0 Multi-part AOF",
        "category": "lexical",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/redis-data-structures.md",
          "tests/fixtures/scale_docs/redis-data-structures.md",
          "tests/fixtures/scale_docs/redis-data-structures.md",
          "tests/fixtures/scale_docs/helm-charts.md",
          "tests/fixtures/scale_docs/redis-data-structures.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.8,
        "content_match": 0.9333333333333333,
        "latency_ms": 79.420666,
        "tokens": 2023
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "Elasticsearch 8.x security changes",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/api-security.md",
          "tests/fixtures/scale_docs/elasticsearch-basics.md",
          "tests/fixtures/scale_docs/elasticsearch-basics.md",
          "tests/fixtures/scale_docs/monitoring-observability.md",
          "tests/fixtures/scale_docs/linux-logging.md"
        ],
        "rr": 0.5,
        "ndcg_5": 0.6309297535714575,
        "hit_rate_1": 0.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.4,
        "content_match": 0.6,
        "latency_ms": 91.404916,
        "tokens": 2093
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "OWASP Top 10 2021",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/owasp-top-10.md",
          "tests/fixtures/scale_docs/owasp-top-10.md",
          "tests/fixtures/scale_docs/security-audit-checklist.md",
          "tests/fixtures/scale_docs/vpn-tunneling.md",
          "tests/fixtures/scale_docs/security-audit-checklist.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.4,
        "content_match": 0.4,
        "latency_ms": 92.18525,
        "tokens": 1401
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "AVX-512 vector instructions",
        "category": "lexical",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/data-serialization.md",
          "tests/fixtures/scale_docs/data-serialization.md",
          "tests/fixtures/sample_docs/vector-databases.md",
          "tests/fixtures/scale_docs/cryptography-basics.md",
          "tests/fixtures/scale_docs/design-patterns-behavioral.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 83.002208,
        "tokens": 2953
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "TCP/IP layer 4",
        "category": "lexical",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/tcp-ip-fundamentals.md",
          "tests/fixtures/scale_docs/tcp-ip-fundamentals.md",
          "tests/fixtures/scale_docs/tcp-ip-fundamentals.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 64.495791,
        "tokens": 4329
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "IPv6 address format",
        "category": "lexical",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/dns-resolution.md",
          "tests/fixtures/scale_docs/firewall-rules.md",
          "tests/fixtures/scale_docs/tcp-ip-fundamentals.md",
          "tests/fixtures/scale_docs/cloud-networking.md",
          "tests/fixtures/scale_docs/data-serialization.md"
        ],
        "rr": 0.25,
        "ndcg_5": 0.43067655807339306,
        "hit_rate_1": 0.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.2,
        "content_match": 0.8,
        "latency_ms": 83.756958,
        "tokens": 1923
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "UUID v4 generation",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/scale_docs/testing-strategies.md",
          "tests/fixtures/scale_docs/linux-filesystem.md",
          "tests/fixtures/scale_docs/testing-strategies.md",
          "tests/fixtures/scale_docs/linux-filesystem.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": 0.2,
        "latency_ms": 77.983334,
        "tokens": 1852
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "0xEF hex code",
        "category": "lexical",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/api-security.md",
          "tests/fixtures/scale_docs/websocket-protocol.md",
          "tests/fixtures/scale_docs/cryptography-basics.md",
          "tests/fixtures/scale_docs/error-handling-patterns.md",
          "tests/fixtures/scale_docs/cryptography-basics.md"
        ],
        "rr": 0.3333333333333333,
        "ndcg_5": 0.5,
        "hit_rate_1": 0.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.4,
        "content_match": 0.6666666666666666,
        "latency_ms": 85.518042,
        "tokens": 1826
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "Python 3.10 match statement",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/functional-programming.md",
          "tests/fixtures/scale_docs/elasticsearch-basics.md",
          "tests/fixtures/scale_docs/error-handling-patterns.md",
          "tests/fixtures/scale_docs/error-handling-patterns.md",
          "tests/fixtures/scale_docs/data-serialization.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.2,
        "content_match": 0.7333333333333333,
        "latency_ms": 76.277875,
        "tokens": 1957
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "ISO 27001 compliance",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/compliance-frameworks.md",
          "tests/fixtures/scale_docs/compliance-frameworks.md",
          "tests/fixtures/scale_docs/compliance-frameworks.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 59.434625,
        "tokens": 5884
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "SOC2 Type II audit",
        "category": "lexical",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/compliance-frameworks.md",
          "tests/fixtures/scale_docs/compliance-frameworks.md",
          "tests/fixtures/scale_docs/compliance-frameworks.md",
          "tests/fixtures/scale_docs/security-audit-checklist.md",
          "tests/fixtures/scale_docs/security-audit-checklist.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.6,
        "content_match": 1.0,
        "latency_ms": 64.986959,
        "tokens": 5394
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "BGE-small-en-v1.5 model",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/data-quality.md",
          "tests/fixtures/scale_docs/service-mesh.md",
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/scale_docs/database-migrations.md",
          "tests/fixtures/scale_docs/vpn-tunneling.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": 0.2,
        "latency_ms": 91.760125,
        "tokens": 1702
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "ChromaDB v0.4.0",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/sample_docs/vector-databases.md",
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/scale_docs/container-security.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": 0.06666666666666667,
        "latency_ms": 83.592542,
        "tokens": 2795
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "MS-MARCO MiniLM L-6-v2",
        "category": "lexical",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/scale_docs/vpn-tunneling.md",
          "tests/fixtures/sample_docs/caching.md",
          "tests/fixtures/scale_docs/service-mesh.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": 0.3333333333333333,
        "latency_ms": 92.057833,
        "tokens": 1183
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "JWT RS256 signing",
        "category": "lexical",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/sample_docs/authentication.md",
          "tests/fixtures/scale_docs/api-gateway-patterns.md",
          "tests/fixtures/scale_docs/api-security.md",
          "tests/fixtures/scale_docs/tls-ssl.md",
          "tests/fixtures/scale_docs/api-security.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.2,
        "content_match": 0.6666666666666666,
        "latency_ms": 83.7265,
        "tokens": 2051
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "OAuth 2.0 PKCE flow",
        "category": "lexical",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/api-security.md",
          "tests/fixtures/scale_docs/api-security.md",
          "tests/fixtures/scale_docs/api-security.md",
          "tests/fixtures/scale_docs/api-security.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": 0.6,
        "latency_ms": 64.861833,
        "tokens": 5713
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "RAID 6 configurations",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/linux-filesystem.md",
          "tests/fixtures/scale_docs/ssh-configuration.md",
          "tests/fixtures/scale_docs/linux-filesystem.md",
          "tests/fixtures/scale_docs/linux-filesystem.md",
          "tests/fixtures/scale_docs/linux-filesystem.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": 0.2,
        "latency_ms": 82.792,
        "tokens": 3146
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "SQL-92 standards",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/data-quality.md",
          "tests/fixtures/scale_docs/data-quality.md",
          "tests/fixtures/scale_docs/sql-query-optimization.md",
          "tests/fixtures/scale_docs/sql-query-optimization.md",
          "tests/fixtures/scale_docs/data-pipeline-design.md"
        ],
        "rr": 0.3333333333333333,
        "ndcg_5": 0.6309297535714575,
        "hit_rate_1": 0.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.4,
        "content_match": 0.8,
        "latency_ms": 78.25525,
        "tokens": 3133
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "POSIX thread management",
        "category": "lexical",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/concurrency-patterns.md",
          "tests/fixtures/scale_docs/concurrency-patterns.md",
          "tests/fixtures/scale_docs/linux-performance-tuning.md",
          "tests/fixtures/scale_docs/cloud-storage-options.md",
          "tests/fixtures/scale_docs/linux-performance-tuning.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": 0.2727272727272727,
        "latency_ms": 68.247208,
        "tokens": 4374
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "systemd unit files",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/systemd-services.md",
          "tests/fixtures/scale_docs/systemd-services.md",
          "tests/fixtures/scale_docs/systemd-services.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 68.262708,
        "tokens": 3596
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "EXT4 filesystem limits",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/linux-filesystem.md",
          "tests/fixtures/scale_docs/linux-filesystem.md",
          "tests/fixtures/scale_docs/linux-filesystem.md",
          "tests/fixtures/scale_docs/linux-filesystem.md",
          "tests/fixtures/scale_docs/linux-performance-tuning.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.8,
        "content_match": 1.0,
        "latency_ms": 64.914084,
        "tokens": 4672
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "YAML 1.2 syntax",
        "category": "lexical",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/zero-trust-architecture.md",
          "tests/fixtures/scale_docs/helm-charts.md",
          "tests/fixtures/scale_docs/configuration-management.md",
          "tests/fixtures/scale_docs/api-gateway-patterns.md",
          "tests/fixtures/scale_docs/api-gateway-patterns.md"
        ],
        "rr": 0.3333333333333333,
        "ndcg_5": 0.5,
        "hit_rate_1": 0.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.2,
        "content_match": 0.8,
        "latency_ms": 81.94425,
        "tokens": 991
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "Docker Compose v2",
        "category": "lexical",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/container-fundamentals.md",
          "tests/fixtures/scale_docs/dependency-injection.md",
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/scale_docs/container-fundamentals.md",
          "tests/fixtures/scale_docs/container-fundamentals.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.6,
        "content_match": 1.0,
        "latency_ms": 69.590834,
        "tokens": 3238
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "AWS IAM policies",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/secrets-management.md",
          "tests/fixtures/scale_docs/well-architected-framework.md",
          "tests/fixtures/scale_docs/secrets-management.md",
          "tests/fixtures/scale_docs/well-architected-framework.md",
          "tests/fixtures/scale_docs/secrets-management.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": 0.4,
        "latency_ms": 83.865916,
        "tokens": 1552
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "how to implement chaos engineering",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/chaos-engineering.md",
          "tests/fixtures/scale_docs/chaos-engineering.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.9333333333333333,
        "latency_ms": 57.294792,
        "tokens": 3871
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "benefits of event-driven architecture",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/event-driven-architecture.md",
          "tests/fixtures/scale_docs/event-driven-architecture.md",
          "tests/fixtures/scale_docs/event-driven-architecture.md",
          "tests/fixtures/scale_docs/event-driven-architecture.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.8,
        "latency_ms": 58.07975,
        "tokens": 4400
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "serverless vs containers",
        "category": "semantic",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/serverless-architecture.md",
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/scale_docs/container-fundamentals.md",
          "tests/fixtures/scale_docs/container-fundamentals.md",
          "tests/fixtures/scale_docs/serverless-architecture.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.4,
        "content_match": 0.9333333333333333,
        "latency_ms": 77.714917,
        "tokens": 3478
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "microservices data consistency",
        "category": "semantic",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/sample_docs/microservices.md",
          "tests/fixtures/scale_docs/event-driven-architecture.md",
          "tests/fixtures/scale_docs/event-driven-architecture.md",
          "tests/fixtures/sample_docs/microservices.md",
          "tests/fixtures/scale_docs/multi-region-deployment.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 76.550792,
        "tokens": 1714
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "data lakehouse architecture",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/data-lake-architecture.md",
          "tests/fixtures/scale_docs/data-lake-architecture.md",
          "tests/fixtures/scale_docs/data-lake-architecture.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.8666666666666667,
        "latency_ms": 58.746666,
        "tokens": 5231
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "zero trust security principles",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/zero-trust-architecture.md",
          "tests/fixtures/scale_docs/zero-trust-architecture.md",
          "tests/fixtures/scale_docs/zero-trust-architecture.md",
          "tests/fixtures/scale_docs/zero-trust-architecture.md",
          "tests/fixtures/scale_docs/zero-trust-architecture.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.8666666666666667,
        "latency_ms": 64.756875,
        "tokens": 1824
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "continuous integration best practices",
        "category": "semantic",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/sample_docs/microservices.md",
          "tests/fixtures/scale_docs/well-architected-framework.md",
          "tests/fixtures/scale_docs/event-driven-architecture.md",
          "tests/fixtures/scale_docs/data-pipeline-design.md",
          "tests/fixtures/scale_docs/event-driven-architecture.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": 0.4,
        "latency_ms": 86.965459,
        "tokens": 1920
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "database sharding strategies",
        "category": "semantic",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/database-sharding.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.9333333333333333,
        "latency_ms": 56.578541,
        "tokens": 3717
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "load balancing algorithms",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/load-balancing.md",
          "tests/fixtures/scale_docs/load-balancing.md",
          "tests/fixtures/scale_docs/load-balancing.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.8666666666666667,
        "latency_ms": 65.303041,
        "tokens": 3509
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "content delivery network optimization",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/cdn-architecture.md",
          "tests/fixtures/scale_docs/cdn-architecture.md",
          "tests/fixtures/scale_docs/cost-optimization.md",
          "tests/fixtures/scale_docs/cdn-architecture.md",
          "tests/fixtures/scale_docs/load-balancing.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.6,
        "content_match": 0.8666666666666667,
        "latency_ms": 81.433708,
        "tokens": 2423
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "service mesh advantages",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/service-mesh.md",
          "tests/fixtures/scale_docs/service-mesh.md",
          "tests/fixtures/scale_docs/service-mesh.md",
          "tests/fixtures/scale_docs/service-mesh.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.8666666666666667,
        "latency_ms": 67.355459,
        "tokens": 3536
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "infrastructure as code tools",
        "category": "semantic",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/infrastructure-as-code.md",
          "tests/fixtures/scale_docs/infrastructure-as-code.md",
          "tests/fixtures/scale_docs/infrastructure-as-code.md",
          "tests/fixtures/scale_docs/infrastructure-as-code.md",
          "tests/fixtures/scale_docs/infrastructure-as-code.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.8666666666666667,
        "latency_ms": 63.464709,
        "tokens": 3923
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "monitoring vs observability",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/monitoring-observability.md",
          "tests/fixtures/scale_docs/monitoring-observability.md",
          "tests/fixtures/scale_docs/monitoring-observability.md",
          "tests/fixtures/scale_docs/monitoring-observability.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 58.851042,
        "tokens": 5915
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "auto scaling in the cloud",
        "category": "semantic",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/cost-optimization.md",
          "tests/fixtures/scale_docs/auto-scaling.md",
          "tests/fixtures/scale_docs/auto-scaling.md",
          "tests/fixtures/scale_docs/auto-scaling.md",
          "tests/fixtures/scale_docs/cost-optimization.md"
        ],
        "rr": 0.5,
        "ndcg_5": 0.6309297535714575,
        "hit_rate_1": 0.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.6,
        "content_match": 0.8666666666666667,
        "latency_ms": 69.057166,
        "tokens": 3618
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "disaster recovery planning",
        "category": "semantic",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/disaster-recovery.md",
          "tests/fixtures/scale_docs/disaster-recovery.md",
          "tests/fixtures/scale_docs/disaster-recovery.md",
          "tests/fixtures/scale_docs/database-replication.md",
          "tests/fixtures/scale_docs/incident-response.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.6,
        "content_match": 1.0,
        "latency_ms": 73.490209,
        "tokens": 7231
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "api gateway patterns",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/api-gateway-patterns.md",
          "tests/fixtures/scale_docs/api-gateway-patterns.md",
          "tests/fixtures/scale_docs/api-gateway-patterns.md",
          "tests/fixtures/scale_docs/api-gateway-patterns.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 65.067709,
        "tokens": 4590
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "cloud storage options",
        "category": "semantic",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/cloud-storage-options.md",
          "tests/fixtures/scale_docs/cloud-storage-options.md",
          "tests/fixtures/scale_docs/cloud-storage-options.md",
          "tests/fixtures/scale_docs/cost-optimization.md",
          "tests/fixtures/scale_docs/data-lake-architecture.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.6,
        "content_match": 1.0,
        "latency_ms": 73.329708,
        "tokens": 3174
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "data serialization formats",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/data-serialization.md",
          "tests/fixtures/scale_docs/data-serialization.md",
          "tests/fixtures/scale_docs/data-serialization.md",
          "tests/fixtures/scale_docs/data-serialization.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.9333333333333333,
        "latency_ms": 61.501417,
        "tokens": 5034
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "message queue patterns",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/cloud-design-patterns.md",
          "tests/fixtures/sample_docs/microservices.md",
          "tests/fixtures/scale_docs/error-handling-patterns.md",
          "tests/fixtures/scale_docs/error-handling-patterns.md",
          "tests/fixtures/scale_docs/cloud-design-patterns.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": 0.4666666666666667,
        "latency_ms": 81.109834,
        "tokens": 3442
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "functional programming concepts",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/functional-programming.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 65.299958,
        "tokens": 3292
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "linux memory management",
        "category": "semantic",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/linux-memory-management.md",
          "tests/fixtures/scale_docs/linux-memory-management.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 63.603375,
        "tokens": 3754
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "dns resolution process",
        "category": "semantic",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/dns-resolution.md",
          "tests/fixtures/scale_docs/dns-resolution.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 61.87075,
        "tokens": 3924
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "connection pooling benefits",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/connection-pooling.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 57.435167,
        "tokens": 2947
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "cryptography basics",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/cryptography-basics.md",
          "tests/fixtures/scale_docs/cryptography-basics.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 63.764916,
        "tokens": 6175
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "distributed transactions",
        "category": "semantic",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/sample_docs/microservices.md",
          "tests/fixtures/scale_docs/event-driven-architecture.md",
          "tests/fixtures/sample_docs/microservices.md",
          "tests/fixtures/scale_docs/event-driven-architecture.md",
          "tests/fixtures/scale_docs/event-driven-architecture.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": 0.26666666666666666,
        "latency_ms": 89.909041,
        "tokens": 1092
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "container security hardening",
        "category": "semantic",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/network-security-hardening.md",
          "tests/fixtures/scale_docs/network-security-hardening.md",
          "tests/fixtures/scale_docs/network-security-hardening.md",
          "tests/fixtures/scale_docs/container-security.md"
        ],
        "rr": 0.25,
        "ndcg_5": 0.6309297535714575,
        "hit_rate_1": 0.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.25,
        "content_match": 0.9333333333333333,
        "latency_ms": 68.760875,
        "tokens": 2897
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "well architected framework",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/well-architected-framework.md",
          "tests/fixtures/scale_docs/well-architected-framework.md",
          "tests/fixtures/scale_docs/well-architected-framework.md",
          "tests/fixtures/scale_docs/well-architected-framework.md",
          "tests/fixtures/scale_docs/well-architected-framework.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 62.460792,
        "tokens": 4050
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "cost optimization strategies",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/cost-optimization.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.8666666666666667,
        "latency_ms": 72.253416,
        "tokens": 3985
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "incident response steps",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/incident-response.md",
          "tests/fixtures/scale_docs/incident-response.md",
          "tests/fixtures/scale_docs/incident-response.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.8666666666666667,
        "latency_ms": 63.763166,
        "tokens": 4937
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "multi-region deployment",
        "category": "semantic",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/multi-region-deployment.md",
          "tests/fixtures/scale_docs/multi-region-deployment.md",
          "tests/fixtures/scale_docs/multi-region-deployment.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.9333333333333333,
        "latency_ms": 58.005209,
        "tokens": 5321
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "ssh configuration security",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/ssh-configuration.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.9333333333333333,
        "latency_ms": 62.883958,
        "tokens": 3606
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "vpn tunneling protocols",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/vpn-tunneling.md",
          "tests/fixtures/scale_docs/vpn-tunneling.md",
          "tests/fixtures/scale_docs/firewall-rules.md",
          "tests/fixtures/scale_docs/ssh-configuration.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.5,
        "content_match": 1.0,
        "latency_ms": 68.274958,
        "tokens": 2344
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "websocket protocol overview",
        "category": "semantic",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/websocket-protocol.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 61.559459,
        "tokens": 3370
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "helm charts fundamentals",
        "category": "semantic",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/helm-charts.md",
          "tests/fixtures/scale_docs/helm-charts.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 101.724084,
        "tokens": 1657
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "linux process management",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/linux-process-management.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 72.921666,
        "tokens": 2957
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "network troubleshooting tools",
        "category": "semantic",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/network-troubleshooting.md",
          "tests/fixtures/scale_docs/network-troubleshooting.md",
          "tests/fixtures/scale_docs/network-troubleshooting.md",
          "tests/fixtures/scale_docs/network-troubleshooting.md",
          "tests/fixtures/scale_docs/network-troubleshooting.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 61.4395,
        "tokens": 3817
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "database replication types",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/database-replication.md",
          "tests/fixtures/scale_docs/database-replication.md",
          "tests/fixtures/scale_docs/database-replication.md",
          "tests/fixtures/scale_docs/database-replication.md",
          "tests/fixtures/scale_docs/database-replication.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.9333333333333333,
        "latency_ms": 66.344083,
        "tokens": 4948
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "nosql design patterns",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/nosql-patterns.md",
          "tests/fixtures/scale_docs/nosql-patterns.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.8,
        "latency_ms": 61.130917,
        "tokens": 5177
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "sql query optimization",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/sql-query-optimization.md",
          "tests/fixtures/scale_docs/sql-query-optimization.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 66.311167,
        "tokens": 4289
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "data pipeline design",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/data-pipeline-design.md",
          "tests/fixtures/scale_docs/data-pipeline-design.md",
          "tests/fixtures/scale_docs/data-pipeline-design.md",
          "tests/fixtures/scale_docs/data-pipeline-design.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.9333333333333333,
        "latency_ms": 64.265959,
        "tokens": 6041
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "testing strategies for software",
        "category": "semantic",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/testing-strategies.md",
          "tests/fixtures/scale_docs/testing-strategies.md",
          "tests/fixtures/scale_docs/testing-strategies.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.9333333333333333,
        "latency_ms": 64.123708,
        "tokens": 4982
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "dependency injection benefits",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/dependency-injection.md",
          "tests/fixtures/scale_docs/dependency-injection.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.9333333333333333,
        "latency_ms": 62.1975,
        "tokens": 4724
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "behavioral design patterns",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/design-patterns-behavioral.md",
          "tests/fixtures/scale_docs/design-patterns-behavioral.md",
          "tests/fixtures/scale_docs/design-patterns-behavioral.md",
          "tests/fixtures/scale_docs/design-patterns-behavioral.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.8666666666666667,
        "latency_ms": 64.261917,
        "tokens": 5171
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "creational design patterns",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/design-patterns-creational.md",
          "tests/fixtures/scale_docs/design-patterns-creational.md",
          "tests/fixtures/scale_docs/design-patterns-creational.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.9333333333333333,
        "latency_ms": 64.140625,
        "tokens": 5339
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "how to bake sourdough in a kubernetes cluster",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/kubernetes-architecture.md",
          "tests/fixtures/scale_docs/kubernetes-architecture.md",
          "tests/fixtures/scale_docs/kubernetes-architecture.md",
          "tests/fixtures/scale_docs/kubernetes-architecture.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 66.717416,
        "tokens": 5453
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "best brand of hiking boots for Mars",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/data-serialization.md",
          "tests/fixtures/scale_docs/cloud-storage-options.md",
          "tests/fixtures/scale_docs/cost-optimization.md",
          "tests/fixtures/scale_docs/package-management.md",
          "tests/fixtures/scale_docs/linux-performance-tuning.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 84.943542,
        "tokens": 3035
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "quantum entanglement in photosynthesis",
        "category": "adversarial",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/http2-http3.md",
          "tests/fixtures/scale_docs/cryptography-basics.md",
          "tests/fixtures/scale_docs/cryptography-basics.md",
          "tests/fixtures/scale_docs/functional-programming.md",
          "tests/fixtures/scale_docs/http2-http3.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 78.70725,
        "tokens": 2192
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "the secret to eternal life according to python docs",
        "category": "adversarial",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/owasp-top-10.md",
          "tests/fixtures/scale_docs/cryptography-basics.md",
          "tests/fixtures/scale_docs/cryptography-basics.md",
          "tests/fixtures/scale_docs/cryptography-basics.md",
          "tests/fixtures/scale_docs/penetration-testing-methodology.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 93.413292,
        "tokens": 2314
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "where did I leave my keys",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/api-security.md",
          "tests/fixtures/scale_docs/ssh-configuration.md",
          "tests/fixtures/scale_docs/owasp-top-10.md",
          "tests/fixtures/scale_docs/security-audit-checklist.md",
          "tests/fixtures/scale_docs/api-security.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 82.334834,
        "tokens": 1097
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "recipe for disaster in distributed systems",
        "category": "adversarial",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/database-replication.md",
          "tests/fixtures/scale_docs/event-driven-architecture.md",
          "tests/fixtures/scale_docs/cloud-design-patterns.md",
          "tests/fixtures/scale_docs/disaster-recovery.md",
          "tests/fixtures/scale_docs/database-replication.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 91.992625,
        "tokens": 2105
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "blue whales vs sperm whales",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/data-serialization.md",
          "tests/fixtures/scale_docs/data-serialization.md",
          "tests/fixtures/scale_docs/data-serialization.md",
          "tests/fixtures/scale_docs/database-migrations.md",
          "tests/fixtures/scale_docs/ci-cd-pipelines.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 78.559083,
        "tokens": 4896
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "history of the Roman Empire",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/data-warehouse-modeling.md",
          "tests/fixtures/scale_docs/data-lake-architecture.md",
          "tests/fixtures/scale_docs/penetration-testing-methodology.md",
          "tests/fixtures/scale_docs/data-lake-architecture.md",
          "tests/fixtures/scale_docs/data-lake-architecture.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 87.761459,
        "tokens": 1457
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "how to play the banjo",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/spark-fundamentals.md",
          "tests/fixtures/scale_docs/spark-fundamentals.md",
          "tests/fixtures/scale_docs/stream-processing.md",
          "tests/fixtures/scale_docs/stream-processing.md",
          "tests/fixtures/scale_docs/data-lake-architecture.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 89.019917,
        "tokens": 2109
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "why is the sky blue",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/database-migrations.md",
          "tests/fixtures/scale_docs/ci-cd-pipelines.md",
          "tests/fixtures/scale_docs/linux-filesystem.md",
          "tests/fixtures/scale_docs/kubernetes-architecture.md",
          "tests/fixtures/scale_docs/ci-cd-pipelines.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 91.339125,
        "tokens": 1826
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "symptoms of a cold",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/cost-optimization.md",
          "tests/fixtures/scale_docs/serverless-architecture.md",
          "tests/fixtures/scale_docs/serverless-architecture.md",
          "tests/fixtures/scale_docs/incident-response.md",
          "tests/fixtures/scale_docs/zero-trust-architecture.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 101.335167,
        "tokens": 1609
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "movie recommendations for tonight",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/scale_docs/vpn-tunneling.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 93.759083,
        "tokens": 1332
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "stock market predictions for 2026",
        "category": "adversarial",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/data-lake-architecture.md",
          "tests/fixtures/scale_docs/concurrency-patterns.md",
          "tests/fixtures/scale_docs/elasticsearch-basics.md",
          "tests/fixtures/scale_docs/auto-scaling.md",
          "tests/fixtures/scale_docs/design-patterns-creational.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 104.06575,
        "tokens": 1791
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "philosophy of mind and AI",
        "category": "adversarial",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/event-driven-architecture.md",
          "tests/fixtures/scale_docs/design-patterns-creational.md",
          "tests/fixtures/scale_docs/zero-trust-architecture.md",
          "tests/fixtures/sample_docs/semantic-search.md",
          "tests/fixtures/scale_docs/concurrency-patterns.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 99.210291,
        "tokens": 1435
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "meaning of life 42",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/data-serialization.md",
          "tests/fixtures/scale_docs/cloud-storage-options.md",
          "tests/fixtures/scale_docs/data-lake-architecture.md",
          "tests/fixtures/scale_docs/incident-response.md",
          "tests/fixtures/scale_docs/helm-charts.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 96.726708,
        "tokens": 1244
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "how to win friends and influence people",
        "category": "adversarial",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/zero-trust-architecture.md",
          "tests/fixtures/scale_docs/nosql-patterns.md",
          "tests/fixtures/scale_docs/nosql-patterns.md",
          "tests/fixtures/sample_docs/semantic-search.md",
          "tests/fixtures/scale_docs/chaos-engineering.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 83.890125,
        "tokens": 2035
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "yoga for beginners",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/functional-programming.md",
          "tests/fixtures/sample_docs/vector-databases.md",
          "tests/fixtures/sample_docs/semantic-search.md",
          "tests/fixtures/scale_docs/chaos-engineering.md",
          "tests/fixtures/scale_docs/http2-http3.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 94.605916,
        "tokens": 2367
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "best coffee shops in London",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/design-patterns-structural.md",
          "tests/fixtures/scale_docs/design-patterns-structural.md",
          "tests/fixtures/scale_docs/elasticsearch-basics.md",
          "tests/fixtures/scale_docs/design-patterns-structural.md",
          "tests/fixtures/scale_docs/shell-scripting.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 87.86,
        "tokens": 1619
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "gardening tips for summer",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/network-security-hardening.md",
          "tests/fixtures/scale_docs/multi-region-deployment.md",
          "tests/fixtures/scale_docs/network-security-hardening.md",
          "tests/fixtures/scale_docs/network-security-hardening.md",
          "tests/fixtures/scale_docs/design-patterns-behavioral.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 98.239833,
        "tokens": 1746
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "how to repair a flat tire",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/database-backup-recovery.md",
          "tests/fixtures/scale_docs/database-backup-recovery.md",
          "tests/fixtures/scale_docs/incident-response.md",
          "tests/fixtures/scale_docs/database-backup-recovery.md",
          "tests/fixtures/scale_docs/infrastructure-as-code.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 104.6125,
        "tokens": 2476
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "history of the internet",
        "category": "adversarial",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/http2-http3.md",
          "tests/fixtures/scale_docs/tcp-ip-fundamentals.md",
          "tests/fixtures/scale_docs/http2-http3.md",
          "tests/fixtures/scale_docs/tcp-ip-fundamentals.md",
          "tests/fixtures/scale_docs/cloud-networking.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 82.544083,
        "tokens": 5456
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "space travel in the future",
        "category": "adversarial",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/concurrency-patterns.md",
          "tests/fixtures/scale_docs/multi-region-deployment.md",
          "tests/fixtures/scale_docs/event-driven-architecture.md",
          "tests/fixtures/scale_docs/event-driven-architecture.md",
          "tests/fixtures/scale_docs/infrastructure-as-code.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 90.234667,
        "tokens": 2307
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "the art of war summary",
        "category": "adversarial",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/incident-response.md",
          "tests/fixtures/scale_docs/penetration-testing-methodology.md",
          "tests/fixtures/scale_docs/incident-response.md",
          "tests/fixtures/scale_docs/penetration-testing-methodology.md",
          "tests/fixtures/scale_docs/ci-cd-pipelines.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 86.677417,
        "tokens": 3360
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "meditation techniques",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/stream-processing.md",
          "tests/fixtures/scale_docs/stream-processing.md",
          "tests/fixtures/sample_docs/semantic-search.md",
          "tests/fixtures/scale_docs/stream-processing.md",
          "tests/fixtures/scale_docs/stream-processing.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 77.651083,
        "tokens": 1771
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "learning a new language fast",
        "category": "adversarial",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/data-serialization.md",
          "tests/fixtures/scale_docs/data-serialization.md",
          "tests/fixtures/sample_docs/semantic-search.md",
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/sample_docs/vector-databases.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 86.134792,
        "tokens": 1405
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "climate change impacts",
        "category": "adversarial",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/incident-response.md",
          "tests/fixtures/scale_docs/incident-response.md",
          "tests/fixtures/scale_docs/incident-response.md",
          "tests/fixtures/scale_docs/chaos-engineering.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 93.416834,
        "tokens": 3113
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "renewable energy sources",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/container-fundamentals.md",
          "tests/fixtures/scale_docs/disaster-recovery.md",
          "tests/fixtures/scale_docs/serverless-architecture.md",
          "tests/fixtures/scale_docs/disaster-recovery.md",
          "tests/fixtures/scale_docs/vpn-tunneling.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 84.928708,
        "tokens": 3744
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "healthy eating habits",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/load-balancing.md",
          "tests/fixtures/scale_docs/database-sharding.md",
          "tests/fixtures/scale_docs/api-gateway-patterns.md",
          "tests/fixtures/sample_docs/caching.md",
          "tests/fixtures/scale_docs/testing-strategies.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 104.504292,
        "tokens": 1661
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "travel tips for Japan",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/disaster-recovery.md",
          "tests/fixtures/scale_docs/service-mesh.md",
          "tests/fixtures/scale_docs/connection-pooling.md",
          "tests/fixtures/scale_docs/websocket-protocol.md",
          "tests/fixtures/scale_docs/websocket-protocol.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 112.001625,
        "tokens": 2484
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 0,
        "query": "basics of photography",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/container-fundamentals.md",
          "tests/fixtures/scale_docs/container-fundamentals.md",
          "tests/fixtures/scale_docs/container-fundamentals.md",
          "tests/fixtures/scale_docs/container-fundamentals.md",
          "tests/fixtures/scale_docs/container-security.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 76.587625,
        "tokens": 1288
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "What is semantic search?",
        "category": "semantic",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/sample_docs/semantic-search.md",
          "tests/fixtures/sample_docs/vector-databases.md",
          "tests/fixtures/scale_docs/elasticsearch-basics.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.3333333333333333,
        "content_match": 1.0,
        "latency_ms": 62.626583,
        "tokens": 1192
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "vector database",
        "category": "semantic",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/sample_docs/vector-databases.md",
          "tests/fixtures/sample_docs/semantic-search.md",
          "tests/fixtures/scale_docs/data-lake-architecture.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.3333333333333333,
        "content_match": 1.0,
        "latency_ms": 87.707458,
        "tokens": 978
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "REST API design",
        "category": "semantic",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/sample_docs/api-design.md",
          "tests/fixtures/scale_docs/api-gateway-patterns.md",
          "tests/fixtures/scale_docs/api-gateway-patterns.md",
          "tests/fixtures/sample_docs/microservices.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.25,
        "content_match": 0.9333333333333333,
        "latency_ms": 66.302959,
        "tokens": 3017
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "database normalization",
        "category": "semantic",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/sample_docs/database-design.md",
          "tests/fixtures/sample_docs/database-design.md",
          "tests/fixtures/scale_docs/sql-query-optimization.md",
          "tests/fixtures/scale_docs/nosql-patterns.md",
          "tests/fixtures/scale_docs/data-pipeline-design.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.4,
        "content_match": 0.7333333333333333,
        "latency_ms": 76.237625,
        "tokens": 1725
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "HTTP/2 vs HTTP/3 performance",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/http2-http3.md",
          "tests/fixtures/scale_docs/http2-http3.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 55.812875,
        "tokens": 4425
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "PostgreSQL 15 internals",
        "category": "lexical",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/postgresql-internals.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 54.182959,
        "tokens": 3978
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "Apache Kafka 3.0 features",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/apache-kafka.md",
          "tests/fixtures/scale_docs/apache-kafka.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.8666666666666667,
        "latency_ms": 61.021584,
        "tokens": 5453
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "TLS 1.3 handshake process",
        "category": "lexical",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/tls-ssl.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 63.313167,
        "tokens": 3924
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "Kubernetes v1.24 removal of dockershim",
        "category": "lexical",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/kubernetes-architecture.md",
          "tests/fixtures/scale_docs/container-fundamentals.md",
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/scale_docs/kubernetes-architecture.md",
          "tests/fixtures/scale_docs/kubernetes-architecture.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.6,
        "content_match": 0.7333333333333333,
        "latency_ms": 73.523083,
        "tokens": 3821
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "gRPC over HTTP/2",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/grpc-protocol.md",
          "tests/fixtures/scale_docs/http2-http3.md",
          "tests/fixtures/scale_docs/http2-http3.md",
          "tests/fixtures/scale_docs/grpc-protocol.md",
          "tests/fixtures/scale_docs/grpc-protocol.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.6,
        "content_match": 1.0,
        "latency_ms": 62.201041,
        "tokens": 6548
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "Redis 7.0 Multi-part AOF",
        "category": "lexical",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/redis-data-structures.md",
          "tests/fixtures/scale_docs/redis-data-structures.md",
          "tests/fixtures/scale_docs/redis-data-structures.md",
          "tests/fixtures/scale_docs/helm-charts.md",
          "tests/fixtures/scale_docs/redis-data-structures.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.8,
        "content_match": 0.9333333333333333,
        "latency_ms": 64.954083,
        "tokens": 2023
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "Elasticsearch 8.x security changes",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/api-security.md",
          "tests/fixtures/scale_docs/elasticsearch-basics.md",
          "tests/fixtures/scale_docs/elasticsearch-basics.md",
          "tests/fixtures/scale_docs/monitoring-observability.md",
          "tests/fixtures/scale_docs/linux-logging.md"
        ],
        "rr": 0.5,
        "ndcg_5": 0.6309297535714575,
        "hit_rate_1": 0.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.4,
        "content_match": 0.6,
        "latency_ms": 77.883541,
        "tokens": 2093
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "OWASP Top 10 2021",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/owasp-top-10.md",
          "tests/fixtures/scale_docs/owasp-top-10.md",
          "tests/fixtures/scale_docs/security-audit-checklist.md",
          "tests/fixtures/scale_docs/vpn-tunneling.md",
          "tests/fixtures/scale_docs/security-audit-checklist.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.4,
        "content_match": 0.4,
        "latency_ms": 82.804208,
        "tokens": 1401
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "AVX-512 vector instructions",
        "category": "lexical",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/data-serialization.md",
          "tests/fixtures/scale_docs/data-serialization.md",
          "tests/fixtures/sample_docs/vector-databases.md",
          "tests/fixtures/scale_docs/cryptography-basics.md",
          "tests/fixtures/scale_docs/design-patterns-behavioral.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 73.53725,
        "tokens": 2953
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "TCP/IP layer 4",
        "category": "lexical",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/tcp-ip-fundamentals.md",
          "tests/fixtures/scale_docs/tcp-ip-fundamentals.md",
          "tests/fixtures/scale_docs/tcp-ip-fundamentals.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 58.248083,
        "tokens": 4329
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "IPv6 address format",
        "category": "lexical",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/dns-resolution.md",
          "tests/fixtures/scale_docs/firewall-rules.md",
          "tests/fixtures/scale_docs/tcp-ip-fundamentals.md",
          "tests/fixtures/scale_docs/cloud-networking.md",
          "tests/fixtures/scale_docs/data-serialization.md"
        ],
        "rr": 0.25,
        "ndcg_5": 0.43067655807339306,
        "hit_rate_1": 0.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.2,
        "content_match": 0.8,
        "latency_ms": 81.578792,
        "tokens": 1923
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "UUID v4 generation",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/scale_docs/testing-strategies.md",
          "tests/fixtures/scale_docs/linux-filesystem.md",
          "tests/fixtures/scale_docs/testing-strategies.md",
          "tests/fixtures/scale_docs/linux-filesystem.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": 0.2,
        "latency_ms": 75.212709,
        "tokens": 1852
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "0xEF hex code",
        "category": "lexical",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/api-security.md",
          "tests/fixtures/scale_docs/websocket-protocol.md",
          "tests/fixtures/scale_docs/cryptography-basics.md",
          "tests/fixtures/scale_docs/error-handling-patterns.md",
          "tests/fixtures/scale_docs/cryptography-basics.md"
        ],
        "rr": 0.3333333333333333,
        "ndcg_5": 0.5,
        "hit_rate_1": 0.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.4,
        "content_match": 0.6666666666666666,
        "latency_ms": 82.185209,
        "tokens": 1826
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "Python 3.10 match statement",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/functional-programming.md",
          "tests/fixtures/scale_docs/elasticsearch-basics.md",
          "tests/fixtures/scale_docs/error-handling-patterns.md",
          "tests/fixtures/scale_docs/error-handling-patterns.md",
          "tests/fixtures/scale_docs/data-serialization.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.2,
        "content_match": 0.7333333333333333,
        "latency_ms": 73.968125,
        "tokens": 1957
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "ISO 27001 compliance",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/compliance-frameworks.md",
          "tests/fixtures/scale_docs/compliance-frameworks.md",
          "tests/fixtures/scale_docs/compliance-frameworks.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 57.235958,
        "tokens": 5884
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "SOC2 Type II audit",
        "category": "lexical",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/compliance-frameworks.md",
          "tests/fixtures/scale_docs/compliance-frameworks.md",
          "tests/fixtures/scale_docs/compliance-frameworks.md",
          "tests/fixtures/scale_docs/security-audit-checklist.md",
          "tests/fixtures/scale_docs/security-audit-checklist.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.6,
        "content_match": 1.0,
        "latency_ms": 60.325292,
        "tokens": 5394
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "BGE-small-en-v1.5 model",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/data-quality.md",
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/scale_docs/database-migrations.md",
          "tests/fixtures/scale_docs/vpn-tunneling.md",
          "tests/fixtures/scale_docs/container-fundamentals.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": 0.13333333333333333,
        "latency_ms": 86.945125,
        "tokens": 1623
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "ChromaDB v0.4.0",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/sample_docs/vector-databases.md",
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/scale_docs/container-security.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": 0.06666666666666667,
        "latency_ms": 76.148875,
        "tokens": 2795
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "MS-MARCO MiniLM L-6-v2",
        "category": "lexical",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/scale_docs/vpn-tunneling.md",
          "tests/fixtures/sample_docs/caching.md",
          "tests/fixtures/scale_docs/service-mesh.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": 0.3333333333333333,
        "latency_ms": 84.183208,
        "tokens": 1183
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "JWT RS256 signing",
        "category": "lexical",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/sample_docs/authentication.md",
          "tests/fixtures/scale_docs/api-gateway-patterns.md",
          "tests/fixtures/scale_docs/api-security.md",
          "tests/fixtures/scale_docs/tls-ssl.md",
          "tests/fixtures/scale_docs/api-security.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.2,
        "content_match": 0.6666666666666666,
        "latency_ms": 80.720916,
        "tokens": 2262
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "OAuth 2.0 PKCE flow",
        "category": "lexical",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/api-security.md",
          "tests/fixtures/scale_docs/api-security.md",
          "tests/fixtures/scale_docs/api-security.md",
          "tests/fixtures/scale_docs/api-security.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": 0.6,
        "latency_ms": 65.03175,
        "tokens": 5713
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "RAID 6 configurations",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/linux-filesystem.md",
          "tests/fixtures/scale_docs/ssh-configuration.md",
          "tests/fixtures/scale_docs/linux-filesystem.md",
          "tests/fixtures/scale_docs/linux-filesystem.md",
          "tests/fixtures/scale_docs/linux-filesystem.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": 0.2,
        "latency_ms": 81.345,
        "tokens": 3146
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "SQL-92 standards",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/data-quality.md",
          "tests/fixtures/scale_docs/data-quality.md",
          "tests/fixtures/scale_docs/sql-query-optimization.md",
          "tests/fixtures/scale_docs/sql-query-optimization.md",
          "tests/fixtures/scale_docs/data-pipeline-design.md"
        ],
        "rr": 0.3333333333333333,
        "ndcg_5": 0.6309297535714575,
        "hit_rate_1": 0.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.4,
        "content_match": 0.8,
        "latency_ms": 71.551917,
        "tokens": 3133
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "POSIX thread management",
        "category": "lexical",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/concurrency-patterns.md",
          "tests/fixtures/scale_docs/concurrency-patterns.md",
          "tests/fixtures/scale_docs/linux-performance-tuning.md",
          "tests/fixtures/scale_docs/cloud-storage-options.md",
          "tests/fixtures/scale_docs/linux-performance-tuning.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": 0.2727272727272727,
        "latency_ms": 68.796708,
        "tokens": 4374
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "systemd unit files",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/systemd-services.md",
          "tests/fixtures/scale_docs/systemd-services.md",
          "tests/fixtures/scale_docs/systemd-services.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 57.29525,
        "tokens": 3596
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "EXT4 filesystem limits",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/linux-filesystem.md",
          "tests/fixtures/scale_docs/linux-filesystem.md",
          "tests/fixtures/scale_docs/linux-filesystem.md",
          "tests/fixtures/scale_docs/linux-filesystem.md",
          "tests/fixtures/scale_docs/linux-performance-tuning.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.8,
        "content_match": 1.0,
        "latency_ms": 56.097708,
        "tokens": 4672
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "YAML 1.2 syntax",
        "category": "lexical",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/zero-trust-architecture.md",
          "tests/fixtures/scale_docs/helm-charts.md",
          "tests/fixtures/scale_docs/configuration-management.md",
          "tests/fixtures/scale_docs/api-gateway-patterns.md",
          "tests/fixtures/scale_docs/api-gateway-patterns.md"
        ],
        "rr": 0.3333333333333333,
        "ndcg_5": 0.5,
        "hit_rate_1": 0.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.2,
        "content_match": 0.8,
        "latency_ms": 81.329167,
        "tokens": 991
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "Docker Compose v2",
        "category": "lexical",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/container-fundamentals.md",
          "tests/fixtures/scale_docs/dependency-injection.md",
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/scale_docs/container-fundamentals.md",
          "tests/fixtures/scale_docs/container-fundamentals.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.6,
        "content_match": 1.0,
        "latency_ms": 68.545375,
        "tokens": 3238
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "AWS IAM policies",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/secrets-management.md",
          "tests/fixtures/scale_docs/well-architected-framework.md",
          "tests/fixtures/scale_docs/secrets-management.md",
          "tests/fixtures/scale_docs/well-architected-framework.md",
          "tests/fixtures/scale_docs/secrets-management.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": 0.4,
        "latency_ms": 78.366167,
        "tokens": 1552
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "how to implement chaos engineering",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/chaos-engineering.md",
          "tests/fixtures/scale_docs/chaos-engineering.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.9333333333333333,
        "latency_ms": 53.354334,
        "tokens": 3871
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "benefits of event-driven architecture",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/event-driven-architecture.md",
          "tests/fixtures/scale_docs/event-driven-architecture.md",
          "tests/fixtures/scale_docs/event-driven-architecture.md",
          "tests/fixtures/scale_docs/event-driven-architecture.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.8,
        "latency_ms": 55.191875,
        "tokens": 4400
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "serverless vs containers",
        "category": "semantic",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/serverless-architecture.md",
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/scale_docs/container-fundamentals.md",
          "tests/fixtures/scale_docs/container-fundamentals.md",
          "tests/fixtures/scale_docs/serverless-architecture.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.4,
        "content_match": 0.9333333333333333,
        "latency_ms": 75.694792,
        "tokens": 3478
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "microservices data consistency",
        "category": "semantic",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/sample_docs/microservices.md",
          "tests/fixtures/scale_docs/event-driven-architecture.md",
          "tests/fixtures/scale_docs/event-driven-architecture.md",
          "tests/fixtures/sample_docs/microservices.md",
          "tests/fixtures/scale_docs/multi-region-deployment.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 74.064167,
        "tokens": 1714
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "data lakehouse architecture",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/data-lake-architecture.md",
          "tests/fixtures/scale_docs/data-lake-architecture.md",
          "tests/fixtures/scale_docs/data-lake-architecture.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.8666666666666667,
        "latency_ms": 56.274917,
        "tokens": 5231
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "zero trust security principles",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/zero-trust-architecture.md",
          "tests/fixtures/scale_docs/zero-trust-architecture.md",
          "tests/fixtures/scale_docs/zero-trust-architecture.md",
          "tests/fixtures/scale_docs/zero-trust-architecture.md",
          "tests/fixtures/scale_docs/zero-trust-architecture.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.8666666666666667,
        "latency_ms": 50.572542,
        "tokens": 1824
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "continuous integration best practices",
        "category": "semantic",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/sample_docs/microservices.md",
          "tests/fixtures/scale_docs/well-architected-framework.md",
          "tests/fixtures/scale_docs/event-driven-architecture.md",
          "tests/fixtures/scale_docs/data-pipeline-design.md",
          "tests/fixtures/scale_docs/event-driven-architecture.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": 0.4,
        "latency_ms": 81.679708,
        "tokens": 1920
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "database sharding strategies",
        "category": "semantic",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/database-sharding.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.9333333333333333,
        "latency_ms": 52.820375,
        "tokens": 3717
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "load balancing algorithms",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/load-balancing.md",
          "tests/fixtures/scale_docs/load-balancing.md",
          "tests/fixtures/scale_docs/load-balancing.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.8666666666666667,
        "latency_ms": 63.232208,
        "tokens": 3509
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "content delivery network optimization",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/cdn-architecture.md",
          "tests/fixtures/scale_docs/cdn-architecture.md",
          "tests/fixtures/scale_docs/cost-optimization.md",
          "tests/fixtures/scale_docs/cdn-architecture.md",
          "tests/fixtures/scale_docs/load-balancing.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.6,
        "content_match": 0.8666666666666667,
        "latency_ms": 77.275542,
        "tokens": 2423
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "service mesh advantages",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/service-mesh.md",
          "tests/fixtures/scale_docs/service-mesh.md",
          "tests/fixtures/scale_docs/service-mesh.md",
          "tests/fixtures/scale_docs/service-mesh.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.8666666666666667,
        "latency_ms": 59.683125,
        "tokens": 3536
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "infrastructure as code tools",
        "category": "semantic",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/infrastructure-as-code.md",
          "tests/fixtures/scale_docs/infrastructure-as-code.md",
          "tests/fixtures/scale_docs/infrastructure-as-code.md",
          "tests/fixtures/scale_docs/infrastructure-as-code.md",
          "tests/fixtures/scale_docs/infrastructure-as-code.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.8666666666666667,
        "latency_ms": 58.431625,
        "tokens": 3923
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "monitoring vs observability",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/monitoring-observability.md",
          "tests/fixtures/scale_docs/monitoring-observability.md",
          "tests/fixtures/scale_docs/monitoring-observability.md",
          "tests/fixtures/scale_docs/monitoring-observability.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 53.684166,
        "tokens": 5915
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "auto scaling in the cloud",
        "category": "semantic",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/cost-optimization.md",
          "tests/fixtures/scale_docs/auto-scaling.md",
          "tests/fixtures/scale_docs/auto-scaling.md",
          "tests/fixtures/scale_docs/auto-scaling.md",
          "tests/fixtures/scale_docs/cost-optimization.md"
        ],
        "rr": 0.5,
        "ndcg_5": 0.6309297535714575,
        "hit_rate_1": 0.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.6,
        "content_match": 0.8666666666666667,
        "latency_ms": 60.607125,
        "tokens": 3618
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "disaster recovery planning",
        "category": "semantic",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/disaster-recovery.md",
          "tests/fixtures/scale_docs/disaster-recovery.md",
          "tests/fixtures/scale_docs/disaster-recovery.md",
          "tests/fixtures/scale_docs/database-replication.md",
          "tests/fixtures/scale_docs/incident-response.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.6,
        "content_match": 1.0,
        "latency_ms": 67.765208,
        "tokens": 7231
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "api gateway patterns",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/api-gateway-patterns.md",
          "tests/fixtures/scale_docs/api-gateway-patterns.md",
          "tests/fixtures/scale_docs/api-gateway-patterns.md",
          "tests/fixtures/scale_docs/api-gateway-patterns.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 57.847375,
        "tokens": 4590
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "cloud storage options",
        "category": "semantic",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/cloud-storage-options.md",
          "tests/fixtures/scale_docs/cloud-storage-options.md",
          "tests/fixtures/scale_docs/cloud-storage-options.md",
          "tests/fixtures/scale_docs/cost-optimization.md",
          "tests/fixtures/scale_docs/data-lake-architecture.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.6,
        "content_match": 1.0,
        "latency_ms": 69.294166,
        "tokens": 3174
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "data serialization formats",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/data-serialization.md",
          "tests/fixtures/scale_docs/data-serialization.md",
          "tests/fixtures/scale_docs/data-serialization.md",
          "tests/fixtures/scale_docs/data-serialization.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.9333333333333333,
        "latency_ms": 55.720583,
        "tokens": 5034
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "message queue patterns",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/cloud-design-patterns.md",
          "tests/fixtures/sample_docs/microservices.md",
          "tests/fixtures/scale_docs/error-handling-patterns.md",
          "tests/fixtures/scale_docs/error-handling-patterns.md",
          "tests/fixtures/scale_docs/cloud-design-patterns.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": 0.4666666666666667,
        "latency_ms": 78.678,
        "tokens": 3442
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "functional programming concepts",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/functional-programming.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 61.309792,
        "tokens": 3292
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "linux memory management",
        "category": "semantic",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/linux-memory-management.md",
          "tests/fixtures/scale_docs/linux-memory-management.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 62.554417,
        "tokens": 3754
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "dns resolution process",
        "category": "semantic",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/dns-resolution.md",
          "tests/fixtures/scale_docs/dns-resolution.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 55.806667,
        "tokens": 3924
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "connection pooling benefits",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/connection-pooling.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 57.807,
        "tokens": 2947
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "cryptography basics",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/cryptography-basics.md",
          "tests/fixtures/scale_docs/cryptography-basics.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 60.107917,
        "tokens": 6175
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "distributed transactions",
        "category": "semantic",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/sample_docs/microservices.md",
          "tests/fixtures/scale_docs/event-driven-architecture.md",
          "tests/fixtures/sample_docs/microservices.md",
          "tests/fixtures/scale_docs/event-driven-architecture.md",
          "tests/fixtures/scale_docs/event-driven-architecture.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": 0.26666666666666666,
        "latency_ms": 84.768917,
        "tokens": 1092
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "container security hardening",
        "category": "semantic",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/network-security-hardening.md",
          "tests/fixtures/scale_docs/network-security-hardening.md",
          "tests/fixtures/scale_docs/network-security-hardening.md",
          "tests/fixtures/scale_docs/container-security.md"
        ],
        "rr": 0.25,
        "ndcg_5": 0.6309297535714575,
        "hit_rate_1": 0.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.25,
        "content_match": 0.9333333333333333,
        "latency_ms": 62.047375,
        "tokens": 2897
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "well architected framework",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/well-architected-framework.md",
          "tests/fixtures/scale_docs/well-architected-framework.md",
          "tests/fixtures/scale_docs/well-architected-framework.md",
          "tests/fixtures/scale_docs/well-architected-framework.md",
          "tests/fixtures/scale_docs/well-architected-framework.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 57.7395,
        "tokens": 4050
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "cost optimization strategies",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/cost-optimization.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.8666666666666667,
        "latency_ms": 64.552833,
        "tokens": 3985
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "incident response steps",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/incident-response.md",
          "tests/fixtures/scale_docs/incident-response.md",
          "tests/fixtures/scale_docs/incident-response.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.8666666666666667,
        "latency_ms": 58.642917,
        "tokens": 4937
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "multi-region deployment",
        "category": "semantic",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/multi-region-deployment.md",
          "tests/fixtures/scale_docs/multi-region-deployment.md",
          "tests/fixtures/scale_docs/multi-region-deployment.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.9333333333333333,
        "latency_ms": 56.696,
        "tokens": 5321
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "ssh configuration security",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/ssh-configuration.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.9333333333333333,
        "latency_ms": 56.887291,
        "tokens": 3606
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "vpn tunneling protocols",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/vpn-tunneling.md",
          "tests/fixtures/scale_docs/vpn-tunneling.md",
          "tests/fixtures/scale_docs/firewall-rules.md",
          "tests/fixtures/scale_docs/ssh-configuration.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.5,
        "content_match": 1.0,
        "latency_ms": 65.186,
        "tokens": 2344
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "websocket protocol overview",
        "category": "semantic",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/websocket-protocol.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 55.512792,
        "tokens": 3370
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "helm charts fundamentals",
        "category": "semantic",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/helm-charts.md",
          "tests/fixtures/scale_docs/helm-charts.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 56.884459,
        "tokens": 1657
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "linux process management",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/linux-process-management.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 67.839458,
        "tokens": 2957
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "network troubleshooting tools",
        "category": "semantic",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/network-troubleshooting.md",
          "tests/fixtures/scale_docs/network-troubleshooting.md",
          "tests/fixtures/scale_docs/network-troubleshooting.md",
          "tests/fixtures/scale_docs/network-troubleshooting.md",
          "tests/fixtures/scale_docs/network-troubleshooting.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 55.648667,
        "tokens": 3817
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "database replication types",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/database-replication.md",
          "tests/fixtures/scale_docs/database-replication.md",
          "tests/fixtures/scale_docs/database-replication.md",
          "tests/fixtures/scale_docs/database-replication.md",
          "tests/fixtures/scale_docs/database-replication.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.9333333333333333,
        "latency_ms": 61.238917,
        "tokens": 4948
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "nosql design patterns",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/nosql-patterns.md",
          "tests/fixtures/scale_docs/nosql-patterns.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.8,
        "latency_ms": 55.839209,
        "tokens": 5177
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "sql query optimization",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/sql-query-optimization.md",
          "tests/fixtures/scale_docs/sql-query-optimization.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 59.842417,
        "tokens": 4289
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "data pipeline design",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/data-pipeline-design.md",
          "tests/fixtures/scale_docs/data-pipeline-design.md",
          "tests/fixtures/scale_docs/data-pipeline-design.md",
          "tests/fixtures/scale_docs/data-pipeline-design.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.9333333333333333,
        "latency_ms": 60.61325,
        "tokens": 6041
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "testing strategies for software",
        "category": "semantic",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/testing-strategies.md",
          "tests/fixtures/scale_docs/testing-strategies.md",
          "tests/fixtures/scale_docs/testing-strategies.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.9333333333333333,
        "latency_ms": 60.710167,
        "tokens": 4982
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "dependency injection benefits",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/dependency-injection.md",
          "tests/fixtures/scale_docs/dependency-injection.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.9333333333333333,
        "latency_ms": 58.087875,
        "tokens": 4724
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "behavioral design patterns",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/design-patterns-behavioral.md",
          "tests/fixtures/scale_docs/design-patterns-behavioral.md",
          "tests/fixtures/scale_docs/design-patterns-behavioral.md",
          "tests/fixtures/scale_docs/design-patterns-behavioral.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.8666666666666667,
        "latency_ms": 56.525125,
        "tokens": 5171
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "creational design patterns",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/design-patterns-creational.md",
          "tests/fixtures/scale_docs/design-patterns-creational.md",
          "tests/fixtures/scale_docs/design-patterns-creational.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.9333333333333333,
        "latency_ms": 58.576208,
        "tokens": 5339
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "how to bake sourdough in a kubernetes cluster",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/kubernetes-architecture.md",
          "tests/fixtures/scale_docs/kubernetes-architecture.md",
          "tests/fixtures/scale_docs/kubernetes-architecture.md",
          "tests/fixtures/scale_docs/kubernetes-architecture.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 57.8725,
        "tokens": 5453
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "best brand of hiking boots for Mars",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/data-serialization.md",
          "tests/fixtures/scale_docs/cloud-storage-options.md",
          "tests/fixtures/scale_docs/cloud-storage-options.md",
          "tests/fixtures/scale_docs/cost-optimization.md",
          "tests/fixtures/scale_docs/package-management.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 78.941375,
        "tokens": 2193
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "quantum entanglement in photosynthesis",
        "category": "adversarial",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/http2-http3.md",
          "tests/fixtures/scale_docs/cryptography-basics.md",
          "tests/fixtures/scale_docs/cryptography-basics.md",
          "tests/fixtures/scale_docs/functional-programming.md",
          "tests/fixtures/scale_docs/http2-http3.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 67.771875,
        "tokens": 2192
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "the secret to eternal life according to python docs",
        "category": "adversarial",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/owasp-top-10.md",
          "tests/fixtures/scale_docs/cryptography-basics.md",
          "tests/fixtures/scale_docs/cryptography-basics.md",
          "tests/fixtures/scale_docs/cryptography-basics.md",
          "tests/fixtures/scale_docs/penetration-testing-methodology.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 86.411416,
        "tokens": 2314
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "where did I leave my keys",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/api-security.md",
          "tests/fixtures/scale_docs/ssh-configuration.md",
          "tests/fixtures/scale_docs/owasp-top-10.md",
          "tests/fixtures/scale_docs/security-audit-checklist.md",
          "tests/fixtures/scale_docs/api-security.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 81.017125,
        "tokens": 1097
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "recipe for disaster in distributed systems",
        "category": "adversarial",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/database-replication.md",
          "tests/fixtures/scale_docs/event-driven-architecture.md",
          "tests/fixtures/scale_docs/cloud-design-patterns.md",
          "tests/fixtures/scale_docs/disaster-recovery.md",
          "tests/fixtures/scale_docs/database-replication.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 73.423083,
        "tokens": 2105
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "blue whales vs sperm whales",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/data-serialization.md",
          "tests/fixtures/scale_docs/data-serialization.md",
          "tests/fixtures/scale_docs/data-serialization.md",
          "tests/fixtures/scale_docs/database-migrations.md",
          "tests/fixtures/scale_docs/ci-cd-pipelines.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 75.444083,
        "tokens": 4896
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "history of the Roman Empire",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/data-warehouse-modeling.md",
          "tests/fixtures/scale_docs/data-lake-architecture.md",
          "tests/fixtures/scale_docs/penetration-testing-methodology.md",
          "tests/fixtures/scale_docs/data-lake-architecture.md",
          "tests/fixtures/scale_docs/data-lake-architecture.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 80.446166,
        "tokens": 1457
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "how to play the banjo",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/spark-fundamentals.md",
          "tests/fixtures/scale_docs/spark-fundamentals.md",
          "tests/fixtures/scale_docs/stream-processing.md",
          "tests/fixtures/scale_docs/stream-processing.md",
          "tests/fixtures/scale_docs/data-lake-architecture.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 78.060542,
        "tokens": 2109
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "why is the sky blue",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/database-migrations.md",
          "tests/fixtures/scale_docs/ci-cd-pipelines.md",
          "tests/fixtures/scale_docs/linux-filesystem.md",
          "tests/fixtures/scale_docs/kubernetes-architecture.md",
          "tests/fixtures/scale_docs/ci-cd-pipelines.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 85.990291,
        "tokens": 1826
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "symptoms of a cold",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/incident-response.md",
          "tests/fixtures/scale_docs/serverless-architecture.md",
          "tests/fixtures/scale_docs/zero-trust-architecture.md",
          "tests/fixtures/scale_docs/cost-optimization.md",
          "tests/fixtures/scale_docs/container-security.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 90.209792,
        "tokens": 1914
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "movie recommendations for tonight",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/scale_docs/vpn-tunneling.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 83.134542,
        "tokens": 1332
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "stock market predictions for 2026",
        "category": "adversarial",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/data-lake-architecture.md",
          "tests/fixtures/scale_docs/concurrency-patterns.md",
          "tests/fixtures/scale_docs/elasticsearch-basics.md",
          "tests/fixtures/scale_docs/auto-scaling.md",
          "tests/fixtures/scale_docs/design-patterns-creational.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 92.258833,
        "tokens": 1791
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "philosophy of mind and AI",
        "category": "adversarial",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/event-driven-architecture.md",
          "tests/fixtures/scale_docs/design-patterns-creational.md",
          "tests/fixtures/scale_docs/zero-trust-architecture.md",
          "tests/fixtures/sample_docs/semantic-search.md",
          "tests/fixtures/scale_docs/concurrency-patterns.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 86.820333,
        "tokens": 1435
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "meaning of life 42",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/data-serialization.md",
          "tests/fixtures/scale_docs/cloud-storage-options.md",
          "tests/fixtures/scale_docs/data-lake-architecture.md",
          "tests/fixtures/scale_docs/incident-response.md",
          "tests/fixtures/scale_docs/helm-charts.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 99.861042,
        "tokens": 1244
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "how to win friends and influence people",
        "category": "adversarial",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/nosql-patterns.md",
          "tests/fixtures/scale_docs/zero-trust-architecture.md",
          "tests/fixtures/sample_docs/semantic-search.md",
          "tests/fixtures/scale_docs/compliance-frameworks.md",
          "tests/fixtures/scale_docs/chaos-engineering.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 77.468167,
        "tokens": 1952
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "yoga for beginners",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/functional-programming.md",
          "tests/fixtures/sample_docs/vector-databases.md",
          "tests/fixtures/sample_docs/semantic-search.md",
          "tests/fixtures/scale_docs/chaos-engineering.md",
          "tests/fixtures/scale_docs/http2-http3.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 90.967333,
        "tokens": 2367
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "best coffee shops in London",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/scale_docs/elasticsearch-basics.md",
          "tests/fixtures/scale_docs/design-patterns-structural.md",
          "tests/fixtures/scale_docs/shell-scripting.md",
          "tests/fixtures/sample_docs/caching.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 85.616083,
        "tokens": 1426
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "gardening tips for summer",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/network-security-hardening.md",
          "tests/fixtures/scale_docs/multi-region-deployment.md",
          "tests/fixtures/scale_docs/auto-scaling.md",
          "tests/fixtures/scale_docs/network-security-hardening.md",
          "tests/fixtures/scale_docs/network-security-hardening.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 81.322875,
        "tokens": 1490
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "how to repair a flat tire",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/database-backup-recovery.md",
          "tests/fixtures/scale_docs/database-backup-recovery.md",
          "tests/fixtures/scale_docs/incident-response.md",
          "tests/fixtures/scale_docs/database-backup-recovery.md",
          "tests/fixtures/scale_docs/infrastructure-as-code.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 86.136083,
        "tokens": 2169
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "history of the internet",
        "category": "adversarial",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/http2-http3.md",
          "tests/fixtures/scale_docs/tcp-ip-fundamentals.md",
          "tests/fixtures/scale_docs/http2-http3.md",
          "tests/fixtures/scale_docs/tcp-ip-fundamentals.md",
          "tests/fixtures/scale_docs/cloud-networking.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 68.354208,
        "tokens": 5456
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "space travel in the future",
        "category": "adversarial",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/concurrency-patterns.md",
          "tests/fixtures/scale_docs/multi-region-deployment.md",
          "tests/fixtures/scale_docs/event-driven-architecture.md",
          "tests/fixtures/scale_docs/event-driven-architecture.md",
          "tests/fixtures/scale_docs/infrastructure-as-code.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 87.643958,
        "tokens": 2307
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "the art of war summary",
        "category": "adversarial",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/incident-response.md",
          "tests/fixtures/scale_docs/penetration-testing-methodology.md",
          "tests/fixtures/scale_docs/incident-response.md",
          "tests/fixtures/scale_docs/penetration-testing-methodology.md",
          "tests/fixtures/scale_docs/ci-cd-pipelines.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 81.918958,
        "tokens": 3360
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "meditation techniques",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/stream-processing.md",
          "tests/fixtures/scale_docs/stream-processing.md",
          "tests/fixtures/sample_docs/semantic-search.md",
          "tests/fixtures/scale_docs/stream-processing.md",
          "tests/fixtures/scale_docs/stream-processing.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 68.775083,
        "tokens": 1771
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "learning a new language fast",
        "category": "adversarial",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/data-serialization.md",
          "tests/fixtures/scale_docs/data-serialization.md",
          "tests/fixtures/sample_docs/semantic-search.md",
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/sample_docs/vector-databases.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 80.195875,
        "tokens": 1405
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "climate change impacts",
        "category": "adversarial",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/incident-response.md",
          "tests/fixtures/scale_docs/incident-response.md",
          "tests/fixtures/scale_docs/incident-response.md",
          "tests/fixtures/scale_docs/chaos-engineering.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 89.612625,
        "tokens": 3113
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "renewable energy sources",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/container-fundamentals.md",
          "tests/fixtures/scale_docs/disaster-recovery.md",
          "tests/fixtures/scale_docs/serverless-architecture.md",
          "tests/fixtures/scale_docs/disaster-recovery.md",
          "tests/fixtures/scale_docs/vpn-tunneling.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 77.062334,
        "tokens": 3744
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "healthy eating habits",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/load-balancing.md",
          "tests/fixtures/scale_docs/database-sharding.md",
          "tests/fixtures/scale_docs/api-gateway-patterns.md",
          "tests/fixtures/sample_docs/caching.md",
          "tests/fixtures/scale_docs/testing-strategies.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 90.654167,
        "tokens": 1661
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "travel tips for Japan",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/disaster-recovery.md",
          "tests/fixtures/scale_docs/service-mesh.md",
          "tests/fixtures/scale_docs/connection-pooling.md",
          "tests/fixtures/scale_docs/websocket-protocol.md",
          "tests/fixtures/scale_docs/websocket-protocol.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 100.809333,
        "tokens": 2484
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 1,
        "query": "basics of photography",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/container-fundamentals.md",
          "tests/fixtures/scale_docs/container-fundamentals.md",
          "tests/fixtures/scale_docs/container-fundamentals.md",
          "tests/fixtures/scale_docs/container-fundamentals.md",
          "tests/fixtures/scale_docs/container-security.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 62.967125,
        "tokens": 1288
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "What is semantic search?",
        "category": "semantic",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/sample_docs/semantic-search.md",
          "tests/fixtures/sample_docs/vector-databases.md",
          "tests/fixtures/scale_docs/elasticsearch-basics.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.3333333333333333,
        "content_match": 1.0,
        "latency_ms": 68.701708,
        "tokens": 1192
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "vector database",
        "category": "semantic",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/sample_docs/vector-databases.md",
          "tests/fixtures/sample_docs/semantic-search.md",
          "tests/fixtures/scale_docs/data-lake-architecture.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.3333333333333333,
        "content_match": 1.0,
        "latency_ms": 89.0115,
        "tokens": 978
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "REST API design",
        "category": "semantic",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/sample_docs/api-design.md",
          "tests/fixtures/scale_docs/api-gateway-patterns.md",
          "tests/fixtures/scale_docs/api-gateway-patterns.md",
          "tests/fixtures/sample_docs/microservices.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.25,
        "content_match": 0.9333333333333333,
        "latency_ms": 63.089417,
        "tokens": 3017
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "database normalization",
        "category": "semantic",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/sample_docs/database-design.md",
          "tests/fixtures/sample_docs/database-design.md",
          "tests/fixtures/scale_docs/sql-query-optimization.md",
          "tests/fixtures/scale_docs/nosql-patterns.md",
          "tests/fixtures/scale_docs/data-pipeline-design.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.4,
        "content_match": 0.7333333333333333,
        "latency_ms": 80.215917,
        "tokens": 1725
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "HTTP/2 vs HTTP/3 performance",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/http2-http3.md",
          "tests/fixtures/scale_docs/http2-http3.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 61.805833,
        "tokens": 4425
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "PostgreSQL 15 internals",
        "category": "lexical",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/postgresql-internals.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 59.413291,
        "tokens": 3978
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "Apache Kafka 3.0 features",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/apache-kafka.md",
          "tests/fixtures/scale_docs/apache-kafka.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.8666666666666667,
        "latency_ms": 65.940833,
        "tokens": 5453
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "TLS 1.3 handshake process",
        "category": "lexical",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/tls-ssl.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 64.645833,
        "tokens": 3924
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "Kubernetes v1.24 removal of dockershim",
        "category": "lexical",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/kubernetes-architecture.md",
          "tests/fixtures/scale_docs/container-fundamentals.md",
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/scale_docs/kubernetes-architecture.md",
          "tests/fixtures/scale_docs/kubernetes-architecture.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.6,
        "content_match": 0.7333333333333333,
        "latency_ms": 82.86675,
        "tokens": 3821
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "gRPC over HTTP/2",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/grpc-protocol.md",
          "tests/fixtures/scale_docs/http2-http3.md",
          "tests/fixtures/scale_docs/http2-http3.md",
          "tests/fixtures/scale_docs/grpc-protocol.md",
          "tests/fixtures/scale_docs/grpc-protocol.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.6,
        "content_match": 1.0,
        "latency_ms": 62.650792,
        "tokens": 6548
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "Redis 7.0 Multi-part AOF",
        "category": "lexical",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/redis-data-structures.md",
          "tests/fixtures/scale_docs/redis-data-structures.md",
          "tests/fixtures/scale_docs/redis-data-structures.md",
          "tests/fixtures/scale_docs/helm-charts.md",
          "tests/fixtures/scale_docs/redis-data-structures.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.8,
        "content_match": 0.9333333333333333,
        "latency_ms": 68.936417,
        "tokens": 2023
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "Elasticsearch 8.x security changes",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/api-security.md",
          "tests/fixtures/scale_docs/elasticsearch-basics.md",
          "tests/fixtures/scale_docs/elasticsearch-basics.md",
          "tests/fixtures/scale_docs/monitoring-observability.md",
          "tests/fixtures/scale_docs/linux-logging.md"
        ],
        "rr": 0.5,
        "ndcg_5": 0.6309297535714575,
        "hit_rate_1": 0.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.4,
        "content_match": 0.6,
        "latency_ms": 78.629084,
        "tokens": 2093
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "OWASP Top 10 2021",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/owasp-top-10.md",
          "tests/fixtures/scale_docs/owasp-top-10.md",
          "tests/fixtures/scale_docs/security-audit-checklist.md",
          "tests/fixtures/scale_docs/vpn-tunneling.md",
          "tests/fixtures/scale_docs/security-audit-checklist.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.4,
        "content_match": 0.4,
        "latency_ms": 85.434084,
        "tokens": 1401
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "AVX-512 vector instructions",
        "category": "lexical",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/data-serialization.md",
          "tests/fixtures/scale_docs/data-serialization.md",
          "tests/fixtures/sample_docs/vector-databases.md",
          "tests/fixtures/scale_docs/cryptography-basics.md",
          "tests/fixtures/scale_docs/design-patterns-behavioral.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 74.674708,
        "tokens": 2953
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "TCP/IP layer 4",
        "category": "lexical",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/tcp-ip-fundamentals.md",
          "tests/fixtures/scale_docs/tcp-ip-fundamentals.md",
          "tests/fixtures/scale_docs/tcp-ip-fundamentals.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 58.802833,
        "tokens": 4329
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "IPv6 address format",
        "category": "lexical",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/dns-resolution.md",
          "tests/fixtures/scale_docs/firewall-rules.md",
          "tests/fixtures/scale_docs/tcp-ip-fundamentals.md",
          "tests/fixtures/scale_docs/cloud-networking.md",
          "tests/fixtures/scale_docs/data-serialization.md"
        ],
        "rr": 0.25,
        "ndcg_5": 0.43067655807339306,
        "hit_rate_1": 0.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.2,
        "content_match": 0.8,
        "latency_ms": 89.011042,
        "tokens": 1923
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "UUID v4 generation",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/scale_docs/testing-strategies.md",
          "tests/fixtures/scale_docs/linux-filesystem.md",
          "tests/fixtures/scale_docs/testing-strategies.md",
          "tests/fixtures/scale_docs/linux-filesystem.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": 0.2,
        "latency_ms": 79.254834,
        "tokens": 1852
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "0xEF hex code",
        "category": "lexical",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/api-security.md",
          "tests/fixtures/scale_docs/websocket-protocol.md",
          "tests/fixtures/scale_docs/cryptography-basics.md",
          "tests/fixtures/scale_docs/error-handling-patterns.md",
          "tests/fixtures/scale_docs/cryptography-basics.md"
        ],
        "rr": 0.3333333333333333,
        "ndcg_5": 0.5,
        "hit_rate_1": 0.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.4,
        "content_match": 0.6666666666666666,
        "latency_ms": 86.240792,
        "tokens": 1826
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "Python 3.10 match statement",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/functional-programming.md",
          "tests/fixtures/scale_docs/elasticsearch-basics.md",
          "tests/fixtures/scale_docs/error-handling-patterns.md",
          "tests/fixtures/scale_docs/error-handling-patterns.md",
          "tests/fixtures/scale_docs/data-serialization.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.2,
        "content_match": 0.7333333333333333,
        "latency_ms": 81.806,
        "tokens": 1957
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "ISO 27001 compliance",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/compliance-frameworks.md",
          "tests/fixtures/scale_docs/compliance-frameworks.md",
          "tests/fixtures/scale_docs/compliance-frameworks.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 58.664041,
        "tokens": 5884
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "SOC2 Type II audit",
        "category": "lexical",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/compliance-frameworks.md",
          "tests/fixtures/scale_docs/compliance-frameworks.md",
          "tests/fixtures/scale_docs/compliance-frameworks.md",
          "tests/fixtures/scale_docs/security-audit-checklist.md",
          "tests/fixtures/scale_docs/security-audit-checklist.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.6,
        "content_match": 1.0,
        "latency_ms": 66.553333,
        "tokens": 5394
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "BGE-small-en-v1.5 model",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/data-quality.md",
          "tests/fixtures/scale_docs/service-mesh.md",
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/scale_docs/database-migrations.md",
          "tests/fixtures/scale_docs/vpn-tunneling.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": 0.2,
        "latency_ms": 97.398791,
        "tokens": 1702
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "ChromaDB v0.4.0",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/sample_docs/vector-databases.md",
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/scale_docs/container-security.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": 0.06666666666666667,
        "latency_ms": 72.660584,
        "tokens": 2795
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "MS-MARCO MiniLM L-6-v2",
        "category": "lexical",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/scale_docs/vpn-tunneling.md",
          "tests/fixtures/sample_docs/caching.md",
          "tests/fixtures/scale_docs/service-mesh.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": 0.3333333333333333,
        "latency_ms": 93.522917,
        "tokens": 1183
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "JWT RS256 signing",
        "category": "lexical",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/sample_docs/authentication.md",
          "tests/fixtures/scale_docs/api-gateway-patterns.md",
          "tests/fixtures/scale_docs/api-security.md",
          "tests/fixtures/scale_docs/tls-ssl.md",
          "tests/fixtures/scale_docs/api-security.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.2,
        "content_match": 0.6666666666666666,
        "latency_ms": 84.990625,
        "tokens": 2051
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "OAuth 2.0 PKCE flow",
        "category": "lexical",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/api-security.md",
          "tests/fixtures/scale_docs/api-security.md",
          "tests/fixtures/scale_docs/api-security.md",
          "tests/fixtures/scale_docs/api-security.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": 0.6,
        "latency_ms": 63.182625,
        "tokens": 5713
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "RAID 6 configurations",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/linux-filesystem.md",
          "tests/fixtures/scale_docs/ssh-configuration.md",
          "tests/fixtures/scale_docs/linux-filesystem.md",
          "tests/fixtures/scale_docs/linux-filesystem.md",
          "tests/fixtures/scale_docs/linux-filesystem.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": 0.2,
        "latency_ms": 83.045708,
        "tokens": 3146
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "SQL-92 standards",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/data-quality.md",
          "tests/fixtures/scale_docs/data-quality.md",
          "tests/fixtures/scale_docs/sql-query-optimization.md",
          "tests/fixtures/scale_docs/sql-query-optimization.md",
          "tests/fixtures/scale_docs/data-pipeline-design.md"
        ],
        "rr": 0.3333333333333333,
        "ndcg_5": 0.6309297535714575,
        "hit_rate_1": 0.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.4,
        "content_match": 0.8,
        "latency_ms": 76.7035,
        "tokens": 3133
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "POSIX thread management",
        "category": "lexical",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/concurrency-patterns.md",
          "tests/fixtures/scale_docs/concurrency-patterns.md",
          "tests/fixtures/scale_docs/linux-performance-tuning.md",
          "tests/fixtures/scale_docs/cloud-storage-options.md",
          "tests/fixtures/scale_docs/linux-performance-tuning.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": 0.2727272727272727,
        "latency_ms": 72.291709,
        "tokens": 4374
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "systemd unit files",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/systemd-services.md",
          "tests/fixtures/scale_docs/systemd-services.md",
          "tests/fixtures/scale_docs/systemd-services.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 66.43825,
        "tokens": 3596
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "EXT4 filesystem limits",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/linux-filesystem.md",
          "tests/fixtures/scale_docs/linux-filesystem.md",
          "tests/fixtures/scale_docs/linux-filesystem.md",
          "tests/fixtures/scale_docs/linux-filesystem.md",
          "tests/fixtures/scale_docs/linux-performance-tuning.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.8,
        "content_match": 1.0,
        "latency_ms": 63.496291,
        "tokens": 4672
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "YAML 1.2 syntax",
        "category": "lexical",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/zero-trust-architecture.md",
          "tests/fixtures/scale_docs/helm-charts.md",
          "tests/fixtures/scale_docs/configuration-management.md",
          "tests/fixtures/scale_docs/api-gateway-patterns.md",
          "tests/fixtures/scale_docs/api-gateway-patterns.md"
        ],
        "rr": 0.3333333333333333,
        "ndcg_5": 0.5,
        "hit_rate_1": 0.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.2,
        "content_match": 0.8,
        "latency_ms": 73.259958,
        "tokens": 991
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "Docker Compose v2",
        "category": "lexical",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/container-fundamentals.md",
          "tests/fixtures/scale_docs/dependency-injection.md",
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/scale_docs/container-fundamentals.md",
          "tests/fixtures/scale_docs/container-fundamentals.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.6,
        "content_match": 1.0,
        "latency_ms": 74.450375,
        "tokens": 3238
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "AWS IAM policies",
        "category": "lexical",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/secrets-management.md",
          "tests/fixtures/scale_docs/well-architected-framework.md",
          "tests/fixtures/scale_docs/secrets-management.md",
          "tests/fixtures/scale_docs/well-architected-framework.md",
          "tests/fixtures/scale_docs/secrets-management.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": 0.4,
        "latency_ms": 80.800875,
        "tokens": 1552
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "how to implement chaos engineering",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/chaos-engineering.md",
          "tests/fixtures/scale_docs/chaos-engineering.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.9333333333333333,
        "latency_ms": 60.78275,
        "tokens": 3871
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "benefits of event-driven architecture",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/event-driven-architecture.md",
          "tests/fixtures/scale_docs/event-driven-architecture.md",
          "tests/fixtures/scale_docs/event-driven-architecture.md",
          "tests/fixtures/scale_docs/event-driven-architecture.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.8,
        "latency_ms": 62.581792,
        "tokens": 4400
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "serverless vs containers",
        "category": "semantic",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/serverless-architecture.md",
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/scale_docs/container-fundamentals.md",
          "tests/fixtures/scale_docs/container-fundamentals.md",
          "tests/fixtures/scale_docs/serverless-architecture.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.4,
        "content_match": 0.9333333333333333,
        "latency_ms": 80.401458,
        "tokens": 3478
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "microservices data consistency",
        "category": "semantic",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/sample_docs/microservices.md",
          "tests/fixtures/scale_docs/event-driven-architecture.md",
          "tests/fixtures/scale_docs/event-driven-architecture.md",
          "tests/fixtures/sample_docs/microservices.md",
          "tests/fixtures/scale_docs/multi-region-deployment.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 78.722583,
        "tokens": 1714
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "data lakehouse architecture",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/data-lake-architecture.md",
          "tests/fixtures/scale_docs/data-lake-architecture.md",
          "tests/fixtures/scale_docs/data-lake-architecture.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.8666666666666667,
        "latency_ms": 62.832583,
        "tokens": 5231
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "zero trust security principles",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/zero-trust-architecture.md",
          "tests/fixtures/scale_docs/zero-trust-architecture.md",
          "tests/fixtures/scale_docs/zero-trust-architecture.md",
          "tests/fixtures/scale_docs/zero-trust-architecture.md",
          "tests/fixtures/scale_docs/zero-trust-architecture.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.8666666666666667,
        "latency_ms": 55.957958,
        "tokens": 1824
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "continuous integration best practices",
        "category": "semantic",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/sample_docs/microservices.md",
          "tests/fixtures/scale_docs/well-architected-framework.md",
          "tests/fixtures/scale_docs/event-driven-architecture.md",
          "tests/fixtures/scale_docs/data-pipeline-design.md",
          "tests/fixtures/scale_docs/event-driven-architecture.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": 0.4,
        "latency_ms": 88.37075,
        "tokens": 1920
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "database sharding strategies",
        "category": "semantic",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/database-sharding.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.9333333333333333,
        "latency_ms": 57.260542,
        "tokens": 3717
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "load balancing algorithms",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/load-balancing.md",
          "tests/fixtures/scale_docs/load-balancing.md",
          "tests/fixtures/scale_docs/load-balancing.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.8666666666666667,
        "latency_ms": 61.487208,
        "tokens": 3509
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "content delivery network optimization",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/cdn-architecture.md",
          "tests/fixtures/scale_docs/cdn-architecture.md",
          "tests/fixtures/scale_docs/cost-optimization.md",
          "tests/fixtures/scale_docs/cdn-architecture.md",
          "tests/fixtures/scale_docs/load-balancing.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.6,
        "content_match": 0.8666666666666667,
        "latency_ms": 80.710541,
        "tokens": 2423
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "service mesh advantages",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/service-mesh.md",
          "tests/fixtures/scale_docs/service-mesh.md",
          "tests/fixtures/scale_docs/service-mesh.md",
          "tests/fixtures/scale_docs/service-mesh.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.8666666666666667,
        "latency_ms": 63.393083,
        "tokens": 3536
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "infrastructure as code tools",
        "category": "semantic",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/infrastructure-as-code.md",
          "tests/fixtures/scale_docs/infrastructure-as-code.md",
          "tests/fixtures/scale_docs/infrastructure-as-code.md",
          "tests/fixtures/scale_docs/infrastructure-as-code.md",
          "tests/fixtures/scale_docs/infrastructure-as-code.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.8666666666666667,
        "latency_ms": 65.032417,
        "tokens": 3923
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "monitoring vs observability",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/monitoring-observability.md",
          "tests/fixtures/scale_docs/monitoring-observability.md",
          "tests/fixtures/scale_docs/monitoring-observability.md",
          "tests/fixtures/scale_docs/monitoring-observability.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 62.8925,
        "tokens": 5915
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "auto scaling in the cloud",
        "category": "semantic",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/cost-optimization.md",
          "tests/fixtures/scale_docs/auto-scaling.md",
          "tests/fixtures/scale_docs/auto-scaling.md",
          "tests/fixtures/scale_docs/auto-scaling.md",
          "tests/fixtures/scale_docs/cost-optimization.md"
        ],
        "rr": 0.5,
        "ndcg_5": 0.6309297535714575,
        "hit_rate_1": 0.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.6,
        "content_match": 0.8666666666666667,
        "latency_ms": 67.026167,
        "tokens": 3618
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "disaster recovery planning",
        "category": "semantic",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/disaster-recovery.md",
          "tests/fixtures/scale_docs/disaster-recovery.md",
          "tests/fixtures/scale_docs/disaster-recovery.md",
          "tests/fixtures/scale_docs/database-replication.md",
          "tests/fixtures/scale_docs/incident-response.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.6,
        "content_match": 1.0,
        "latency_ms": 74.403209,
        "tokens": 7231
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "api gateway patterns",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/api-gateway-patterns.md",
          "tests/fixtures/scale_docs/api-gateway-patterns.md",
          "tests/fixtures/scale_docs/api-gateway-patterns.md",
          "tests/fixtures/scale_docs/api-gateway-patterns.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 61.873667,
        "tokens": 4590
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "cloud storage options",
        "category": "semantic",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/cloud-storage-options.md",
          "tests/fixtures/scale_docs/cloud-storage-options.md",
          "tests/fixtures/scale_docs/cloud-storage-options.md",
          "tests/fixtures/scale_docs/cost-optimization.md",
          "tests/fixtures/scale_docs/data-lake-architecture.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.6,
        "content_match": 1.0,
        "latency_ms": 71.110959,
        "tokens": 3174
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "data serialization formats",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/data-serialization.md",
          "tests/fixtures/scale_docs/data-serialization.md",
          "tests/fixtures/scale_docs/data-serialization.md",
          "tests/fixtures/scale_docs/data-serialization.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.9333333333333333,
        "latency_ms": 63.939791,
        "tokens": 5034
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "message queue patterns",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/cloud-design-patterns.md",
          "tests/fixtures/sample_docs/microservices.md",
          "tests/fixtures/scale_docs/error-handling-patterns.md",
          "tests/fixtures/scale_docs/error-handling-patterns.md",
          "tests/fixtures/scale_docs/cloud-design-patterns.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": 0.4666666666666667,
        "latency_ms": 84.082334,
        "tokens": 3442
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "functional programming concepts",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/functional-programming.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 61.74075,
        "tokens": 3292
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "linux memory management",
        "category": "semantic",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/linux-memory-management.md",
          "tests/fixtures/scale_docs/linux-memory-management.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 65.082625,
        "tokens": 3754
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "dns resolution process",
        "category": "semantic",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/dns-resolution.md",
          "tests/fixtures/scale_docs/dns-resolution.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 57.486625,
        "tokens": 3924
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "connection pooling benefits",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/connection-pooling.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 59.991583,
        "tokens": 2947
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "cryptography basics",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/cryptography-basics.md",
          "tests/fixtures/scale_docs/cryptography-basics.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 61.156125,
        "tokens": 6175
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "distributed transactions",
        "category": "semantic",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/sample_docs/microservices.md",
          "tests/fixtures/scale_docs/event-driven-architecture.md",
          "tests/fixtures/sample_docs/microservices.md",
          "tests/fixtures/scale_docs/event-driven-architecture.md",
          "tests/fixtures/scale_docs/event-driven-architecture.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": 0.26666666666666666,
        "latency_ms": 89.516167,
        "tokens": 1092
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "container security hardening",
        "category": "semantic",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/network-security-hardening.md",
          "tests/fixtures/scale_docs/network-security-hardening.md",
          "tests/fixtures/scale_docs/network-security-hardening.md",
          "tests/fixtures/scale_docs/container-security.md"
        ],
        "rr": 0.25,
        "ndcg_5": 0.6309297535714575,
        "hit_rate_1": 0.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.25,
        "content_match": 0.9333333333333333,
        "latency_ms": 68.074,
        "tokens": 2897
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "well architected framework",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/well-architected-framework.md",
          "tests/fixtures/scale_docs/well-architected-framework.md",
          "tests/fixtures/scale_docs/well-architected-framework.md",
          "tests/fixtures/scale_docs/well-architected-framework.md",
          "tests/fixtures/scale_docs/well-architected-framework.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 64.126166,
        "tokens": 4050
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "cost optimization strategies",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/cost-optimization.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.8666666666666667,
        "latency_ms": 67.354292,
        "tokens": 3985
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "incident response steps",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/incident-response.md",
          "tests/fixtures/scale_docs/incident-response.md",
          "tests/fixtures/scale_docs/incident-response.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.8666666666666667,
        "latency_ms": 61.046042,
        "tokens": 4937
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "multi-region deployment",
        "category": "semantic",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/multi-region-deployment.md",
          "tests/fixtures/scale_docs/multi-region-deployment.md",
          "tests/fixtures/scale_docs/multi-region-deployment.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.9333333333333333,
        "latency_ms": 56.05075,
        "tokens": 5321
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "ssh configuration security",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/ssh-configuration.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.9333333333333333,
        "latency_ms": 60.045083,
        "tokens": 3606
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "vpn tunneling protocols",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/vpn-tunneling.md",
          "tests/fixtures/scale_docs/vpn-tunneling.md",
          "tests/fixtures/scale_docs/firewall-rules.md",
          "tests/fixtures/scale_docs/ssh-configuration.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 0.5,
        "content_match": 1.0,
        "latency_ms": 64.797208,
        "tokens": 2344
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "websocket protocol overview",
        "category": "semantic",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/websocket-protocol.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 54.812958,
        "tokens": 3370
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "helm charts fundamentals",
        "category": "semantic",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/helm-charts.md",
          "tests/fixtures/scale_docs/helm-charts.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 62.615584,
        "tokens": 1657
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "linux process management",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/linux-process-management.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 65.369625,
        "tokens": 2957
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "network troubleshooting tools",
        "category": "semantic",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/network-troubleshooting.md",
          "tests/fixtures/scale_docs/network-troubleshooting.md",
          "tests/fixtures/scale_docs/network-troubleshooting.md",
          "tests/fixtures/scale_docs/network-troubleshooting.md",
          "tests/fixtures/scale_docs/network-troubleshooting.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 59.734667,
        "tokens": 3817
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "database replication types",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/database-replication.md",
          "tests/fixtures/scale_docs/database-replication.md",
          "tests/fixtures/scale_docs/database-replication.md",
          "tests/fixtures/scale_docs/database-replication.md",
          "tests/fixtures/scale_docs/database-replication.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.9333333333333333,
        "latency_ms": 61.535917,
        "tokens": 4948
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "nosql design patterns",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/nosql-patterns.md",
          "tests/fixtures/scale_docs/nosql-patterns.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.8,
        "latency_ms": 59.788583,
        "tokens": 5177
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "sql query optimization",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/sql-query-optimization.md",
          "tests/fixtures/scale_docs/sql-query-optimization.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 1.0,
        "latency_ms": 60.042125,
        "tokens": 4289
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "data pipeline design",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/data-pipeline-design.md",
          "tests/fixtures/scale_docs/data-pipeline-design.md",
          "tests/fixtures/scale_docs/data-pipeline-design.md",
          "tests/fixtures/scale_docs/data-pipeline-design.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.9333333333333333,
        "latency_ms": 61.366417,
        "tokens": 6041
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "testing strategies for software",
        "category": "semantic",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/testing-strategies.md",
          "tests/fixtures/scale_docs/testing-strategies.md",
          "tests/fixtures/scale_docs/testing-strategies.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.9333333333333333,
        "latency_ms": 65.340708,
        "tokens": 4982
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "dependency injection benefits",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/dependency-injection.md",
          "tests/fixtures/scale_docs/dependency-injection.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.9333333333333333,
        "latency_ms": 60.529084,
        "tokens": 4724
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "behavioral design patterns",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/design-patterns-behavioral.md",
          "tests/fixtures/scale_docs/design-patterns-behavioral.md",
          "tests/fixtures/scale_docs/design-patterns-behavioral.md",
          "tests/fixtures/scale_docs/design-patterns-behavioral.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.8666666666666667,
        "latency_ms": 61.652917,
        "tokens": 5171
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "creational design patterns",
        "category": "semantic",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/design-patterns-creational.md",
          "tests/fixtures/scale_docs/design-patterns-creational.md",
          "tests/fixtures/scale_docs/design-patterns-creational.md"
        ],
        "rr": 1.0,
        "ndcg_5": 1.0,
        "hit_rate_1": 1.0,
        "hit_rate_5": 1.0,
        "precision_5": 1.0,
        "content_match": 0.9333333333333333,
        "latency_ms": 58.034458,
        "tokens": 5339
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "how to bake sourdough in a kubernetes cluster",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/kubernetes-architecture.md",
          "tests/fixtures/scale_docs/kubernetes-architecture.md",
          "tests/fixtures/scale_docs/kubernetes-architecture.md",
          "tests/fixtures/scale_docs/kubernetes-architecture.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 60.1675,
        "tokens": 5453
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "best brand of hiking boots for Mars",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/data-serialization.md",
          "tests/fixtures/scale_docs/cloud-storage-options.md",
          "tests/fixtures/scale_docs/cloud-storage-options.md",
          "tests/fixtures/scale_docs/cost-optimization.md",
          "tests/fixtures/scale_docs/package-management.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 85.722208,
        "tokens": 2193
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "quantum entanglement in photosynthesis",
        "category": "adversarial",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/http2-http3.md",
          "tests/fixtures/scale_docs/cryptography-basics.md",
          "tests/fixtures/scale_docs/cryptography-basics.md",
          "tests/fixtures/scale_docs/functional-programming.md",
          "tests/fixtures/scale_docs/http2-http3.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 71.759042,
        "tokens": 2192
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "the secret to eternal life according to python docs",
        "category": "adversarial",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/owasp-top-10.md",
          "tests/fixtures/scale_docs/cryptography-basics.md",
          "tests/fixtures/scale_docs/cryptography-basics.md",
          "tests/fixtures/scale_docs/cryptography-basics.md",
          "tests/fixtures/scale_docs/penetration-testing-methodology.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 92.351708,
        "tokens": 2314
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "where did I leave my keys",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/api-security.md",
          "tests/fixtures/scale_docs/ssh-configuration.md",
          "tests/fixtures/scale_docs/owasp-top-10.md",
          "tests/fixtures/scale_docs/security-audit-checklist.md",
          "tests/fixtures/scale_docs/api-security.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 79.285542,
        "tokens": 1097
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "recipe for disaster in distributed systems",
        "category": "adversarial",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/database-replication.md",
          "tests/fixtures/scale_docs/event-driven-architecture.md",
          "tests/fixtures/scale_docs/cloud-design-patterns.md",
          "tests/fixtures/scale_docs/disaster-recovery.md",
          "tests/fixtures/scale_docs/database-replication.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 81.339625,
        "tokens": 2105
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "blue whales vs sperm whales",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/data-serialization.md",
          "tests/fixtures/scale_docs/data-serialization.md",
          "tests/fixtures/scale_docs/data-serialization.md",
          "tests/fixtures/scale_docs/database-migrations.md",
          "tests/fixtures/scale_docs/ci-cd-pipelines.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 72.183458,
        "tokens": 4896
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "history of the Roman Empire",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/data-warehouse-modeling.md",
          "tests/fixtures/scale_docs/data-lake-architecture.md",
          "tests/fixtures/scale_docs/penetration-testing-methodology.md",
          "tests/fixtures/scale_docs/data-lake-architecture.md",
          "tests/fixtures/scale_docs/data-lake-architecture.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 78.525292,
        "tokens": 1457
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "how to play the banjo",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/spark-fundamentals.md",
          "tests/fixtures/scale_docs/spark-fundamentals.md",
          "tests/fixtures/scale_docs/stream-processing.md",
          "tests/fixtures/scale_docs/stream-processing.md",
          "tests/fixtures/scale_docs/data-lake-architecture.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 85.152375,
        "tokens": 2109
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "why is the sky blue",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/database-migrations.md",
          "tests/fixtures/scale_docs/ci-cd-pipelines.md",
          "tests/fixtures/scale_docs/linux-filesystem.md",
          "tests/fixtures/scale_docs/kubernetes-architecture.md",
          "tests/fixtures/scale_docs/ci-cd-pipelines.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 86.224875,
        "tokens": 1826
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "symptoms of a cold",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/serverless-architecture.md",
          "tests/fixtures/scale_docs/incident-response.md",
          "tests/fixtures/scale_docs/serverless-architecture.md",
          "tests/fixtures/scale_docs/zero-trust-architecture.md",
          "tests/fixtures/scale_docs/cost-optimization.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 88.773458,
        "tokens": 2149
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "movie recommendations for tonight",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/scale_docs/vpn-tunneling.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 82.836458,
        "tokens": 1332
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "stock market predictions for 2026",
        "category": "adversarial",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/data-lake-architecture.md",
          "tests/fixtures/scale_docs/concurrency-patterns.md",
          "tests/fixtures/scale_docs/elasticsearch-basics.md",
          "tests/fixtures/scale_docs/auto-scaling.md",
          "tests/fixtures/scale_docs/design-patterns-creational.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 89.837375,
        "tokens": 1791
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "philosophy of mind and AI",
        "category": "adversarial",
        "difficulty": "hard",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/event-driven-architecture.md",
          "tests/fixtures/scale_docs/design-patterns-creational.md",
          "tests/fixtures/scale_docs/zero-trust-architecture.md",
          "tests/fixtures/sample_docs/semantic-search.md",
          "tests/fixtures/scale_docs/concurrency-patterns.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 91.3385,
        "tokens": 1435
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "meaning of life 42",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/data-serialization.md",
          "tests/fixtures/scale_docs/cloud-storage-options.md",
          "tests/fixtures/scale_docs/data-lake-architecture.md",
          "tests/fixtures/scale_docs/incident-response.md",
          "tests/fixtures/scale_docs/helm-charts.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 91.862916,
        "tokens": 1244
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "how to win friends and influence people",
        "category": "adversarial",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/zero-trust-architecture.md",
          "tests/fixtures/scale_docs/nosql-patterns.md",
          "tests/fixtures/scale_docs/nosql-patterns.md",
          "tests/fixtures/sample_docs/semantic-search.md",
          "tests/fixtures/scale_docs/chaos-engineering.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 74.91925,
        "tokens": 2035
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "yoga for beginners",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/functional-programming.md",
          "tests/fixtures/sample_docs/vector-databases.md",
          "tests/fixtures/sample_docs/semantic-search.md",
          "tests/fixtures/scale_docs/chaos-engineering.md",
          "tests/fixtures/scale_docs/design-patterns-creational.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 95.223834,
        "tokens": 1836
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "best coffee shops in London",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/design-patterns-structural.md",
          "tests/fixtures/scale_docs/design-patterns-structural.md",
          "tests/fixtures/scale_docs/elasticsearch-basics.md",
          "tests/fixtures/scale_docs/design-patterns-structural.md",
          "tests/fixtures/scale_docs/shell-scripting.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 76.728583,
        "tokens": 1619
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "gardening tips for summer",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/network-security-hardening.md",
          "tests/fixtures/scale_docs/multi-region-deployment.md",
          "tests/fixtures/scale_docs/auto-scaling.md",
          "tests/fixtures/scale_docs/network-security-hardening.md",
          "tests/fixtures/scale_docs/network-security-hardening.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 80.303167,
        "tokens": 1490
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "how to repair a flat tire",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/database-backup-recovery.md",
          "tests/fixtures/scale_docs/database-backup-recovery.md",
          "tests/fixtures/scale_docs/incident-response.md",
          "tests/fixtures/scale_docs/database-backup-recovery.md",
          "tests/fixtures/scale_docs/infrastructure-as-code.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 85.91975,
        "tokens": 2169
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "history of the internet",
        "category": "adversarial",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/http2-http3.md",
          "tests/fixtures/scale_docs/tcp-ip-fundamentals.md",
          "tests/fixtures/scale_docs/http2-http3.md",
          "tests/fixtures/scale_docs/tcp-ip-fundamentals.md",
          "tests/fixtures/scale_docs/cloud-networking.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 73.36225,
        "tokens": 5456
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "space travel in the future",
        "category": "adversarial",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/concurrency-patterns.md",
          "tests/fixtures/scale_docs/multi-region-deployment.md",
          "tests/fixtures/scale_docs/event-driven-architecture.md",
          "tests/fixtures/scale_docs/event-driven-architecture.md",
          "tests/fixtures/scale_docs/infrastructure-as-code.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 87.865541,
        "tokens": 2307
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "the art of war summary",
        "category": "adversarial",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/incident-response.md",
          "tests/fixtures/scale_docs/penetration-testing-methodology.md",
          "tests/fixtures/scale_docs/incident-response.md",
          "tests/fixtures/scale_docs/penetration-testing-methodology.md",
          "tests/fixtures/scale_docs/ci-cd-pipelines.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 73.369458,
        "tokens": 3360
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "meditation techniques",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/stream-processing.md",
          "tests/fixtures/scale_docs/stream-processing.md",
          "tests/fixtures/sample_docs/semantic-search.md",
          "tests/fixtures/scale_docs/stream-processing.md",
          "tests/fixtures/scale_docs/stream-processing.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 74.484083,
        "tokens": 1771
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "learning a new language fast",
        "category": "adversarial",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/data-serialization.md",
          "tests/fixtures/scale_docs/data-serialization.md",
          "tests/fixtures/sample_docs/semantic-search.md",
          "tests/fixtures/scale_docs/container-security.md",
          "tests/fixtures/sample_docs/vector-databases.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 75.265625,
        "tokens": 1405
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "climate change impacts",
        "category": "adversarial",
        "difficulty": "medium",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/incident-response.md",
          "tests/fixtures/scale_docs/incident-response.md",
          "tests/fixtures/scale_docs/incident-response.md",
          "tests/fixtures/scale_docs/chaos-engineering.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 90.718459,
        "tokens": 3113
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "renewable energy sources",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/container-fundamentals.md",
          "tests/fixtures/scale_docs/disaster-recovery.md",
          "tests/fixtures/scale_docs/serverless-architecture.md",
          "tests/fixtures/scale_docs/disaster-recovery.md",
          "tests/fixtures/scale_docs/vpn-tunneling.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 75.7905,
        "tokens": 3744
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "healthy eating habits",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/load-balancing.md",
          "tests/fixtures/scale_docs/load-balancing.md",
          "tests/fixtures/scale_docs/database-sharding.md",
          "tests/fixtures/sample_docs/caching.md",
          "tests/fixtures/scale_docs/api-gateway-patterns.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 93.447917,
        "tokens": 1587
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "travel tips for Japan",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/disaster-recovery.md",
          "tests/fixtures/scale_docs/service-mesh.md",
          "tests/fixtures/scale_docs/connection-pooling.md",
          "tests/fixtures/scale_docs/sql-query-optimization.md",
          "tests/fixtures/scale_docs/websocket-protocol.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 102.155166,
        "tokens": 2480
      },
      {
        "competitor": "colbert-replace-bm25",
        "run": 2,
        "query": "basics of photography",
        "category": "adversarial",
        "difficulty": "easy",
        "retrieved_sources": [
          "tests/fixtures/scale_docs/container-fundamentals.md",
          "tests/fixtures/scale_docs/container-fundamentals.md",
          "tests/fixtures/scale_docs/container-fundamentals.md",
          "tests/fixtures/scale_docs/container-fundamentals.md",
          "tests/fixtures/scale_docs/container-security.md"
        ],
        "rr": 0.0,
        "ndcg_5": 0.0,
        "hit_rate_1": 0.0,
        "hit_rate_5": 0.0,
        "precision_5": 0.0,
        "content_match": -1.0,
        "latency_ms": 68.543917,
        "tokens": 1288
      }
    ]
  }
}