1

我正在学习使用 CROSSREF REST API,并希望搜索与给定大学有关联的所有 DOI。如何为 AND 而不是 AND/OR 创建多词搜索查询?

CrossRef 上有超过 1 亿个 DOI,但只有 8217730 个具有作者隶属关系元数据。

https://api.crossref.org/works?sample=10&filter=has-affiliation:true

现在,如果我想查询与“南密西西比大学”的隶属关系,我可以使用 Mississippi+university+southern,但这会返回 AND/OR 这三个词。

我只想要所有三个词的从属关系。

https://api.crossref.org/works?sample=10&query.affiliation=mississippi+university+southern

这将返回所有带有单词大学或南部或密西西比州

CrossRef 字段查询说明在这里 https://github.com/CrossRef/rest-api-doc#field-queries 和关于该主题的 github 评论在这里 https://github.com/CrossRef/rest-api-doc/ commit/a4d047e0d1556e80aaab0f4b5aae420da2a99ea2和这里https://github.com/CrossRef/rest-api-doc/issues/170

4

2 回答 2

1

问题是您的 URI 中的示例参数。示例参数为您提供随机结果。

能够选择随机结果对于测试和抽样都很有用。您可以使用 sample 参数来检索随机结果。 示例 API 说明

因此,如果您只想查询 '' 的所有结果,请使用不带示例部分的 URI。喜欢:

https://api.crossref.org/works?query.affiliation=mississippi+university+southern
于 2020-01-06T09:07:20.173 回答
0

CrossRef API 不支持布尔运算符。query.affiliation 路径返回多个带有分数的结果。您将看到生成的 json 中的最高分数有一个 key: value out of 'chosen: true'。

我相信他们最近从 Solr 过渡到 Elasticsearch - https://www.crossref.org/blog/behind-the-scenes-improvements-to-the-rest-api/ - 支持布尔搜索 - https:// www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-bool-query.html - 但我不确定如何在 CrossRef API 端点上使用它,如果你可以的话。

于 2021-10-13T07:33:14.807 回答