Freebase を使用して一度に複数のアイテムを検索しようとしています (1 つの API 呼び出しを使用)。たとえば、2 つのアイテムがあるとします。
- ロバート・ダウニー・Jr.
- アベンジャーズ
Freebase を 1 回クエリして、両方のアイテムの結果を取得したいと考えています。基本的に必要なのは、両方の項目の上位 3 つまたは 4 つの結果の中間だけです。Freebase の検索 API を利用して、トピックの曖昧さを解消したいと考えています。たとえば、「ロバート ダウニー Jr.」を検索できるようにしたいと考えています。略称は「RDJ」。
これは、一度に 1 つのアイテムを検索する場合に簡単に実行できます。
https://www.googleapis.com/freebase/v1/search?query=rdj
このように 2 つの呼び出しを行うと、探しているものが正確に得られますが、これらの呼び出しを個別に行うことは避けたいと思います。
和解
調整のために json-rpc 呼び出しに出くわしました。次のことを試しました。
エンドポイント: https://www.googleapis.com/rpc
投稿本文:
[
{
"method": "freebase.reconcile",
"apiVersion": "v1",
"params": {
"name": ["RDJ"],
"key": "api_key",
"limit":10
}
},
{
"method": "freebase.reconcile",
"apiVersion": "v1",
"params": {
"name": ["the avengers"],
"key": "api_key",
"limit":10
}
}
]
これは、検索 API を使用した場合と同様に、タイプ /film/actor の結果が得られるという点で、Robert Downey, Jr にとってかなりうまく機能します。ただし、アベンジャーズについては、2012 年の映画ではなく、タイプが /book/book の一連の結果が得られます。これらの結果は、検索結果と同じように優先順位が付けられていないようです。
Freebase検索方法にjson-rpcを使用して同様のことを試しました:
{
"method": "freebase.search",
"apiVersion": "v1",
"params": {
"name": ["RDJ"],
"key": "api_key",
"limit":10
}
}
しかし、「freebase.search」メソッドは存在しないようでした。
注意すべきことの1つは、探しているアイテムの予想されるタイプが事前にわからないことです.
簡単に言えば、検索 API が提供する正確な結果が必要ですが、複数のクエリが 1 つの呼び出しにまとめられています。
検索 API の OR 演算子のような非常に単純なものがありませんか?? 私は何日も探していましたが、良い解決策を見つけることができないようです. 何か助けていただければ幸いです。