{
  "incomingQuery": "wing pressure distribution",
  "normalizedQuery": "wing pressure distribution",
  "dataset": "cranfield",
  "architectureVersion": "v0-cranfield-opensearch-baseline",
  "traceability": {
    "missionId": "M-0001",
    "articleIds": [
      "A-0002"
    ],
    "searchEvolutionId": "SE-0001",
    "architectureVersion": "ARCH-0.1",
    "architectureSlug": "v0-cranfield-opensearch-baseline",
    "architectureDecisionIds": [
      "ADL-0001"
    ],
    "gitTag": "v0.1.0",
    "gitVersion": "v0.1.0",
    "endpointVersion": "v0.1",
    "datasetId": "cranfield"
  },
  "searchArchitecture": {
    "id": "prf-rerank",
    "label": "SE-0002 pseudo-relevance-feedback rerank candidate",
    "status": "candidate",
    "searchEvolutionId": "SE-0002",
    "architectureVersion": "ARCH-0.2-candidate",
    "architectureSlug": "v0.2-candidate-cranfield-prf-rerank",
    "architectureDecisionIds": [
      "ADL-0002"
    ],
    "queryStrategy": "Retrieve the top 50 with field-sum BM25, derive feedback terms from the highest-ranked titles and abstracts, then rerank candidates with original-query and feedback-term coverage.",
    "rankingLogic": [
      "Use the field-sum candidate as the OpenSearch retrieval floor.",
      "Extract expansion terms from the top retrieved titles and abstracts using pseudo-relevance feedback.",
      "Normalize the OpenSearch score within the retrieved set.",
      "Add deterministic original-query and feedback-term title/abstract coverage bonuses.",
      "Add a small original-query phrase coherence bonus for adjacent significant query terms in titles and abstracts.",
      "Return the requested result count after reranking the top 50 candidates.",
      "No query-specific result overrides, runtime LLM calls, personalization, or learning-to-rank model are used in the candidate."
    ],
    "techniquesApplied": [
      "OpenSearch English analyzer",
      "BM25 field-specific match scoring",
      "summed title, abstract, and text evidence",
      "pseudo-relevance feedback over top titles and abstracts",
      "deterministic title/abstract coverage rerank",
      "deterministic phrase coherence rerank",
      "dataset filter for Cranfield documents"
    ],
    "targetedFailureGroups": [
      "zero_relevant_at_k",
      "late_first_relevant",
      "lexical_noise_low_precision",
      "partial_recall"
    ]
  },
  "queryTransformations": [
    "none"
  ],
  "openSearch": {
    "index": "cranfield-v0",
    "query": {
      "size": 50,
      "track_total_hits": true,
      "_source": [
        "id",
        "dataset",
        "title",
        "abstract",
        "text",
        "source"
      ],
      "query": {
        "bool": {
          "filter": [
            {
              "term": {
                "dataset": "cranfield"
              }
            }
          ],
          "should": [
            {
              "match": {
                "title": {
                  "query": "wing pressure distribution",
                  "operator": "or",
                  "boost": 3
                }
              }
            },
            {
              "match": {
                "abstract": {
                  "query": "wing pressure distribution",
                  "operator": "or",
                  "boost": 2
                }
              }
            },
            {
              "match": {
                "text": {
                  "query": "wing pressure distribution",
                  "operator": "or",
                  "boost": 1
                }
              }
            }
          ],
          "minimum_should_match": 1
        }
      }
    }
  },
  "reranking": {
    "strategy": "pseudo_relevance_feedback_title_abstract_coverage",
    "retrieveSize": 50,
    "returnedSize": 10,
    "feedbackDocuments": 4,
    "feedbackTerms": 8,
    "originalWeight": 0.06,
    "expansionWeight": 0.14,
    "phraseWeight": 0.01,
    "expansionTerms": [
      "wings",
      "cross",
      "delta",
      "distributions",
      "rhombic",
      "sections",
      "nacelle",
      "lift"
    ]
  },
  "retrievalFlow": [
    {
      "id": "query",
      "title": "Query",
      "detail": "User submits a short technical search phrase."
    },
    {
      "id": "normalize",
      "title": "Normalize",
      "detail": "Whitespace is trimmed and repeated spaces are collapsed."
    },
    {
      "id": "build",
      "title": "OpenSearch Query",
      "detail": "Summed field-specific BM25 match clauses target title, abstract, and text."
    },
    {
      "id": "retrieve",
      "title": "Retrieve",
      "detail": "OpenSearch retrieves the top 50 candidates from the live cranfield-v0 index."
    },
    {
      "id": "rank",
      "title": "Rank",
      "detail": "Summed field-specific BM25 scores order the candidate pool."
    },
    {
      "id": "feedback",
      "title": "Feedback",
      "detail": "Pseudo-relevance feedback extracts expansion terms from the top-ranked titles and abstracts."
    },
    {
      "id": "rerank",
      "title": "Rerank",
      "detail": "Candidates are reranked with normalized BM25 plus original-term, feedback-term, and phrase-coherence coverage bonuses."
    },
    {
      "id": "explain",
      "title": "Explain",
      "detail": "The response includes the generated query, decisions, latency, and top-result rationale."
    }
  ],
  "retrievalStrategy": "Retrieve the top 50 with field-sum BM25, derive feedback terms from the highest-ranked titles and abstracts, then rerank candidates with original-query and feedback-term coverage.",
  "rankingLogic": [
    "Use the field-sum candidate as the OpenSearch retrieval floor.",
    "Extract expansion terms from the top retrieved titles and abstracts using pseudo-relevance feedback.",
    "Normalize the OpenSearch score within the retrieved set.",
    "Add deterministic original-query and feedback-term title/abstract coverage bonuses.",
    "Add a small original-query phrase coherence bonus for adjacent significant query terms in titles and abstracts.",
    "Return the requested result count after reranking the top 50 candidates.",
    "No query-specific result overrides, runtime LLM calls, personalization, or learning-to-rank model are used in the candidate."
  ],
  "acceptedArchitectureDecisions": [
    {
      "id": "ADL-0001",
      "legacyIds": [
        "ADL-001"
      ],
      "status": "accepted",
      "summary": "Start Phase 1 with a transparent OpenSearch BM25 Cranfield baseline before adding query understanding or ranking layers."
    }
  ],
  "techniquesApplied": [
    "OpenSearch English analyzer",
    "BM25 field-specific match scoring",
    "summed title, abstract, and text evidence",
    "pseudo-relevance feedback over top titles and abstracts",
    "deterministic title/abstract coverage rerank",
    "deterministic phrase coherence rerank",
    "dataset filter for Cranfield documents"
  ],
  "topResults": [
    {
      "rank": 1,
      "id": "250",
      "score": 20.352568,
      "rerankScore": 1.915,
      "originalRank": 1,
      "title": "pressure distributions at zero lift for delta wings with rhombic cross sections .",
      "explanation": "Retrieved by field-sum OpenSearch BM25, then reranked with deterministic pseudo-relevance-feedback title/abstract coverage."
    },
    {
      "rank": 2,
      "id": "1092",
      "score": 19.60935,
      "rerankScore": 1.611,
      "originalRank": 3,
      "title": "wing-nacelle-propeller interference for wings of various spans . force and pressure distribution tests .",
      "explanation": "Retrieved by field-sum OpenSearch BM25, then reranked with deterministic pseudo-relevance-feedback title/abstract coverage."
    },
    {
      "rank": 3,
      "id": "612",
      "score": 17.975407,
      "rerankScore": 1.4232,
      "originalRank": 6,
      "title": "pressure distributions and flow patterns at m=4 . on some delta wings of inverted 'v' cross section .",
      "explanation": "Retrieved by field-sum OpenSearch BM25, then reranked with deterministic pseudo-relevance-feedback title/abstract coverage."
    },
    {
      "rank": 4,
      "id": "675",
      "score": 17.296026,
      "rerankScore": 1.3848,
      "originalRank": 7,
      "title": "pressure distribution and surface flow on 5( and 9( thick wings with curved tip and 60degree sweepback .",
      "explanation": "Retrieved by field-sum OpenSearch BM25, then reranked with deterministic pseudo-relevance-feedback title/abstract coverage."
    },
    {
      "rank": 5,
      "id": "247",
      "score": 16.897211,
      "rerankScore": 1.3652,
      "originalRank": 8,
      "title": "the calculation of the pressure distribution on thick wings of small aspect ratio at zero lift in subsonic flow .",
      "explanation": "Retrieved by field-sum OpenSearch BM25, then reranked with deterministic pseudo-relevance-feedback title/abstract coverage."
    },
    {
      "rank": 6,
      "id": "545",
      "score": 18.807661,
      "rerankScore": 1.3616,
      "originalRank": 4,
      "title": "calculation of sideslip derivatives and pressure distribution in asymmetric flight conditions on a slender wing-fin configuration .",
      "explanation": "Retrieved by field-sum OpenSearch BM25, then reranked with deterministic pseudo-relevance-feedback title/abstract coverage."
    },
    {
      "rank": 7,
      "id": "652",
      "score": 19.943932,
      "rerankScore": 1.3499,
      "originalRank": 2,
      "title": "pressure distribution on two dimensional wings near the ground .",
      "explanation": "Retrieved by field-sum OpenSearch BM25, then reranked with deterministic pseudo-relevance-feedback title/abstract coverage."
    },
    {
      "rank": 8,
      "id": "1090",
      "score": 18.390482,
      "rerankScore": 1.2886,
      "originalRank": 5,
      "title": "pressure distribution and force measurements on a vtol tilting wing-propeller model . pt .ii, analysis of results .",
      "explanation": "Retrieved by field-sum OpenSearch BM25, then reranked with deterministic pseudo-relevance-feedback title/abstract coverage."
    },
    {
      "rank": 9,
      "id": "147",
      "score": 12.709014,
      "rerankScore": 1.2869,
      "originalRank": 29,
      "title": "supersonic flow past slender pointed wings with ?similar? cross sections at zero lift .",
      "explanation": "Retrieved by field-sum OpenSearch BM25, then reranked with deterministic pseudo-relevance-feedback title/abstract coverage."
    },
    {
      "rank": 10,
      "id": "1064",
      "score": 15.6051855,
      "rerankScore": 1.1767,
      "originalRank": 9,
      "title": "propeller slipstream effects as determined from wing pressure distribution on a large-scale six-propeller vtol model at static thrust .",
      "explanation": "Retrieved by field-sum OpenSearch BM25, then reranked with deterministic pseudo-relevance-feedback title/abstract coverage."
    }
  ],
  "latency": {
    "apiMs": 513,
    "openSearchTookMs": 25,
    "expandedOpenSearchTookMs": null
  },
  "milestone": {
    "id": "arch-0.2-prf",
    "label": "ARCH-0.2 candidate refined PRF rerank",
    "searchEvolutionId": "SE-0002",
    "architectureVersion": "ARCH-0.2-candidate",
    "architecture": "prf-rerank",
    "status": "candidate-transferability-pending",
    "resultSummary": {
      "ndcgAt10": 0.326,
      "binaryNdcgAt20": 0.4563
    }
  }
}