2014-09-12 8 views
0

흥미로운 문제가 있습니다. Google은 제품과 함께 고객의 정보와 함께 피드 파일을받습니다. Google은 고객으로부터받은 각 피드 요청을 데이터베이스에 기록합니다. 문제는 피드 파일이 주어진 피드 파일에 동일한 제품 목록을 가진 모든 피드 요청을 가져와야한다는 것입니다. 모든 피드 요청에는 2 백만 후보 피드가 거의 일치합니까?데이터베이스의 유사성 집합을 처리하는 방법

답변

0

우리가 동일한 페이지에 있는지 확인하기 위해 probelem을 요약 해 보겠습니다.

응용 프로그램에서 제품 목록을 포함하는 피드 요청을받을 수 있습니다. 이런 일이 발생할 때마다 DB에 FR을 기록하고, 과거에 동일한 제품 세트가 들어있는 모든 FR을 확인하려고합니다. 맞습니까?

그렇다면 아이디어는 FR 내의 제품 목록에 대한 해시 키를 생성하는 것입니다. 그런 식으로 DB의 모든 FR에는 고유 한 해시가 있습니다.이 FR은이 FR에 포함 된 제품 목록에 해당합니다.

예 :

피드 요청 앱에 와서, 그것은 제품 2, 1, 3 응용 제품 ID를 정렬을 포함 : [1, 2, 3] 다음 생성 해시 : 시간 ([1, 2 , 3]) = abc. 그런 다음 과 동일한 제품 세트를 사용하여 이전 FR을 찾아야하는 경우 쿼리를 생성합니다. " 해시가"abc "와 같은 피드 요청에서 모든 레코드를 가져옵니다.

수백만 개의 레코드가 있더라도 올바른 방식으로 데이터를 인덱싱하면 이러한 비교는 그리 비싸지 않습니다.