我使用BioPython通过eutils API查询Pubmed数据库。esearch端点有一个排序选项,但是API文档没有列出这个值的所有选项。
_
示例呼叫:
Entrez.esearch(db="pubmed", term=search_term, rettype=rettype, retmax=retmax,
sort=sort_method)我知道为sort_method工作的值
但是,我不知道如何指定默认的排序顺序,这是“最近的”;实际上,这似乎是按Pubmed值排序的。“最近”、“最近”、“pmid”、“id”和“default”都给出了OutputMessage“未知排序模式.”。
还有其他人知道如何显式指定默认顺序吗?
发布于 2016-06-17 16:24:38
不是100%确定我是否正确地回答了你的问题。如果不指定排序顺序,则将使用默认排序顺序。
handle = Entrez.esearch(db="pubmed", term='TRPV1')
records = Entrez.read(handle)
print('\n'.join(records['IdList']))将按照与PubMed网页相同的顺序提供ID。
发布于 2020-07-14 19:12:19
是sort='relevance'。如果您转到PubMed站点并在url:https://pubmed.ncbi.nlm.nih.gov/?term=dengue&sort=relevance&size=200中使用sort=relevance,它将使用最佳匹配,如站点上所示。当您使用sort=pubdate或sort=date时,它将分别是发布日期和最近日期。
发布于 2022-06-17 08:55:39
如果您的目标只是按照最近的顺序对结果进行排序,那么就不要在esearch()方法中指定排序参数。
这样做:
Entrez.esearch(db="pubmed", term=search_term, rettype=rettype, retmax=retmax)而不是:
Entrez.esearch(db="pubmed", term=search_term, rettype=rettype, retmax=retmax, sort=sort_method)您应该得到一堆最新的UID/结果,如Pubmed上所示。虽然与Pubmed上查看的结果相比,可能会发现结果集中缺少一些UID,但Pubmed和Entrez似乎使用不同的索引来显示结果。这一部分已经在这对话中进行了讨论。
如果您想检索最近的文章,sort="pub date"可能会导致您意想不到的结果。
https://stackoverflow.com/questions/33838552
复制相似问题