簡體   English   中英

Freebase Search API-獲取所有結果

[英]Freebase Search API - Get All Results

現在可以從Freebase Search API獲取所有結果嗎?

今天,我正在嘗試兩種Java方法:

  1) www.googleapis.com/freebase/v1/search?filter=..."
   Using "cursor"(integer) and "limit" options.

  2) www.freebase.com/ajax/156b.lib.www.tags.svn.freebase-site.googlecode.dev/cuecard/mqlread.ajax?&query=
   Try to simulate 'Query Editor' (https://www.freebase.com/query)
   Using "cursor" from the previous results set (String).

但是在這兩種方法中,我只有

       - 200 (first option)
       - 500 (second option)

記錄(應為約6000條記錄)...

經過幾次迭代,我得到了

            - "Request too large, cursor: 200, limit: 200" (first option, only 1 iteration)
            - "cursor is false" (second option, 6 iterations)

信息。

是Freebase問題還是API限制?

我怎么能得到所有結果?

沒有細節,很難說出問題是什么,但是Search API絕對不是要返回完整的結果。 MQLRead API應該返回完整的結果,盡管我認為6K結果接近其預期用途的上限。 如果您沒有出現“查詢太難”之類的錯誤,我懷疑您的查詢中有某些內容會以您意想不到的方式無意中限制了它。

從Freebase獲取大量信息的另一種方法是從數據轉儲中提取信息。

注意:Freebase不再更新,並且MQLRead和Search API都將很快消失(盡管Google表示Search API將被基於知識圖的等效物替代)。

更新:當我從下面的注釋中使用“ return”:“ count”運行查詢時,我得到的值為536,它與使用游標報告的六次迭代的結果相匹配。

需要注意的是MQLRead 計算像發源地的地方傳遞閉包,所以查詢出生在葡萄牙的人,不會返回列為出生在里斯本人(另一人1143)。

Search API將返回傳遞閉包,盡管我不確定它是否一定會完成。 它確實經過了設計和調整,可以返回前幾項最佳匹配,而不是詳盡的列表,但是如果您要嘗試使用它,可以在示例應用程序中使用以下查詢:

http://freebase-search.freebaseapps.com/?filter=(all+type%3A%2Fpeople%2Fperson+%2Fpeople%2Fperson%2Fplace_of_birth%3APortugal)&output=(%2Fpeople%2Fperson%2Fplace_of_birth%7Bintrinsic%7D+(%2Fpeople %2Fperson%2Fplace_of_birth +))&限制= 10&得分=實體郎= EN

或等同於原始API:

https://www.googleapis.com/freebase/v1/search?limit=10&scoring=entity&filter=(all+type%3A%2Fpeople%2Fperson+%2Fpeople%2Fperson%2Fplace_of_birth%3APortugal)&output=(%2Fpeople%2Fperson%2Fplace_of_birth %7Bintrinsic%7D +(%2Fpeople%2Fperson%2Fplace_of_birth +))&郎= EN&縮進=真

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM