2013-04-28 4 views
0

검색 API를 사용하고 있으며 검색 결과에서의 지나친 결과를 관찰하고 있습니다.그래프 API를 사용하는 이상한 검색 로직

오늘에 첼시 축구 경기가 알고, 그래서 이벤트에 관련된 아무것도 첼시의 빠른 검색을 수행

(https://developers.facebook.com/tools/explorer? @ 그래프 API 탐색기를 사용하여)

search?q=Chelsea&limit=5000&type=event&since=2013-04-28&until=2013-04-29 

반환

{ 
    "data": [ 
    { 
     "name": "Chelsea Jam Tree Comedy Competition Night", 
     "start_time": "2013-04-28T19:30:00+0100", 
     "timezone": "Europe/London", 
     "location": "The Jam Tree (Chelsea)", 
     "id": "201322573339969" 
    }, 
    { 
     "name": "Chelsea Basham at Fly By Night Club", 
     "start_time": "2013-04-27T19:00:00", 
     "end_time": "2013-04-27T22:00:00", 
     "location": "Fremantle, WA, AU", 
     "id": "119017388296997" 
    }, 
    { 
     "name": "The Chelsea & Alexis Show! with Special Friends", 
     "start_time": "2013-04-27T22:00:00-0400", 
     "timezone": "America/New_York", 
     "location": "Mark Fisher Fitness", 
     "id": "264038507064618" 
    } 
    ], 
    "paging": { 
    "previous": "https://graph.facebook.com/search?q=Chelsea&limit=5000&since=1367173800&type=event&__paging_token=201322573339969", 
    "next": "https://graph.facebook.com/search?q=Chelsea&limit=5000&type=event&until=1367089200&__paging_token=119017388296997" 
    } 
} 

좋아, 정확히 내가 겪은 것이 아니며, 아마도 이벤트가 추가되지 않았거나 공개되지 않았을 수 있습니다.

하지만 - 축구 게임이 표시됩니다 - 내가 검색하면

search?q=v Chelsea&limit=5000&type=event&since=2013-04-28&until=2013-04-29 

다음 짜잔 ('첼시'전에 절 참고).

{ 
    "data": [ 
    { 
     "name": "Man United v Chelsea", 
     "start_time": "2013-04-28T16:00:00+0100", 
     "timezone": "Europe/London", 
     "location": "The Rising Sun, Hazel Grove", 
     "id": "518842844847325" 
    }, 
    { 
     "name": "FOOTBALL, Chelsea V Swansea City", 
     "start_time": "2013-04-28T15:00:00+0100", 
     "timezone": "Europe/London", 
     "location": "White Hart, Barnby Dun", 
     "id": "590753400942611" 
    }, 
    { 
     "name": "Chelsea V Swansea City", 
     "start_time": "2013-04-28T15:00:00+0100", 
     "timezone": "Europe/London", 
     "location": "Lizard Lounge - South Woodford", 
     "id": "281525378649440" 
    }, 
    { 
     "name": "Chelsea FC v Swansea", 
     "start_time": "2013-04-28T10:00:00-0400", 
     "end_time": "2013-04-28T12:00:00-0400", 
     "timezone": "America/Toronto", 
     "location": "Scallywags", 
     "id": "516466885084282" 
    }, 
    { 
     "name": "Chelsea v Swansea", 
     "start_time": "2013-04-28T15:00:00+0100", 
     "timezone": "Europe/London", 
     "location": "Stamford Bridge", 
     "id": "152203718287492" 
    }, 
    { 
     "name": "Chelsea v Swansea", 
     "start_time": "2013-04-28T19:00:00+0500", 
     "timezone": "Asia/Baku", 
     "location": "Stamford bridge, Fulham road, Лондон", 
     "id": "649119368438501" 
    }, 
    { 
     "name": "Chelsea v Swansea", 
     "start_time": "2013-04-28T09:30:00-0400", 
     "end_time": "2013-04-28T12:30:00-0400", 
     "timezone": "America/New_York", 
     "location": "Ireland's Four Courts", 
     "id": "404696952971017" 
    } 
    ], 
    "paging": { 
    "previous": "https://graph.facebook.com/search?q=v Chelsea&limit=5000&since=1367161200&type=event&__paging_token=518842844847325", 
    "next": "https://graph.facebook.com/search?q=v Chelsea&limit=5000&type=event&until=1367155800&__paging_token=404696952971017" 
    } 
} 

API에 결함이 있습니까, 아니면 잘못하고 있습니까?

감사합니다.

+0

아니요, 이것은 예상되는 동작입니다. 그들 안에 첼시가 얼마나 많은 이벤트가 있는지 상상해보십시오. 'v chelsea'와 같은보다 구체적인 쿼리를 사용하는 것이 올바른 방법입니다. API는 마음에 드는 독자가 아니며 "Chelsea"의 축구 게임을 어떻게 할 지 알 수는 없지만 "V Chelsea"는 "versus"문구 때문에 축구 이벤트가 발생할 가능성이 높습니다 –

+0

API를 사용하면 제목에 'Chelsea'가 포함 된 모든 이벤트를 API 소비자로 반환 할 수 있습니다 (문서에서 다르게 말하는 것은 아닙니다). 결과의 페이지 매김은 서버로드에 도움이됩니다. Google 검색에 귀하의 설명이 적용되면 검색은 10 번째 페이지 이후에 중단됩니다. 당신의 대답에 감사하지만, '아니오, 이것은 예상 된 행동입니다.'를 뒷받침 할 증거가 있습니까? –

+0

그래서 10 번째 페이지에서 원하는 결과를 반환하기 시작합니다. 그게 잘못된 행동이라고 생각하는 이유를 이해하지 못합니다. 왜 결과에 결함이 있다고 생각합니까? 당신이 원했던 이벤트 (그 중 2 개를 조사했습니다)는 특히 "인기있는"이벤트 나 심하게 참석 한 이벤트가 아니므로 페이스 북은 왜 The Chelsea & Alexis Show를 통해 첼시 축구 경기를 반환해야합니까! 특별 인기 친구 '와'인기 '가 같은 수준이다. 또한, 그래프 API 경험의 톤 이외의 증거. –

답변

0

이것은 예상되는 동작입니다. 검색 'A'는 'A'문자가 포함 된 모든 결과를 얻을 수 있다는 것을 의미하지 않습니다. 검색 'A'는 귀하가 "Apple"을 얻을 수 있음을 의미하지 않습니다. 데이터베이스는 모든 가능성을 다루기에는 너무 무겁습니다. 따라서 'Chelsea V'를 받으려면 'V'및 'Chelsea'키워드를 입력해야합니다. 그렇지 않으면 '첼시 스타디움', '첼시 선수', 그리고 모든 가능성을 되찾고 싶습니까? 아니요, 서버 처리에 비해 너무 큰 결과입니다.

관련 문제