Pesquisa do Sapo

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    1 Favorite & 1 Group

    Pesquisa do Sapo - Presentation Transcript

    1. pesquisa.sapo.pt João Pedro Gonçalves Codebits, 14 de Novembro 2007
    2. Agenda A Pesquisa do SAPO Como funciona um motor de Pesquisa APIs de acesso à Pesquisa
    3. A Pesquisa do SAPO • 40 milhões Pesquisas por mês. • 50 Queries por Segundo (QPS). • Acordo com Google desde 1999. • Indexador FAST com cerca de 75 milhões de páginas indexadas.
    4. A Pesquisa do SAPO • Frontend em mod_perl • Perl, Python, PHP, C e C++ • Equipa de 10 programadores nas áreas de Pesquisa, Anúncios contextualizados e Directório
    5. A Pesquisa do SAPO • Interface com menus contextuais. • Preview e Gravar página como PDF. • Pesquisa de Notícias e Blogs portugueses.
    6. Como funciona um motor de Pesquisa Desafios Tempo de Resposta Ranking Volume de Informação
    7. Tempo de resposta - ciclo Search, Find, Obtain Mindstorms Acesso rápido à caixa de Pesquisa. Resultado Tempo de pretendido rápido carregamento da de encontrar na páginas de destino página. está fora de controle do motor de busca.
    8. Autoridade e Relevância - Desafios • Análise estrutural da Web. • Autoridade nem sempre qualidade • Comportamento dos utilizadores ajuda no ranking. • Problemas com Spam.
    9. Volume da Informação - Desafios ~15 KB 75 1 Terabyte de Indice por documento milhões de páginas de Pesquisa Objectivo: No caso Português, garantir 50 QPS em menos de 500ms por Pesquisa, com um Índice de 1 Terabyte.
    10. Como funciona um motor de Pesquisa Fases da Pesquisa Crawling e análise de conteúdo Indexação Query
    11. Crawlers • Percorrem as páginas que irão ser indexadas. • Limite de pedidos por site. • Vários sites em simultâneo, optimizado para a largura de banda disponível. • Crawling distribuído. • Master distribui tarefas, cada nó é responsável pelo seu armazenamento.
    12. Document Pipeline • Conteúdo dos crawlers é enviado para a Document Pipeline. • Envio em batch dos documentos. • Cada url é um objecto Document. • No início do processo, apenas sabemos a url e o conteúdo do documento não processado.
    13. DOCInit Document Pipeline EncodingNormalizer Preparar Documento PDF/Flash / doc Converter HTMLParsing LinkExtractor Analizar estrutura LinkAnalyzer LanguageDetector Vectorizer Análise linguística Lemmatizer GetLocations GetPersonNames • Cada componente na Extracção de Entidades cadeia é um módulo GetDateAndTime QualityBoosting isolado que altera o Controle de Qualidade RankTuning objecto Document. SerializeDocument • Módulos desenvolvidos Send to Indexer em Python. Índice
    14. Vectorizer: Clustering de conteúdo [senado aprova, 1] [michael mukasey, 1] [posições controversas, 1] [attorney general, 1] [aprova responsável, 1] [estados unidos, 1] [senado aprova, 1] [justiça, 1] [attorney general, 0.707107] [aprova responsável, 1] [attorney, 0.707107] [alberto gonzales, 0.707107] [oito procuradores, 0.707107] [reformado michael, 0.707107] [procuradores públicos, 0.707107] [mukasey substitui, 0.707107] [interrogatório waterboarding, 0.707107] [unidos confirmou, 0.707107] [debate duro, 0.707107] [oito procuradores, 0.707107] [michael mukasey, 0.707107] [opiniões controversas, 0.707107] [substitui alberto gonzales, 0.707107] [juiz reformado, 0.707107] [procuradores públicos, 0.707107] [substitui alberto gonzales, 0.707107] • Essencial para evitar resultados semelhantes. • Vector do documento permite efectuar análise de clusters.
    15. Indexação doc1, (pos1,pos2, .., posN) doc2, (pos1,pos2, .., posN) termo docN, (pos1,pos2, .., posN) • Índices invertidos optimizados para a intersecção de termos. • Posição relativa dos termos é guardada.
    16. Indexação 5, (90,125,324) mindstorm 34, (5, 46) 23, (1,25,34) 34, (4, 45, 925) doc34 lego ..... ...... ... 45, (2, 322) ... lego mindstorm ... ..... 9, (10023) U = lego mindstorm doc34
    17. Indexação • Cada índice é gerado localmente. • Perfil do Índice permite definir quais os campos mais relevantes e qual o peso.
    18. Pesquisa em paralelo Publicidade Mindstorms Contextualizada Correcção ortográfica Módulos Contextualizados Pesquisa Distribuída
    19. Pesquisa distribuída • Cada nó de Pesquisa tem uma porção do índice total de Pesquisa. • A um conjunto de nós com o mesmo índice chamamos de Coluna. • Uma pesquisa na Coluna devolve sempre os mesmos resultados.
    20. Query • Ao conjunto de nós que perfazem a totalidade do Índice, mas sem redundância chamamos de Linha. • Cada Linha responde a um número limitado de QPS. • Uma pesquisa é efectuada em todas as colunas presentes numa Linha.
    21. Query • A Matriz da Pesquisa é o número de nós [Linhas x Colunas ] • Cada Pesquisa é balanceada dentro de cada Coluna para ser servida por um dos nós com o mesmo Índice. • O algoritmo de MergeSort ordena os resultados que vêm de cada nó.
    22. Query Mindstorms Col 2 Col 0 Merge(Col0, Col1, Col2) Col 1
    23. Open source • Lucene • Motor em Java. • Suporte perfis de índices e pesquisa em campos. • SolR • Baseado no Lucene. • Optimizado para conteúdo web. • APIs JSON e XML/RPC
    24. Agenda A Pesquisa do SAPO Como funciona um motor de Pesquisa APIs de acesso à Pesquisa
    25. OpenSearch • Protocolo Opensearch da A9 • RSS para a Pesquisa. • Auto-discovery suportada em Browsers modernos.
    26. OpenSearch <?xml version=\"1.0\" encoding=\"UTF-8\"?> <OpenSearchDescription xmlns=\"http://a9.com/-/spec/opensearchdescription/1.0/\"> <Url>http://pesquisa.sapo.pt/openSearch? q={searchTerms}&amp;count={count}&amp;fs={startIndex}&amp;rss=1</Url> <Format>http://a9.com/-/spec/opensearchrss/1.0/</Format> <ShortName>SAPO</ShortName> <LongName>Pesquisa SAPO</LongName> <Description>Pesquisa no Directorio SAPO - Portuguese only</Description> <Tags>sapo portugal directorio pesquisa</Tags> <Image>http://imgs.sapo.pt/images/c2/www.sapo.pt/icones_topo/logotipo/logo_b.gif</Image> <SampleSearch>sapo</SampleSearch> <Developer>Joao Pedro Goncalves</Developer> <Contact>joaop@co.sapo.pt</Contact> <Attribution>SAPO - Portugal Online, PT.COM</Attribution> <SyndicationRight>open</SyndicationRight> <AdultContent>false</AdultContent> </OpenSearchDescription> http://services.sapo.pt/Metadata/Service/Search
    27. OpenSearch em Perl use WWW::OpenSearch; my $url = \"http://services.sapo.pt/Metadata/OpenSearch/Search\"; my $engine = WWW::OpenSearch->new($url); # Perform search for \"sapo\" my $response = $engine->search(\"sapo\"); for my $item ($response->feed->items) { print $item->title, \"\\n\\t\", $item->link, \"\\n\"; } http://services.sapo.pt/Metadata/Service/Search
    28. Query completion - Collective Intelligence • Análise dos queries efectuados na Pesquisa do SAPO • Ordenar as pesquisas mais frequentes devolve comportamentos dos Portugueses, um sistema de sugestões de Pesquisa • Fonte de informação valiosa para previsão de comportamento dos utilizadores
    29. Query completion • Integração com Firefox • Serviço já disponível • Extremamente rápido • Interface em JSON e XML [\"quarteira\",[\"quarteira\",\"apartamentos quarteira\",\"ferias quarteira\",\"hoteis quarteira\",\"mapa quarteira\",\"hoteis em quarteira\",\"quarteira apartamentos\",\"quarteira nomes de cafes\",\"hotel quarteira sol\",\"apartamentos na quarteira\",\"quarteiratur\",\"quarteirao\",\"orbitur quarteira\",\"quartos quarteira\",\"camping quarteira\",\"parque campismo quarteira\"],[],[]] http://pesquisa.sapo.pt/livesapo?q={query}
    30. Obrigado! Perguntas? joaop@co.sapo.pt João Pedro Gonçalves Codebits, 14 de Novembro 2007

    + codebitscodebits, 3 years ago

    custom

    2117 views, 1 favs, 2 embeds more stats

    Iniciação ao mundo da Pesquisa, o que há num mot more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 2117
      • 2086 on SlideShare
      • 31 from embeds
    • Comments 0
    • Favorites 1
    • Downloads 42
    Most viewed embeds
    • 30 views on http://intra.codebits.sapo.pt
    • 1 views on http://static.slideshare.net

    more

    All embeds
    • 30 views on http://intra.codebits.sapo.pt
    • 1 views on http://static.slideshare.net

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories

    Groups / Events