# Google Busca

O Google Busca (também chamado de Pesquisa Google) é um mecanismo de busca operado pelo Google. Ele permite que os usuários pesquisem informações na web inserindo palavras-chave ou frases. O Google Busca utiliza algoritmos para analisar e classificar sites com base na relevância em relação à consulta de pesquisa. É o mecanismo de busca mais popular do mundo.
O Google Busca é o site mais acessado do mundo. Em 2020, detinha 92% da participação no mercado global de mecanismos de busca. Aproximadamente 24,96% do tráfego mensal global do Google vem dos Estados Unidos, 5,56% da Índia, 5,2% do Japão, 4,7% do Brasil e 3,75% do Reino Unido, de acordo com dados da Similarweb.
A ordem dos resultados de pesquisa retornados pelo Google é baseada, em parte, em um sistema de classificação de prioridade chamado PageRank. O Google Busca também oferece diversas opções para buscas personalizadas, utilizando símbolos para incluir, excluir, especificar ou exigir determinados comportamentos na pesquisa. Além disso, disponibiliza experiências interativas especializadas, como consulta de status de voos e rastreamento de pacotes, previsões do tempo, conversões de moeda, unidades e horário, definições de palavras, entre outras.
O objetivo principal do Google Busca é localizar textos em documentos publicamente acessíveis oferecidos por servidores web, em vez de outros tipos de dados, como imagens ou informações contidas em bancos de dados. Originalmente, foi desenvolvido em 1996 por Larry Page, Sergey Brin e Scott Hassan. O projeto inicial foi estruturado na garagem da casa de Susan Wojcicki, em Menlo Park. Em 2011, o Google lançou a Pesquisa por voz, permitindo pesquisas por palavras faladas, em vez de digitadas. Já em 2012, introduziu a funcionalidade de busca semântica conhecida como Knowledge Graph.
A análise da frequência de termos pesquisados pode indicar tendências econômicas, sociais e de saúde. Dados sobre a frequência de termos no Google podem ser acessados publicamente pelo Google Trends, que já demonstrou correlação com surtos de gripe e níveis de desemprego, fornecendo informações mais rapidamente do que métodos tradicionais de relatórios e pesquisas. Desde meados de 2016, o mecanismo de busca do Google passou a usar redes neurais profundas para aprimorar sua funcionalidade.

## Alguns recursos do buscador Google

A quantidade de informações na Internet é tão grande e diversificada, que é praticamente impossível encontrar tudo o que se precisa sem o uso de um mecanismo de busca. Existem ferramentas de busca muito boas na Internet, como o Altavista, o AlltheWeb, o Yahoo e o MSN. No entanto, o Google destaca-se por algumas boas razões.
O Google atualiza sua base de informações diariamente. Existe o crawler Googlebot, um "robô" do Google que busca por informações novas em todos os endereços possíveis em toda a internet. Isso é realmente interessante porque cerca de alguns minutos depois de uma matéria ser publicada em um site já é possível encontrá-la no Google. Outros mecanismos de busca também possuem crawlers, mas eles não são tão eficientes em termos de atualização e de classificação de informações.
Outra razão para o sucesso do Google Search é o sistema PageRank. Trata-se de um algoritmo desenvolvido pelos próprios fundadores do Google - Larry Page e Sergey Brin - na Universidade de Stanford, que atribui uma pontuação (um PageRank) a páginas web, de acordo com a quantidade e a qualidade das ligações (externos ou internos) que apontem para ela; o PageRank é um dos factores de maior peso na definição do ordenamento das páginas apresentadas pela Google. Em outras palavras, quanto mais ligações existirem apontando para uma página, maior é seu grau de importância no Google. Como conseqüência, essa página tem maior probabilidade de obter um bom posicionamento nas buscas, pois o PageRank indica que a comunidade da Web (por meio de ligações) elegeu aquela página como de maior relevância o assunto pesquisado. Além disso, o Google analisa os assuntos mais pesquisados e verifica quais sites tratam aquele tema de maneira significativa. Para isso, ele checa a quantidade de vezes que o termo pesquisado aparece na página, por exemplo.
* Google disponibiliza ainda um recurso extremamente útil: o de "Em cache". O Google armazena quase todas as páginas rastreadas pelo Googlebot e permite que esse conteúdo seja acessado mesmo quando o site original não está no ar. Por exemplo, suponha que você fez uma pesquisa e ao clicar em uma ligação que aparece na página de resultados você constatou que aquela página não existe mais. Se você clicar em "Em cache", uma ligação que fica junto a cada item disponibilizado na página de resultados, você acessará uma cópia daquela página que está armazenada no Google.
Outros dois factores importantes são a simplicidade e clareza. A combinação desses itens foi trabalhada desde a concepção do Google. Devido a isso, é possível acessar um site leve, sem poluição visual e cujas opções são facilmente localizáveis. O Google é capaz de realizar buscas em mais de 300 tipos de arquivos.
* O Google oferece, além de seu tradicional mecanismo de busca, vários outros serviços, como o Google News, o Froogle, o Gmail, o Google Talk, o Google Earth, entre outros.
* Para saber de algumas novidades que estão para vir ou para saber quais os principais projectos em que o Google trabalha atualmente, basta visitar o Google Labs.

