2013-01-01 3 views
1

의 내가 적어도 두 개의 (다른) 배우 "존"이라는 재생되는 모든 동영상 싶어한다고 가정 해 봅시다 :하는 Freebase 쿼리

Example query을 :

[{ 
    "type":"/film/film", 
    "name":null, 
    "limit":10, 
    "/film/film/initial_release_date":"2005" 
    "starring":[{ 
    "a:actor": [{ 
     "type": "/film/actor", 
     "name": null, 
     "name~=": "John", 
    }], 
    "b:actor": [{ 
     "type": "/film/actor", 
     "name": null, 
     "name~=": "John", 
    }] 
    }] 
}] 

당신이 실행하는 경우 예제 쿼리를 사용하면 "John"이 하나만있는 영화가 나열됩니다. 중복 된 하위 항목으로 이러한 결과를 제외하도록 쿼리를 수정하려면 어떻게해야합니까?

답변

3

일반적으로 클라이언트 쪽에서 필터링을 수행해야합니다. MQL의 쿼리는 쿼리의 한 부분이 일반 그래프가 아닌 다른 부분을 참조 할 수 없다는 점에서 "트리 형"입니다.

이 경우, 둘 이상의 "John"이 (가)있는 영화를 찾을 수 있습니다. 그러나 MQL에서는 "count"와 같은 파생 속성을 필터링 할 수 없으므로 reverse sort based on the count까지만 수행 할 수 있으며 "count"가 1 인 첫 번째 항목을 누르는 즉시 처리가 중지됩니다. 이 쿼리는 고정 된 1935 릴리스 날짜 (MQL에서 정렬을 수행하면 성능이 저하됨)를 제거하면 시간이 만료되므로 간단한 클라이언트 측 필터링만으로 어려움을 겪을 수 있습니다.

+0

감사합니다. 훌륭하게 작동하는 것 같습니다. "sort"의 점 표기법을 알지 못했습니다. "- starring.count"'. – biziclop

+0

결과가 어떻게 든 얇아졌지만 일부 결과가 누락되었다고 생각하지만 더 좋을 수 있다고 생각하지 않아 답변을 수락합니다. – biziclop

+0

영화의 예가 있으면 검색어가 발견되어야한다고 생각하지만 ' t, 나는 그것이 그것을 발견하지 못하고 어쩌면 그것을 잡으려고 질의를 수정하는 이유를 설명하려고 할 수 있습니다. –