2012-05-30 6 views
4

Кажется, я только в состоянии сделать уникальные запросы (т.е. включающего в себя идентификатор объекта в запросе) с новым свободного основания MQL чтение API:Non уникального запроса с Freebase MQL чтение Google API

следующих поисков по идентификатору и Тип:

https://www.googleapis.com/freebase/v1/mqlread?query={"name":null,"id":"/en/bob_dylan","type":"/people/person"} 

и успешно возвращает:

{ 
"result": { 
"type": "/people/person", 
"id": "/en/bob_dylan", 
"name": "Bob Dylan" 
} 
} 

следующие запросы с типом только:

https://www.googleapis.com/freebase/v1/mqlread?query={"name":null,"type":"/people/person"} 

или

https://www.googleapis.com/freebase/v1/mqlread?query={"name":[],"type":"/people/person"} 

и возвращает следующее сообщение об ошибке:

{ 
"error": { 
    "errors": [ 
    { 
    "domain": "global", 
    "reason": "badRequest", 
    "message": "Unique query may have at most one result. Got 100" 
    } 
    ], 
    "code": 400, 
    "message": "Unique query may have at most one result. Got 100" 
} 
} 

Я ожидал, что он возвращает список имен людей

ответ

6

Вы должны обернуть запрос в [], как в следующем примере:

https://www.googleapis.com/freebase/v1/mqlread?query=[{"name":[],"type":"/people/person"}] 
+1

Это будет работать, но «имя»: [] может быть упрощено до «имя»: нулевой, так как там будет только один уникальный английское название. Если вам нужны имена для всех языков, а не только по умолчанию/lang/en, вы можете использовать «name»: [{}] –

1

Я тоже сталкивался с аналогичной проблемой в последнее время. Лучший способ убедиться, что вы получите единственный набор результатов, - использовать параметр «limit: 1» в вашем запросе mql. , например:

https://www.googleapis.com/freebase/v1/mqlread?query={"type":[],"name":"india","limit":1} 

 Смежные вопросы

  • Нет связанных вопросов^_^