pub struct PaperHit {Show 13 fields
pub doi: Option<String>,
pub openalex_id: String,
pub arxiv: Option<String>,
pub title: String,
pub authors: Vec<String>,
pub year: Option<i32>,
pub venue: Option<String>,
pub abstract_: Option<String>,
pub cited_by_count: u64,
pub oa_status: Option<String>,
pub fwci: Option<f64>,
pub cited_by_percentile_year_min: Option<u8>,
pub source: DiscoverySource,
}Expand description
One candidate paper returned by discovery search.
All fields except openalex_id / title / cited_by_count /
source are Option because OpenAlex omits them for some records
(e.g. no DOI for a dataset, no abstract for an Elsevier-gated
abstract). Absent fields serialize to JSON null (not skipped) so
the wire shape is stable for agents.
Fields§
§doi: Option<String>Bare DOI (lower-cased, https://doi.org/ prefix stripped), or
None when the record has no DOI.
openalex_id: StringOpenAlex Work ID (W…, https://openalex.org/ prefix stripped).
An empty string signals a malformed upstream record (the id field
was absent) that was kept rather than dropped so one bad record does
not sink the page — do NOT use "" as a fetchable id.
arxiv: Option<String>arXiv id, best-effort extracted from a locations[].*url
containing arxiv.org/abs/<id>; None if no arXiv location.
title: StringWork title.
Author display names, in OpenAlex authorship order.
year: Option<i32>Publication year, or None if absent.
venue: Option<String>Primary venue display name (journal / repository), or None.
abstract_: Option<String>Reconstructed abstract text, or None when OpenAlex has no
abstract_inverted_index for the record.
cited_by_count: u64OpenAlex cited_by_count.
oa_status: Option<String>OpenAlex open-access status (gold / green / hybrid /
bronze / closed), or None.
fwci: Option<f64>OpenAlex fwci (Field-Weighted Citation Impact). A value > 1.0
means above-average impact for the paper’s field and year. None
when OpenAlex has not yet computed a value for the work.
cited_by_percentile_year_min: Option<u8>OpenAlex cited_by_percentile_year.min — the paper’s minimum
percentile rank among same-year works in the same field (0–100).
None when OpenAlex has not computed the percentile. A value of
90 means “top 10% of same-year works in its field” (#295).
source: DiscoverySourceDiscovery backend that produced this hit (PR1: always
DiscoverySource::OpenAlex). Serializes to "openalex".