Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ElasticSearch - Tornando suas buscas textuais m...

ElasticSearch - Tornando suas buscas textuais mais poderosas @Thiago Gonzaga

Avatar for hack.river

hack.river

July 07, 2016
Tweet

More Decks by hack.river

Other Decks in Programming

Transcript

  1. Quién soy jo? • Bacharel em ciência da computação pela

    UNESP • Desenvolvedor desde 2004, em Java desde 2007 • Evangelista Java, palestrante e entusiasta de tecnologias livres e Open Source. • Coordenador de Eventos do Grupo de Usuários Java. • Engenheiro de Software na Aurea
  2. Agenda • Por que buscas textuais • O que é

    elasticsearch? • O que não é o elasticsearch? • Como funciona? • Mapeamento (Schema) • Indexação • Analise de dados com Kibana • Boas Práticas
  3. SELECT * FROM Produtos p WHERE p.nome LIKE %:query %

    OR %:query% p.descricao LIKE %:query%
  4. SELECT * FROM Produtos p WHERE p.nome LIKE %:query %

    OR %:query% p.descricao LIKE %:query% OR p.palavras_chave LIKE %:query%
  5. SELECT * FROM Produtos p WHERE p.nome LIKE %:query %

    OR %:query% p.descricao LIKE %:query% OR p.palavras_chave LIKE %:query% OR p.categoria LIKE %:query%
  6. O que é o elasticsearch? • Full text search engine

    • Baseado no Apache Lucene • RESTful • Schemaless • Open source • Escalavel • Trabalha com grande quantidade de dados • Faz busca textual, filtros, agregações, estatísticas (média, máximo, mínimo, desvio padrão, etc)
  7. O que não é o elasticsearch? • Banco de dados

    • Não confiável para armazenamento persistente • Não garante a integridade dos indices • É necessário ter um “river" para alimentar os dados
  8. Mapeamento (Schema) • Baseado em Documento (JSON-Like) • Pode ser

    criado dinamicamente • Pode-se oferecer um hint (manualmente)
  9. Kibana • Plataforma flexível de analise • Analise em tempo

    real • Dashboard com varias opções de customização
  10. Próximos Passos • https://www.elastic.co/products/elasticsearch • https://www.elastic.co/products/kibana • Crie um shield

    usando a API de sua linguagem de preferencia (não deixe a API do elasticsearch diretamente exposta)
  11. APIs Disponíveis • Java API • JavaScript API • Groovy

    API • .NET API • PHP API • Perl API • Python API • Ruby API
  12. Convite • Encontros mensais • Encontro Java Noroeste - 26/07

    as 19h Unesp • Android • Big Data • Hackerspace • GWT • http://javanoroeste-slack.herokuapp.com