案例:
所以,我使用OR operator or ONE OF来吸引来自两个国家/地区的人。 查询如下所示:
[{
"id": null,
"type": "/people/person",
"/people/person/nationality": {
"name|=": [
"Jordan",
"Ottoman Empire"
]
},
"name": null,
"limit": 30
}]
查询工作正常,但如果您将限制增加到40
,它将无法工作。返回的错误是"唯一查询最多可能有一个结果。得到2"。这意味着两个民族都有一个人,乔丹"和"奥斯曼帝国"。
问题:
对于" ONE OF"运营商,但不是" OR"运营商。 Freebase中是否有任何运算符可以查询" ANY OF"或者真实"或者"涵盖这些案件?
答案 0 :(得分:0)
您收到错误是因为您使用了对象表示法({}),它需要在您返回两个结果的地方获得单个结果,并且那些需要数组([])。
话虽如此,我认为您真正需要做的是将|=
运营商提升到/people/person/nationality
级别。还要注意,即使只是要求一个人的国籍结果,你也需要数组符号,因为它是多重的(例如Sirhan Sirhan同时拥有约旦和强制巴勒斯坦国籍)。
这是一个可以执行您想要的查询(尽管您应该使用国家/地区的ID而不是英文标签):
[{
"id": null,
"name": null,
"nationality": [],
"type": "/people/person",
"nationality|=": [
"Jordan",
"Ottoman Empire"
]
}]