Я бы так и сделал, но, как вы обнаружили, данные не до конца заполнены. Один из твиков, который вы могли бы сделать, чтобы улучшить свои шансы найти что-то, состоял бы в том, чтобы подняться на дополнительный уровень в случае, если, например, город находится в штате, который содержится в стране. Вам также не хватает набора фигурных скобок в вашем подзапросе, что, вероятно, приведет к сбою запроса в API (редактор запросов молча исправляет подобные вещи).
Пересмотренный запрос, который поднимается на дополнительный уровень и фиксирует фигурные скобки, будет выглядеть так:
{
"id": "/en/avondale",
"/location/location/containedby": [{
"/location/country/iso3166_1_alpha2": null,
"type": "/location/country"
}],
"l2:/location/location/containedby": [{
"id":null,
"/location/location/containedby": [{
"/location/country/iso3166_1_alpha2": null,
"type": "/location/country"
}]
}]
}
В API поиска есть параметр mql_output, который можно использовать, чтобы делать то, что вы хотите, но я не уверен, что он используется Freebase Suggest. Это не задокументировано, чтобы быть доступным. Если его нет в коде, было бы несложно взломать виджет, чтобы добавить это.