2009-12-05 3 views
0

사용자가 친구에게 올린 모든 댓글을 반환하는 Facebook 쿼리를 작성하려고하는데, 올바른 스키마를 찾을 수없는 것 같습니다.Facebook 댓글 수

. 그것을 구축 할 수있는 '인덱싱 가능'필드가없는 것처럼 말입니다.

제안 사항을 알려주십시오. 감사와

,

Wineshtain

나는 당신이 설명하는대로 직접적인 방식으로이 작업을 수행 할 수 있다고 생각하지 않습니다

답변

0

간접 경로, 사진을

select * from comments where fromid = <my_id> and object_id in (
    select post_id from stream where sourceid in (
     select uid1 from friend where uid2 = <my_id>)) 

같은 뭔가 불행하게도 보안 설정이 쿼리 친구 벽 게시물과 사진을 제한 할 수 있습니다

SELECT pid FROM photo WHERE aid IN (SELECT aid FROM album WHERE owner IN (... 

과 중간 쿼리를 대체 할 것 .

+0

이 메서드를 사용하여 발생한 문제는 반환 된 결과의 수에 제한이 있습니다. 우리는 친구들 목록을 얻고 있기 때문에 결과에 한계가 있음에도 불구하고 에 실제로 댓글을 단 게시물에 도달하기도 전에 결과가 제한적으로 표시됩니다. 따라서 반환 된 결과는 항상 0입니다. 사용자가 모든 내용 또는 최신 게시물에 대한 의견을 제시하지 않으면 시간의 거의 99 %입니다. 어쨌든이 문제를 해결하려면? –

+1

게시되지 않은 기준 (날짜? 크기? 활동?)을 기반으로 스트림이 잘 리기 때문에 "사용자가 게시 한 모든 댓글"에 대한 귀하의 목표는 불가능합니다. 데이터는 존재하지 않습니다. 결과 제한을 벗어나려면 검색 범위를 좁히고 여러 쿼리를 수행해야합니다. 친구 ID를 캐싱하고 Nids를 한 번에 보도록 제안합니다. 1) actor_id = (친구가 만든 게시물) 2) created_time> 지난주, 지난 (가장 최근의 게시물) 3) 오버 플로우 마지막을 방지하기 위해 LIMIT를 사용하여, 당신은 조사 할 수 있습니다 - 나는 또한 게시물이 반환 제한 시사 멀티 쿼리 – Stevko

+0

감사합니다 !!!! 큰 제안! –

0

. FQL 테이블은 일반적으로 제한된 기준으로 만 인덱싱됩니다 (성능상의 이유로). Comments FQL Table의 경우 게시물 ID 또는 xid를 통해 댓글 만 선택할 수 있습니다.

불행히도 이것은 사용자가 주석을 얻기 전에 주석 처리 한 객체를 알아야한다는 것을 의미합니다. 이전에 주석을 가져 오기 전에 원하는 모든 게시물, 사진 등을 선택해야합니다. 스트림 의견

+0

답해 주셔서 감사합니다. 간접적으로이 작업을 수행하는 방법에 대한 정보는 무엇입니까? 그 포스트/사진을 모으는 방법? –

+0

방법이 있는지 확실하지 않습니다. 필자는 그런 식으로 직접 해본 적이 없으므로 아마 다른 문서 (게시물, 사진 등)에 대한 API 문서와 FQL 테이블을 읽은 다음 색인이 생성되는 방식과 일부를 가져 오는 데 필요한 것이 무엇인지 살펴 보는 것으로 시작할 것입니다. 그들. – zombat

관련 문제