## Pesquisas
### Produtos de pesquisas

A porcentagem exata do total de páginas web que o Google indexa não é conhecida, devido à dificuldade de calcular este número com precisão. O Google apresenta um resumo de duas linhas e também uma prévia de cada resultado de pesquisa, que inclui um link para uma versão da página armazenada em cache, geralmente mais antiga.
O Google não só indexa e armazena cópias das páginas web, mas também guarda instantâneos de outros tipos de arquivos, como PDF, documentos do Word, planilhas do Excel, arquivos Flash, arquivos de texto simples, e assim por diante. Exceto no caso de texto e arquivos SWF, a versão em cache é o resultado de uma conversão para (X)HTML, permitindo aos que não possuem a aplicação correspondente a possibilidade de ler o arquivo. Os usuários podem personalizar o mecanismo de busca através da definição de uma linguagem padrão, do uso da tecnologia de filtro “SafeSearch” e da definição do número de resultados mostrados em cada página. O Google tem sido criticado por colocar cookies de longos prazos nas máquinas dos usuários para armazenar suas preferências, uma tática que também lhes permite acompanhar termos de pesquisa dos usuários e manter esses dados por mais de um ano.$^[$ Para qualquer consulta, podem ser mostrados no máximo os 1000 primeiros resultados, com um limite de 100 exibidos por páginas. A capacidade de especificar o número de resultados está disponível somente se a "busca instantânea" não está habilitada. Se a "busca instantânea" está habilitada, apenas 10 resultados são exibidos independentemente dessa configuração.
Em 2012, o Google alterou suas classificações para rebaixar sites que foram acusados de pirataria, exceto o site YouTube (do próprio Google).

### Dados não-indexáveis

Apesar de seu grande índice, há também uma considerável quantidade de dados disponíveis em bases de dados online que são acessíveis por meio de consultas, mas não por ligações. Essa chamada web profunda ou invisível é coberta minimamente pelo Google através de seu engenho de busca. Ela contém catálogos de bibliotecas, documentos legislativos oficiais dos governos, guias de telefones e outros conteúdos preparados dinamicamente para responder a uma consulta.

## Funcionalidades

O Google Search consiste em uma série de sites localizados. O maior deles, Google.com, é o site mais visitado no mundo. Algumas de suas características incluem um link para a definição da maioria das pesquisas, incluindo as palavras do dicionário, o número de resultados que você obteve em sua pesquisa, links para outras pesquisas (por exemplo, no caso de palavras que o Google acredita terem sido digitadas incorretamente, ele fornece um link aos resultados da pesquisa usando a grafia que ele propõe), e muito mais.

### Sintaxe para busca

O mecanismo de busca do Google normalmente aceita consultas a partir de um simples texto, e divide o texto do usuário em uma sequência de termos de pesquisa que geralmente, serão palavras que irão ocorrer nos resultados da pesquisa, mas também pode usar operadores booleanos, tais como: aspas (' ') por uma frase, um prefixo como “+”, “-“ para termos qualificados (não mais válido, o ‘+’ foi removido do Google em 19 de outubro de 2011) descrevem cada uma dessas consultas adicionais e opções(veja em: opções de busca). A forma de pesquisa avançada do Google fornece vários campos que podem ser utilizados para qualificar as pesquisas tais como data da primeira requisição. Todas as consultas adicionais transformam-se em pesquisas regulares, normalmente com expressão adicional qualificada. Além disso, a partir do método de indexação do Google, é possível realizar técnicas para encontrar sistemas vulneráveis, a qual é chamada de Google Hacking.

### Expansão da consulta

O Google aplica a expansão da consulta para consultas submetidas, transformando-a na consulta que realmente será utilizada para obter os resultados da busca. Tal como acontece com o ranking da página, os detalhes exatos do algoritmo que o Google usa são deliberadamente obscuros, mas certamente as seguintes transformações são as que ocorrem:
* Reordenação de termos: na recuperação de informação esta é uma técnica padrão para reduzir o trabalho na obtenção do resultado da busca. Essa transformação é invisível ao usuário, pois os resultados de ordenação utilizam a ordem da consulta original para determinar a relevância.
* O stemming é usado para aumentar a qualidade da busca, mantendo pequenas variantes sintáticas dos termos de busca.
* Há uma facilidade limitada para corrigir possíveis problemas de escritas nas consultas.

### Estou com sorte

A página inicial do Google inclui o botão “Estou com sorte”. Quando o usuário digita uma busca e clica no botão, ele será levado ao primeiro resultado da pesquisa, ignorando a página de resultados do mecanismo de pesquisa. A ideia é que se o usuário “está com sorte”, o mecanismo de buscas irá retornar a correspondência perfeita na primeira vez sem ter que folhear os resultados da pesquisa. Desde 2010, com a introdução do Google Instant, que apresenta resultados conforme o usuário digita, o botão "Estou com sorte" foi removido. De acordo com um estudo realizado por Tom Chávez, em 2007, o Google deixou de ganhar 110 milhões de dólares com publicidades devido ao uso do botão.

## Estrutura de dados (servidor web distribuído)

A Google possui um sistema distribuído de armazenamento de dados estruturados, com o objetivo de ter uma escalabilidade de petabytes de dados em centenas de milhares de computadores com alto desempenho e alto disponibilidade.
O nome GOOGLE vem da palavra GOOGOL, inventada por Milton Sirotta, sobrinho do matemático Edward Kasner para designar o número 1 seguido de zeros - simboliza a missão da empresa em organizar o montante de informações disponíveis na web e jogá-la ao mundo.

## Sistemas de arquivos

O sistema de arquivos do Google (GFS ou GoogleFS) é um sistema de arquivos distribuído proprietário desenvolvido pelo Google para fornecer acesso eficiente e confiável a dados usando grandes clusters de hardware de commodity. Uma nova versão do código do sistema de arquivos do Google chamada Colossus foi lançada em 2010.
O GFS é aprimorado para as principais necessidades de armazenamento e uso de dados do Google (principalmente o mecanismo de pesquisa), que podem gerar enormes quantidades de dados que devem ser retidos; O Google File System surgiu de um esforço anterior do Google, o "BigFiles", desenvolvido por Larry Page e Sergey Brin nos primeiros dias do Google, enquanto ainda estava localizado em Stanford. Os arquivos são divididos em blocos de tamanho fixo de 64 megabytes, semelhantes a clusters ou setores em sistemas de arquivos regulares, que são apenas raramente sobrescritos ou reduzidos; os arquivos geralmente são anexados ou lidos. Ele também é projetado e otimizado para rodar nos clusters de computação do Google, nós densos que consistem em computadores de "commodity" baratos, o que significa que precauções devem ser tomadas contra a alta taxa de falhas de nós individuais e a subsequente perda de dados. Outras decisões de design selecionam altas taxas de transferência de dados, mesmo quando isso ocorre ao custo da latência.
Um cluster GFS consiste em vários nós. Esses nós são divididos em dois tipos: um nó mestre e um grande número de servidores Chunkservers. Cada arquivo é dividido em partes de tamanho fixo. Servidores Chunk armazenam essas partes. Cada parte é atribuída a um rótulo exclusivo de 64 bits pelo nó principal no momento da criação e os mapeamentos lógicos de arquivos para partes constituintes são mantidos. Cada pedaço é replicado várias vezes em toda a rede. Por padrão, ele é replicado três vezes, mas isso é configurável. Arquivos que estão em alta demanda podem ter um fator de replicação mais alto, enquanto arquivos para os quais o aplicativo cliente usa otimizações de armazenamento restritas podem ser replicados menos de três vezes - para lidar com políticas de limpeza rápida de lixo.
O servidor mestre geralmente não armazena os fragmentos reais, mas todos os metadados associados aos fragmentos, como as tabelas que mapeiam os rótulos de 64 bits para os locais de fragmentos e os arquivos que eles compõem, os locais das cópias dos fragmentos, quais processos estão lendo ou gravando em um bloco em particular, ou fazendo um "instantâneo" do fragmento de acordo com a replicação (geralmente por iniciativa do servidor mestre, quando, devido a falhas de nó, o número de cópias de um fragmento caiu abaixo do número definido). Todos esses metadados são mantidos em dia pelo servidor mestre periodicamente recebendo atualizações de cada servidor chunk.

## Sistema de armazenamento BigTable

O BigTable é um sistema de armazenamento de dados proprietário compactado, de alto desempenho e construído no Google File System. É composto por blocos de 64 megabytes, onde os dados inseridos já entram indexados, tornando assim mais rápida a consulta aos dados. É um banco extremamente escalável e tolerante a falhas. Também pode ser usado para distribuir o processamento dos dados.

## Cloud BigTable

O BigTable é um sistema de armazenamento de dados proprietário compactado, de alto desempenho e construído no Google File System. É composto por blocos de 64 megabytes, onde os dados inseridos já entram indexados, tornando assim mais rápida a consulta aos dados. É um banco extremamente escalável e tolerante a falhas. Também pode ser usado para distribuir o processamento dos dados.

## NoSQL

O termo NoSQL foi primeiramente utilizado em 1998 como o nome de um banco de dados não relacional de código aberto. Seu autor, Carlo Strozzi, alega que o movimento NoSQL "é completamente distinto do modelo relacional e portanto deveria ser mais apropriadamente chamado "NoREL" ou algo que produzisse o mesmo efeito".
A partir de então, os bancos de dados não relacionais passaram a ser conhecidos como NoSQL, e com crescente popularização das redes sociais, a geração de conteúdo por dispositivos móveis bem como o número cada vez maior de pessoas e dispositivos conectados, faz com que o trabalho de armazenamento de dados com o objetivo de utilizá-los em ferramentas analíticas, comece a esbarrar nas questões de escalabilidade e custos de manutenção desses dados.

## MapReduce

Desde o começo, o desafio do Google e de qualquer outra ferramenta de busca não era pequeno: indexar o volume de conteúdo na web e retornar resultados relevantes para seus usuários.
O MapReduce nasceu dentro desse contexto para analisar uma quantidade crescente de dados da melhor forma. A ferramenta se popularizou em 2014, ano em que o Google publicou um artigo descritivo sobre ela.
Apesar de não ter aberto o código da aplicação, as palavras bastaram para inspirar os desenvolvedores Doug Cutting e Mike Cafarella, criadores do Apache Hadoop, uma plataforma open source que democratizou o MapReduce.
Atualmente, o termo se refere a todo tipo de biblioteca ou aplicação que segue esse modelo de programação, que consiste em duas fases: mapeamento e redução.

## Como funciona o MapReduce

Os programas escritos com base nesse paradigma rodam de forma paralela, normalmente em clusters (agrupamentos) de computadores. Os dados são gerados, processados e analisados de maneira distribuída e o processamento é feito por uma combinação de chaves e valores que podem estar em diferentes locais.
Na prática, isso significa que, em vez de depender da velocidade de leitura e escrita de dados de um único equipamento, o MapReduce usa várias máquinas para dividir o trabalho.
Uma analogia que ajuda a entender tanto o conceito do MapReduce quanto da computação paralela é imaginar que existe uma tarefa: contar o número de laranjas maduras em um cesto muito grande.
No método tradicional em que uma pessoa faz tudo, ela levaria muito tempo para contar as laranjas. Tanto tempo que, ao terminar o trabalho, outras laranjas teriam amadurecido no cesto.
No modelo do MapReduce, um coordenador responsável pela tarefa pode dividir as laranjas em 20 cestos, por exemplo, e vinte pessoas contam o que há em cada um deles e entregam o resultado de laranjas maduras em menor tempo.
Cabe então ao coordenador reduzir os vinte resultados em apenas uma saída e somar os valores retornados pelos contadores.
Se alguma pessoa não comparecer, a tarefa é redistribuída entre os presentes e continua sem nenhuma perda de informação ou performance, o que representa a tolerância a falhas do MapReduce.
Essa técnica não só reduz riscos de perda de dados devido a falhas das máquinas como também facilita a combinação das informações processadas pelos diversos equipamentos em uma única resposta.

### As fases do MapReduce

Como o próprio nome revela, o MapReduce é baseado nas funções Map e Reduce. Sua operação se divide em duas etapas:

### Fase 1: Mapeamento

Na primeira fase, chamada de Map (mapeamento), os dados são separados em pares de chave e valor, divididos em fragmentos e distribuídos para os nodes, onde serão processados.

### Fase 2: Redução

Depois disso, acontece a etapa de Reduce (redução), que é a combinação dos processamentos dos nodes por um master node. É ele que entregará uma resposta única à requisição realizada pelo usuário.
No Hadoop, o resultado final é escrito em HDFS (Hadoop Distributed File System), o sistema de arquivos da plataforma que lida com grandes volumes de dados.
A tolerância a falhas mencionada anteriormente aparece aqui. Caso um sistema ou disco de armazenamento falhe por algum motivo, a tarefa é redistribuída pelo master node e não há perda significativa de dados ou de performance no processo.
Isso também significa que as empresas que utilizam esse modelo de programação gastam menos recursos com infraestrutura.

#### Por que utilizar o MapReduce para analisar dados em larga escala?

Uma das vantagens do paradigma do MapReduce é a velocidade da análise dos dados. Em ferramentas tradicionais de processamento de dados, é comum que eles sejam movidos do armazenamento para o processamento, o que é lento e inviável para grandes volumes.
Por essa razão, o MapReduce toma o caminho oposto e leva o processamento para os locais em que os dados estão armazenados, o que traz mais agilidade e eficiência à análise.
Outra vantagem é que, como o processamento é paralelo e fragmentado, pode acontecer mesmo em clusters de máquinas com configurações modestas – não é preciso ter um supercomputador.
O MapReduce também é relativamente simples e tem uma boa curva de aprendizado, mesmo quando comparado com outras soluções adotadas para lidar com big data, como o Spark ou o Mesos.
Essa facilidade de utilização e implementação, em grande parte graças ao alto engajamento da comunidade de Hadoop, se reflete na adoção maior desse modelo de programação.
Tudo indica que o número deve continuar crescendo, graças ao motor por trás da ferramenta, que também está em crescimento: a importância de big data para os negócios.
Segundo uma pesquisa de 2016 da Forrester Research, quase 40% das empresas disseram que estavam implementando ou expandindo suas estratégias de Big Data. Outras 30% planejavam investir na área no ano seguinte – e é provável que muitas delas apostem no MapReduce.

##### Lançamento da atualização principal de maio de 2022 para a Pesquisa Google.

Segundo o Blog do Google (https://developers.google.com/search/blog) Informaram uma nova atualização no algoritimo de busca em maio de 2022
"Quarta-feira, 25 de maio de 2022
Fazemos melhorias significativas nos nossos processos gerais de classificação várias vezes no ano, que chamamos de atualizações principais. Essas atualizações têm como objetivo aumentar a relevância geral e tornar os resultados da pesquisa mais úteis para todos. Hoje lançamos a atualização principal de maio de 2022. O lançamento completo vai levar cerca de uma a duas semanas."