Pesquisa distribuída

Procura distribuída é um modelo de mecanismo de pesquisa no qual as tarefas de rastreamento da Web, indexação e processamento de consultas são distribuídas entre vários computadores e redes.

Originalmente, a maioria dos mecanismos de pesquisa eram suportados por um único supercomputador . Nos últimos anos, no entanto, a maioria passou para um modelo distribuído. A pesquisa do Google, por exemplo, depende de milhares de computadores que rastreiam a Web a partir de vários locais em todo o mundo.

No sistema de pesquisa distribuído do Google, cada computador envolvido na indexação rastreia e revisa uma parte da Web, pegando um URL e seguindo cada link disponível a partir dele (menos aqueles marcados para exclusão). O computador reúne os resultados do rastreamento a partir dos URLs e envia essa informação de volta para um servidor centralizado em formato compactado. O servidor centralizado coordena então essa informação numa base de dados , juntamente com informação de outros computadores envolvidos na indexação.

Quando um utilizador digita uma consulta no campo de pesquisa, o software do servidor de nomes de domínio ( DNS ) do Google retransmite a consulta para o cluster mais lógico de computadores, com base em factores como a sua proximidade com o utilizador ou o quão ocupado ele está. No cluster destinatário, o software do servidor Web distribui a consulta por centenas ou milhares de computadores para pesquisar simultaneamente. Centenas de computadores fazem o scan ao índice da base de dados para encontrar todos os registos relevantes. O servidor de índice compila os resultados, o servidor de documentos reúne os títulos e resumos e o construtor de páginas cria as páginas de resultados de pesquisa.

alguns projectos, como o Wikia Search (anteriormente Grub ) estão a avançar para um modelo de pesquisa ainda mais descentralizado. Similarmente aos projetos de computação distribuída como o SETI@home , muitos projetos de busca distribuída são suportados por uma rede de usuários voluntários cujos computadores executam software cliente em segundo plano.