2014-04-12 3 views
0

나는 비디오 용 검색 엔진을 코딩하고 있습니다. 모든 비디오에 대해 자습서, 초보자, 영화, 오류 등의 태그를 저장했습니다. 일반적으로 우리는 사용자 쿼리에서 키워드를 추출 할 수 있기 때문에, 내가 포함 된 데이터베이스 (키워드, 태그, 확률)을 만든SQL 쿼리에서 사용자 정의 함수 호출

예 : 데이터베이스 항목은 의미

key word | tag | probability 

how to | errors | 0.7 

경우 그 핵심 단어 인 경우 "방법"이 사용자 쿼리에 존재하면 사용자가 태그 "오류"가있는 비디오를 검색 할 가능성이 70 %입니다.

사용자 검색어에서 여러 개의 키워드를 추출 할 수 있습니다. 그래서 배열에 저장했습니다.

비디오 데이터베이스에서 모든 비디오에 대해 2 개의 속성 (video_name, tag, relevance) 관련성에 "비디오가 태그와 관련성이 얼마나 있는지"를 저장합니다. 동영상에 여러 개의 태그가있을 수 있습니다. 따라서 동영상에 4 개의 태그가있는 경우 동영상 데이터베이스에 4 개의 항목이 있으며 태그와 관련성이 다릅니다.

마지막으로, 비디오에 대한 모든 태그의 관련성 * 확률의 합계를 반환하도록 SQL 쿼리를 원합니다. 예 : 추출 태그 영화 경우 - 0.6 확률과 노래 - 0.8 확률

및 비디오 데이터베이스가

video_name | tag  | relevance 

    A  | movies | 50 

    B  | errors | 100 

    A  | songs | 100 

    C  | tutorial| 10 

    A  | comedy | 200 

경우 다음 내 결과가 있어야 A - 100 (50 * 0.6 + 100 * 0.8)

B - 태그가 발견되지 않기 때문에, 0 (0)

C 0 - (0 태그

) 발견되지 않기 때문에

SQL을 처음 사용했습니다. 당신은 테이블이 keywords라고하고 relevances 테이블 relevances는이 같은 작동합니다 키워드를 가정하면 .... 사전에 ......이에 대한

답변

0

을 감사 SQL 쿼리를 적어주세요 수 :

SELECT video_name, sum(r.relevance * k.probablility) 
FROM relevances r, keywords k 
WHERE r.tag = k.tag 
GROUP BY video_name 
ORDER BY video_name 

태그가없는 비디오의 경우 NULL (0이 아님)을 반환해야합니다.