como paginar e combinar resultados que vêm de diferentes fontes classificadas

5

Eu tenho o seguinte cenário:

Eu tenho um usuário que precisa ver alguns feeds de notícias de sites diferentes e quero paginar-los e classificá-los por data. O problema é que não entendo como fazer isso esquematicamente.

Buscar top-N de cada site e limitar os resultados? Isso pode resultar em resultados inconsistentes se, por exemplo:

Eu pergunto os primeiros 100 resultados de cada site e, em seguida, selecione no total os 100 mais novos de todos os sites. Na segunda vez que faço isso, se o site A tiver todos os seus primeiros 100 resultados mais recentes que os outros sites, isso é um problema. Eu pedirei pelos resultados dos sites de 100 a 200, onde os resultados do site B devem vir de 0 a 100, porque eles não foram exibidos na última vez.

Como fazer esse tipo de agregação sem buscar todos os disponíveis (ou uma quantidade absurda de resultados) de cada site?

    
por arisalexis 15.04.2015 / 10:35
fonte

2 respostas

0

Você precisa se lembrar do ponto de partida ao paginar, portanto, se recuperar os resultados mais recentes de todos os sites, será necessário repetir a consulta para o mesmo conjunto de resultados - isso dependerá dos dados de resultado que você receber, Por exemplo, usarei um valor de ID para meus resultados de dados SQL, mas poderia ser baseado na data de outros sistemas.

Depois de ter isso, você pode repetir a consulta solicitando as próximas (ou anteriores) páginas de dados. Se você quiser começar de novo, terá que incluir uma opção de recarregamento ou atualização que redefina o ponto inicial. Você só precisa dos dados do ponto inicial para as consultas paginadas, nunca a primeira (embora possa ajudar se você tiver dados que não retornem algo que você possa usar, talvez seja necessário armazenar a data e hora solicitando os dados antes de chamar e passar que através de impedir que uma nova entrada apareça entre o tempo solicitado e os resultados retornados).

    
por 15.04.2015 / 11:11
fonte
0

Não pode haver regra geral.

Se todos os artigos de A são mais recentes que B, por que você esperaria algum artigo B em sua lista?

Você precisa determinar seu comportamento esperado e tomar uma decisão com base nisso. Pense também sobre o que acontece se um recurso não estiver disponível no momento da consulta, etc.

    
por 15.04.2015 / 10:49
fonte