我在使用 Mendeley API 进行一些高级搜索时遇到了麻烦,描述了这里,使用了这里提到的请求格式。
我在下面包含了部分代码(在 R 中)(它不是完全可重现的,因为我省略了我需要运行以获取访问令牌的部分)......我感谢任何帮助......
keywords<-list(
'citation analysis', #as indicated in the URL
'citation + analysis',#as indicated in the URL
'cit* analysis',
'ponies|"small horses"',#as indicated in the URL
'ponies +-"small horses"',#as indicated in the URL
'ponies OR small AND horses',
'ponies AND small AND horses',
'small AND horses',
'small horses'
)
library('jsonlite')
API_Key=access_token
Year_init=2001
Year_end=2021
FieldKey='BUSI'
lapply(keywords,function(x){
TitleKeyword_url<-URLencode(x, reserved=FALSE)
TitleKeyword_url<-gsub('[+]','%2B',TitleKeyword_url)
cat(TitleKeyword_url,'\n')
metadata_url = paste('https://api.mendeley.com/search/catalog?query=',TitleKeyword_url,# curlEscape(TitleKeyword),
'&max_year=',Year_end,'&min_year=',Year_init,'&use_and=true&view=all&limit=100',sep='')
doc_rsp <- GET(metadata_url,
add_headers(
'Authorization' = paste("Bearer", access_token),
'Accept' = 'application/vnd.mendeley-document.1+json'
)
)
cat('return: ',doc_rsp$headers$`mendeley-count`,'\n')
})
查看退货金额:
citation%20analysis
return: 48051
citation%20%2B%20analysis
return: 48051
cit*%20analysis
return: 495242
ponies%7C%22small%20horses%22
return: 11
ponies%20%2B-%22small%20horses%22
return: 11
ponies%20OR%20small%20AND%20horses
return: 187
ponies%20AND%20small%20AND%20horses
return: 187
small%20AND%20horses
return: 6524
small%20horses
return: 6524
请注意,我尝试使用未指明的运算符,例如 ' OR
' 和 ' AND
',以及 ' *
',超出了 ' |
'、' +
' 和 ' -
' ...关键字也已针对 URL 进行了编码(没有它不起作用) . 但是响应与预期的不匹配......看看使用' +
'(编码为 %2B
)没有什么区别,' |
'(编码为%7C
)也没有。
我怎样才能让它工作?是旧版本的文档吗(我没有找到任何关于 API 版本的提及,但是,也许有可能......)......
提前致谢,