1

Freebase を使用して一度に複数のアイテムを検索しようとしています (1 つの API 呼び出しを使用)。たとえば、2 つのアイテムがあるとします。

  1. ロバート・ダウニー・Jr.
  2. アベンジャーズ

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 演算子のような非常に単純なものがありませんか?? 私は何日も探していましたが、良い解決策を見つけることができないようです. 何か助けていただければ幸いです。

4

1 に答える 1

0

非同期で 2 つの呼び出しを行うだけではどうですか? これにより、必要な結果が得られ、レイテンシーのペナルティはほとんどありません.

関連するいくつかの事実:

  • Reconcile API はまだ実験段階です。これは、少なくともタイプとの調整と、通常は追加のプロパティ値を使用したスコアリングで使用することを目的としています。

  • Search API は RPC メカニズムに含まれていません。これは、その自由形式の出力が RPC フレームワークの想定で機能しないためです。Topic API についても同様ですが、ここではあまり関係ありません。

  • Search API には、かなり表現力豊かな S 式言語があります。クエリを個別にスコア付けするか一緒にスコア付けするかはわかりませんが、それらをまとめてランク付けする場合は、[(any name:rdj name:"The Avengers")] https://www.googleapis.com/freebase/v1/search? query=&limit= のようなフィルター式を使用できます。 10&filter=%28any%20name:rdj%20name:%22the%20avengers%22%29

于 2013-05-23T02:26:48.753 に答える