[英]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.