繁体   English   中英

在Freebase中如何使用OR运算符?

[英]How to use OR operator in Freebase?

案件:

因此,我使用OR运算符或ONE OF作为2个国家中任何一个的人。 查询如下:

[{
  "id":    null,
  "type":  "/people/person",
  "/people/person/nationality": {
    "name|=": [
      "Jordan",
      "Ottoman Empire"
    ]
  },
  "name":  null,
  "limit": 30
}]

该查询工作正常,但是如果将限制增加到40例如,它将无法正常工作。 返回的错误是“唯一查询最多可能有一个结果。得到2”。 这意味着存在一个同时存在“约旦”和“奥斯曼帝国”两个民族的人。

题:

对于“ ONE OF”运算符有意义,但对于“ OR”运算符没有意义。 Freebase中是否有任何运算符可以查询“ ANY OF”或真实的“ OR”来覆盖这些情况?

之所以会出现错误,是因为您使用了对象符号({}),该符号在返回两个结果的地方需要一个结果,而这些结果需要一个数组([])。

话虽如此,我认为您真正需要做的是将|=操作员提升到/people/person/nationality的级别。 还请注意,即使只是索要一个人的国籍结果,您也需要数组表示法,因为它是多值的(例如Sirhan Sirhan既有约旦又有巴勒斯坦的强制性国籍)。

这是一个查询,可以满足您的要求(尽管您应该对国家/地区使用ID,而不要使用英语标签):

[{
  "id": null,
  "name": null,
  "nationality": [],
  "type": "/people/person",
  "nationality|=": [
    "Jordan",
    "Ottoman Empire"
  ]
}]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM