1

我正在尝试使用逻辑 OR 条件在 Microsoft Academic Graph 上运行搜索。具体来说,我想使用 OR 为某个字段指定两个不同的可能值,例如作者字段中的两个可能的作者姓名。

JSON 搜索语法的文档表明可以使用逻辑 OR 运算符,我只是不知道如何实现它。

我尝试使用以下搜索来实现这一点:

{
"path": "/paper/AuthorIDs/author",
  "paper": {
    "type": "Paper",
    "NormalizedTitle": "graph engine",
    "select": ["OriginalTitle", "PublishDate", "CitationCount", "AuthorIDs", "JournalID", "DOI"]
  },
  "author": {
    "select": ["Name"],
    "return": {
      "type": "Author",
      "or":{
        "Name": "bin shao",
        "Name": "haixun wang"
      }
    }
  }
}

但它只返回第二作者的结果。任何有关如何正确格式化我的搜索的帮助将不胜感激!

4

1 回答 1

0

如果您使用 API,则该expr字段应形成如下:

Or(Composite(AA.AuN='{AUTHOR-NAME-1}'), Composite(AA.AuN='{AUTHOR-NAME-2}'))

例子:

https://api.labs.cognitive.microsoft.com/academic/v1.0/evaluate?&expr=Or(复合(AA.AuN=%27bin%20shao%27),%20Composite(AA.AuN=%27haixun% 20wang%27))&count=10&attributes=AA.AuN,AA.AuId,DOI,Ti,VFN,Y&orderby=Y:desc&subscription-key={YOUR-KEY}

于 2021-01-09T13:28:29.473 回答