2017-07-05 57 views
1

我有一組查詢,我試圖使用NYT文章搜索API獲取web_urls。但我看到,它適用於q2以下,但不適用於q1。紐約時報文章搜索API不返回某些查詢的結果

Q1:西雅圖+雅各Vigdor +華盛頓大學

Q2:華盛頓

的西雅圖+雅各布Vigdor +大學如果粘貼下面的Web瀏覽器的API密鑰的網址,你會得到一個空的結果。

爲Q1搜索請求

api.nytimes.com/svc/search/v2/articlesearch.json?q=Seattle+Jacob%20Vigdor+the%20University%20of%20Washington & BEGIN_DATE = 20170626 & API-鍵= XXXX

爲Q1空結果

{ 「響應」:{ 「元」:{ 「命中」:0, 「時間」:27, 「偏移」:0},」 docs「:[]},」status「:」OK「,」copyright「:」版權所有(c)2013紐約時報公司。All版權所有。「}

相反,如果你貼在你的網頁瀏覽器以下(不含物品‘的’查詢),你得到的第二季度非空的結果

搜索請求

api.nytimes.com/svc/search/v2/articlesearch.json?q=Seattle+Jacob%20Vigdor+University%20of%20Washington & BEGIN_DATE = 20170626 & API密鑰= XXXX

非空的第二季度業績

{「response」:{「meta」:{「hits」:1,「time」:22,「offset」:0},「docs」:[{「web_url」:「https:// www .nytimes.com/aponline/2017/06/26/us/ap-us-seattle-minimum-wage.html「,」snippet「:」西雅圖的每小時15美元的最低工資法律花費了城市工作,根據週一發佈的一項研究結果與上週公佈的另一項新研究相矛盾......「,」lead_paragraph「:」根據週一發佈的一項研究,西雅圖每小時15美元的最低工資標準已經耗費了城市工作, 「,」abstract「:null,」print_page「:null,」blog「:[],」source「:」AP「,」multimedia「:[],」headline「:{」main「:」New研究西雅圖最低工資15美元說明工作成本降低「,」print_headline「:」西雅圖15美元最低工資的新研究表明它會降低工作成績「},」關鍵字「:[],」pub_date「:」2017-06-26T15:16 :28 + 0000" , 「DOCUMENT_TYPE」: 「文章」, 「news_desk」: 「無」, 「SECTION_NAME」: 「美國」, 「subsection_name」:空,「byli ne「:{」person「:[],」original「:」By the ASSOCIATED PRESS「,」organization「:」THE ASSOCIATED PRESS「},」type_of_material「:」News「,」_ id「:」5951255195d0e02550996fb3「 word_count「:643,」slideshow_credits「:null}]},」status「:」OK「,」copyright「:」版權所有(c)2013紐約時報公司。版權所有。「}

有趣的是,這兩個查詢工作的API測試頁上細 http://developer.nytimes.com/article_search_v2.json#/Console/

另外,如果你看看下面由Q2返回的文章的所有,你看到的是,在第一季度的查詢詞,」華盛頓大學'確實發生在它,它應該已經返回這篇文章。 https://www.nytimes.com//aponline//2017//06//26//us//ap-us-seattle-minimum-wage.html

我對API的這種行爲感到困惑。任何想法發生了什麼?我錯過了什麼?

+0

這聽起來更像是一個錯誤。不確定是否失敗......呃,紐約時報的api支持文檔將您重定向到這裏。如果是這樣,你可能會得到一些澄清。如果沒有,你可能需要打開一個假的......這個,他們的API團隊的支持案例。 – Will

+1

感謝您的快速回復!我只想知道它不起作用的其他功能,以便可以可靠地爲我的搜索查詢獲取web_urls。 – user7009553

回答

1

謝謝你的所有答案。下面我粘貼我從紐約時報開發者那裏收到的答案。

NYT的文章搜索API使用Elasticsearch。網上有很多關於Elasticsearch的查詢語法的文檔(它基於Lucene)。

https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html#query-string-syntax

如果你想包含「西雅圖」,「雅各布Vigdor」和「華盛頓大學」的文章,做

「西雅圖」和「雅各布Vigdor」和「華盛頓大學」

+ 「西雅圖」 + 「雅各Vigdor」 + 「華盛頓大學」

0

我認爲你需要改變的空間編碼(%20)到+(%2B):

在你的榜樣,

q=Seattle+Jacob%20Vigdor+the%20University%20of%20Washington 

當我從網站上的頁面提交,它使用% 2B:

q=Seattle%2BJacob+Vigdor%2Bthe+University+of+Washington 

你是如何編碼URL的?解決這個問題的一種方法是在URL編碼之前用+替換你的空格。

此外,您可能需要將%20替換爲+。 URL編碼有各種方案,所以最好的方法取決於你如何做。

+0

謝謝您的回覆!我懂了。當我用%2B替換%20時,它似乎在工作。但接下來有兩個問題: – user7009553

+0

太棒了!當我用%2B替換%20時,它似乎在工作。但是有兩個問題。首先,它是如何正確識別「大學」和「大學」之間的空間的,並且只有在包含「該」時纔會出現問題。其次,這對我來說有點反直覺。通常,搜索查詢被制定爲search_term1 + search_term2 + search_term3。但是在這裏您建議使用搜索詞之間的空格和多詞搜索術語之間的'+'來制定查詢。那是對的嗎?你知道任何紐約時報文章搜索查詢制定指南嗎? – user7009553

+0

不客氣。我不確定它是如何工作的,但他們是如何得到網站工作的。看來你對Elasticsearch的回答是更好的解決方案。 FWIW,將來您可以檢查網絡選項卡並反向設計瀏覽器正在做什麼。 –

相關問題