{
  "generatedAt": "2026-07-05T07:42:20.702Z",
  "source": {
    "report": "reports/search-eval.json",
    "history": "reports/search-eval-history.jsonl",
    "cases": "search-service/eval-cases.json"
  },
  "historyCount": 17,
  "latest": {
    "generatedAt": "2026-07-05T07:42:12.496Z",
    "api": "https://search.infoedu.co.kr",
    "limit": 5,
    "rerank": false,
    "summary": {
      "total": 20,
      "pass": 20,
      "fail": 0,
      "positiveTop1": 1,
      "positiveRecall": 1,
      "positiveMrr": 1,
      "negativePass": 1,
      "sortedPass": 1,
      "avgLatencyMs": 237.2,
      "p95LatencyMs": 279.6,
      "maxLatencyMs": 282.3,
      "stageCounts": {
        "confidence_gate": 20,
        "doc_rank": 20,
        "equrl_filter": 1,
        "evidence": 20,
        "fts": 20,
        "korean_morphology": 20,
        "lexical_fallback": 17,
        "operator_and": 1,
        "operator_or": 19,
        "query_normalized": 8,
        "vector": 20
      }
    },
    "failedCases": []
  },
  "previous": {
    "generatedAt": "2026-07-05T07:40:01.913Z",
    "api": "https://search.infoedu.co.kr",
    "limit": 5,
    "rerank": false,
    "summary": {
      "total": 20,
      "pass": 20,
      "fail": 0,
      "positiveTop1": 1,
      "positiveRecall": 1,
      "positiveMrr": 1,
      "negativePass": 1,
      "sortedPass": 1,
      "avgLatencyMs": 238.6,
      "p95LatencyMs": 280.9,
      "maxLatencyMs": 284.9,
      "stageCounts": {
        "confidence_gate": 20,
        "doc_rank": 20,
        "equrl_filter": 1,
        "evidence": 20,
        "fts": 20,
        "korean_morphology": 20,
        "lexical_fallback": 17,
        "operator_and": 1,
        "operator_or": 19,
        "query_normalized": 8,
        "vector": 20
      }
    },
    "failedCaseIds": []
  },
  "deltas": {
    "passRate": 0,
    "positiveTop1": 0,
    "positiveRecall": 0,
    "positiveMrr": 0,
    "p95LatencyMs": -1.3,
    "avgLatencyMs": -1.4
  },
  "stageCoverage": [
    {
      "stage": "confidence_gate",
      "count": 20
    },
    {
      "stage": "doc_rank",
      "count": 20
    },
    {
      "stage": "evidence",
      "count": 20
    },
    {
      "stage": "fts",
      "count": 20
    },
    {
      "stage": "korean_morphology",
      "count": 20
    },
    {
      "stage": "vector",
      "count": 20
    },
    {
      "stage": "operator_or",
      "count": 19
    },
    {
      "stage": "lexical_fallback",
      "count": 17
    },
    {
      "stage": "query_normalized",
      "count": 8
    },
    {
      "stage": "equrl_filter",
      "count": 1
    },
    {
      "stage": "operator_and",
      "count": 1
    }
  ],
  "history": [
    {
      "generatedAt": "2026-06-21T14:41:05.246Z",
      "api": "https://search.infoedu.co.kr",
      "limit": 5,
      "rerank": false,
      "summary": {
        "total": 18,
        "pass": 18,
        "fail": 0,
        "positiveTop1": 1,
        "positiveRecall": 1,
        "positiveMrr": 1,
        "negativePass": 1,
        "sortedPass": 1,
        "avgLatencyMs": 235.9,
        "p95LatencyMs": 278.4,
        "maxLatencyMs": 278.4,
        "stageCounts": {
          "confidence_gate": 18,
          "doc_rank": 18,
          "equrl_filter": 1,
          "evidence": 18,
          "fts": 18,
          "korean_morphology": 18,
          "lexical_fallback": 15,
          "operator_and": 1,
          "operator_or": 17,
          "query_normalized": 6,
          "vector": 18
        }
      },
      "failedCaseIds": []
    },
    {
      "generatedAt": "2026-06-21T14:41:39.777Z",
      "api": "https://search.infoedu.co.kr",
      "limit": 5,
      "rerank": false,
      "summary": {
        "total": 19,
        "pass": 19,
        "fail": 0,
        "positiveTop1": 1,
        "positiveRecall": 1,
        "positiveMrr": 1,
        "negativePass": 1,
        "sortedPass": 1,
        "avgLatencyMs": 234.4,
        "p95LatencyMs": 281.2,
        "maxLatencyMs": 281.2,
        "stageCounts": {
          "confidence_gate": 19,
          "doc_rank": 19,
          "equrl_filter": 1,
          "evidence": 19,
          "fts": 19,
          "korean_morphology": 19,
          "lexical_fallback": 16,
          "operator_and": 1,
          "operator_or": 18,
          "query_normalized": 7,
          "vector": 19
        }
      },
      "failedCaseIds": []
    },
    {
      "generatedAt": "2026-06-21T15:08:59.012Z",
      "api": "https://search.infoedu.co.kr",
      "limit": 5,
      "rerank": false,
      "summary": {
        "total": 19,
        "pass": 19,
        "fail": 0,
        "positiveTop1": 1,
        "positiveRecall": 1,
        "positiveMrr": 1,
        "negativePass": 1,
        "sortedPass": 1,
        "avgLatencyMs": 234.6,
        "p95LatencyMs": 299.1,
        "maxLatencyMs": 299.1,
        "stageCounts": {
          "confidence_gate": 19,
          "doc_rank": 19,
          "equrl_filter": 1,
          "evidence": 19,
          "fts": 19,
          "korean_morphology": 19,
          "lexical_fallback": 16,
          "operator_and": 1,
          "operator_or": 18,
          "query_normalized": 7,
          "vector": 19
        }
      },
      "failedCaseIds": []
    },
    {
      "generatedAt": "2026-06-21T15:23:27.044Z",
      "api": "https://search.infoedu.co.kr",
      "limit": 5,
      "rerank": false,
      "summary": {
        "total": 19,
        "pass": 19,
        "fail": 0,
        "positiveTop1": 1,
        "positiveRecall": 1,
        "positiveMrr": 1,
        "negativePass": 1,
        "sortedPass": 1,
        "avgLatencyMs": 233.4,
        "p95LatencyMs": 280,
        "maxLatencyMs": 280,
        "stageCounts": {
          "confidence_gate": 19,
          "doc_rank": 19,
          "equrl_filter": 1,
          "evidence": 19,
          "fts": 19,
          "korean_morphology": 19,
          "lexical_fallback": 16,
          "operator_and": 1,
          "operator_or": 18,
          "query_normalized": 7,
          "vector": 19
        }
      },
      "failedCaseIds": []
    },
    {
      "generatedAt": "2026-06-21T15:29:47.246Z",
      "api": "https://search.infoedu.co.kr",
      "limit": 5,
      "rerank": false,
      "summary": {
        "total": 19,
        "pass": 19,
        "fail": 0,
        "positiveTop1": 1,
        "positiveRecall": 1,
        "positiveMrr": 1,
        "negativePass": 1,
        "sortedPass": 1,
        "avgLatencyMs": 234,
        "p95LatencyMs": 284.9,
        "maxLatencyMs": 284.9,
        "stageCounts": {
          "confidence_gate": 19,
          "doc_rank": 19,
          "equrl_filter": 1,
          "evidence": 19,
          "fts": 19,
          "korean_morphology": 19,
          "lexical_fallback": 16,
          "operator_and": 1,
          "operator_or": 18,
          "query_normalized": 7,
          "vector": 19
        }
      },
      "failedCaseIds": []
    },
    {
      "generatedAt": "2026-06-21T15:31:34.236Z",
      "api": "https://search.infoedu.co.kr",
      "limit": 5,
      "rerank": false,
      "summary": {
        "total": 19,
        "pass": 19,
        "fail": 0,
        "positiveTop1": 1,
        "positiveRecall": 1,
        "positiveMrr": 1,
        "negativePass": 1,
        "sortedPass": 1,
        "avgLatencyMs": 232.7,
        "p95LatencyMs": 284.3,
        "maxLatencyMs": 284.3,
        "stageCounts": {
          "confidence_gate": 19,
          "doc_rank": 19,
          "equrl_filter": 1,
          "evidence": 19,
          "fts": 19,
          "korean_morphology": 19,
          "lexical_fallback": 16,
          "operator_and": 1,
          "operator_or": 18,
          "query_normalized": 7,
          "vector": 19
        }
      },
      "failedCaseIds": []
    },
    {
      "generatedAt": "2026-06-21T15:35:47.446Z",
      "api": "https://search.infoedu.co.kr",
      "limit": 5,
      "rerank": false,
      "summary": {
        "total": 19,
        "pass": 19,
        "fail": 0,
        "positiveTop1": 1,
        "positiveRecall": 1,
        "positiveMrr": 1,
        "negativePass": 1,
        "sortedPass": 1,
        "avgLatencyMs": 243.3,
        "p95LatencyMs": 312,
        "maxLatencyMs": 312,
        "stageCounts": {
          "confidence_gate": 19,
          "doc_rank": 19,
          "equrl_filter": 1,
          "evidence": 19,
          "fts": 19,
          "korean_morphology": 19,
          "lexical_fallback": 16,
          "operator_and": 1,
          "operator_or": 18,
          "query_normalized": 7,
          "vector": 19
        }
      },
      "failedCaseIds": []
    },
    {
      "generatedAt": "2026-06-21T15:42:02.770Z",
      "api": "https://search.infoedu.co.kr",
      "limit": 5,
      "rerank": false,
      "summary": {
        "total": 19,
        "pass": 19,
        "fail": 0,
        "positiveTop1": 1,
        "positiveRecall": 1,
        "positiveMrr": 1,
        "negativePass": 1,
        "sortedPass": 1,
        "avgLatencyMs": 249.5,
        "p95LatencyMs": 415,
        "maxLatencyMs": 415,
        "stageCounts": {
          "confidence_gate": 19,
          "doc_rank": 19,
          "equrl_filter": 1,
          "evidence": 19,
          "fts": 19,
          "korean_morphology": 19,
          "lexical_fallback": 16,
          "operator_and": 1,
          "operator_or": 18,
          "query_normalized": 7,
          "vector": 19
        }
      },
      "failedCaseIds": []
    },
    {
      "generatedAt": "2026-06-21T16:00:11.204Z",
      "api": "https://search.infoedu.co.kr",
      "limit": 5,
      "rerank": false,
      "summary": {
        "total": 19,
        "pass": 19,
        "fail": 0,
        "positiveTop1": 1,
        "positiveRecall": 1,
        "positiveMrr": 1,
        "negativePass": 1,
        "sortedPass": 1,
        "avgLatencyMs": 241.7,
        "p95LatencyMs": 290.2,
        "maxLatencyMs": 290.2,
        "stageCounts": {
          "confidence_gate": 19,
          "doc_rank": 19,
          "equrl_filter": 1,
          "evidence": 19,
          "fts": 19,
          "korean_morphology": 19,
          "lexical_fallback": 16,
          "operator_and": 1,
          "operator_or": 18,
          "query_normalized": 7,
          "vector": 19
        }
      },
      "failedCaseIds": []
    },
    {
      "generatedAt": "2026-06-21T16:05:25.412Z",
      "api": "https://search.infoedu.co.kr",
      "limit": 5,
      "rerank": false,
      "summary": {
        "total": 19,
        "pass": 19,
        "fail": 0,
        "positiveTop1": 1,
        "positiveRecall": 1,
        "positiveMrr": 1,
        "negativePass": 1,
        "sortedPass": 1,
        "avgLatencyMs": 239.5,
        "p95LatencyMs": 294.3,
        "maxLatencyMs": 294.3,
        "stageCounts": {
          "confidence_gate": 19,
          "doc_rank": 19,
          "equrl_filter": 1,
          "evidence": 19,
          "fts": 19,
          "korean_morphology": 19,
          "lexical_fallback": 16,
          "operator_and": 1,
          "operator_or": 18,
          "query_normalized": 7,
          "vector": 19
        }
      },
      "failedCaseIds": []
    },
    {
      "generatedAt": "2026-06-21T17:57:19.702Z",
      "api": "https://search.infoedu.co.kr",
      "limit": 5,
      "rerank": false,
      "summary": {
        "total": 19,
        "pass": 19,
        "fail": 0,
        "positiveTop1": 1,
        "positiveRecall": 1,
        "positiveMrr": 1,
        "negativePass": 1,
        "sortedPass": 1,
        "avgLatencyMs": 235.1,
        "p95LatencyMs": 281.2,
        "maxLatencyMs": 281.2,
        "stageCounts": {
          "confidence_gate": 19,
          "doc_rank": 19,
          "equrl_filter": 1,
          "evidence": 19,
          "fts": 19,
          "korean_morphology": 19,
          "lexical_fallback": 16,
          "operator_and": 1,
          "operator_or": 18,
          "query_normalized": 7,
          "vector": 19
        }
      },
      "failedCaseIds": []
    },
    {
      "generatedAt": "2026-06-21T18:37:28.444Z",
      "api": "https://search.infoedu.co.kr",
      "limit": 5,
      "rerank": false,
      "summary": {
        "total": 20,
        "pass": 20,
        "fail": 0,
        "positiveTop1": 1,
        "positiveRecall": 1,
        "positiveMrr": 1,
        "negativePass": 1,
        "sortedPass": 1,
        "avgLatencyMs": 232.8,
        "p95LatencyMs": 278.8,
        "maxLatencyMs": 285.8,
        "stageCounts": {
          "confidence_gate": 20,
          "doc_rank": 20,
          "equrl_filter": 1,
          "evidence": 20,
          "fts": 20,
          "korean_morphology": 20,
          "lexical_fallback": 17,
          "operator_and": 1,
          "operator_or": 19,
          "query_normalized": 8,
          "vector": 20
        }
      },
      "failedCaseIds": []
    },
    {
      "generatedAt": "2026-06-21T18:37:41.288Z",
      "api": "https://search.infoedu.co.kr",
      "limit": 5,
      "rerank": false,
      "summary": {
        "total": 20,
        "pass": 20,
        "fail": 0,
        "positiveTop1": 1,
        "positiveRecall": 1,
        "positiveMrr": 1,
        "negativePass": 1,
        "sortedPass": 1,
        "avgLatencyMs": 232.2,
        "p95LatencyMs": 279.1,
        "maxLatencyMs": 284.2,
        "stageCounts": {
          "confidence_gate": 20,
          "doc_rank": 20,
          "equrl_filter": 1,
          "evidence": 20,
          "fts": 20,
          "korean_morphology": 20,
          "lexical_fallback": 17,
          "operator_and": 1,
          "operator_or": 19,
          "query_normalized": 8,
          "vector": 20
        }
      },
      "failedCaseIds": []
    },
    {
      "generatedAt": "2026-06-21T18:38:37.455Z",
      "api": "https://search.infoedu.co.kr",
      "limit": 5,
      "rerank": false,
      "summary": {
        "total": 20,
        "pass": 20,
        "fail": 0,
        "positiveTop1": 1,
        "positiveRecall": 1,
        "positiveMrr": 1,
        "negativePass": 1,
        "sortedPass": 1,
        "avgLatencyMs": 233.9,
        "p95LatencyMs": 280.8,
        "maxLatencyMs": 285,
        "stageCounts": {
          "confidence_gate": 20,
          "doc_rank": 20,
          "equrl_filter": 1,
          "evidence": 20,
          "fts": 20,
          "korean_morphology": 20,
          "lexical_fallback": 17,
          "operator_and": 1,
          "operator_or": 19,
          "query_normalized": 8,
          "vector": 20
        }
      },
      "failedCaseIds": []
    },
    {
      "generatedAt": "2026-07-05T07:39:05.676Z",
      "api": "https://search.infoedu.co.kr",
      "limit": 5,
      "rerank": false,
      "summary": {
        "total": 20,
        "pass": 17,
        "fail": 3,
        "positiveTop1": 1,
        "positiveRecall": 1,
        "positiveMrr": 1,
        "negativePass": 1,
        "sortedPass": 1,
        "avgLatencyMs": 676,
        "p95LatencyMs": 2146.1,
        "maxLatencyMs": 5037.4,
        "stageCounts": {
          "confidence_gate": 20,
          "doc_rank": 20,
          "equrl_filter": 1,
          "evidence": 20,
          "fts": 20,
          "korean_morphology": 20,
          "lexical_fallback": 17,
          "operator_and": 1,
          "operator_or": 19,
          "query_normalized": 8,
          "vector": 20
        }
      },
      "failedCaseIds": [
        "rag_exact",
        "qdrant_workflow_hybrid",
        "deep_learning_english_phrase"
      ]
    },
    {
      "generatedAt": "2026-07-05T07:40:01.913Z",
      "api": "https://search.infoedu.co.kr",
      "limit": 5,
      "rerank": false,
      "summary": {
        "total": 20,
        "pass": 20,
        "fail": 0,
        "positiveTop1": 1,
        "positiveRecall": 1,
        "positiveMrr": 1,
        "negativePass": 1,
        "sortedPass": 1,
        "avgLatencyMs": 238.6,
        "p95LatencyMs": 280.9,
        "maxLatencyMs": 284.9,
        "stageCounts": {
          "confidence_gate": 20,
          "doc_rank": 20,
          "equrl_filter": 1,
          "evidence": 20,
          "fts": 20,
          "korean_morphology": 20,
          "lexical_fallback": 17,
          "operator_and": 1,
          "operator_or": 19,
          "query_normalized": 8,
          "vector": 20
        }
      },
      "failedCaseIds": []
    },
    {
      "generatedAt": "2026-07-05T07:42:12.496Z",
      "api": "https://search.infoedu.co.kr",
      "limit": 5,
      "rerank": false,
      "summary": {
        "total": 20,
        "pass": 20,
        "fail": 0,
        "positiveTop1": 1,
        "positiveRecall": 1,
        "positiveMrr": 1,
        "negativePass": 1,
        "sortedPass": 1,
        "avgLatencyMs": 237.2,
        "p95LatencyMs": 279.6,
        "maxLatencyMs": 282.3,
        "stageCounts": {
          "confidence_gate": 20,
          "doc_rank": 20,
          "equrl_filter": 1,
          "evidence": 20,
          "fts": 20,
          "korean_morphology": 20,
          "lexical_fallback": 17,
          "operator_and": 1,
          "operator_or": 19,
          "query_normalized": 8,
          "vector": 20
        }
      },
      "failedCaseIds": []
    }
  ]
}
