Click here to load reader

Symfony2 e Elasticsearch com FosElasticaBundle

  • View
    89

  • Download
    1

Embed Size (px)

Text of Symfony2 e Elasticsearch com FosElasticaBundle

  • Symfony2 + Elasticsearchmaking the world a better place

  • E eu?

    2

    Waldemar Neto @waldemarnt

    http://walde.co/

    http://walde.co/http://walde.co/

  • Vamos falar de que?

    3

  • Vamos falar de que?

    4

  • Voltando 3 anos no tempo

    5

  • A necessidade

    6

  • Buscas avanadas

    7

  • Elasticsearchbusca em tempo real

  • Elasticsearch is a search server based on Lucene. It provides a distributed, multitenant-capable full-text search engine with a RESTful web interface and schema-free JSON documents. Elasticsearch is developed in Java and is released as open source under the terms of the Apache License.

    Banon. Shay

    9

  • 10

    Quem usa?

    Fonte: https://www.elastic.co/use-cases

  • O Apache Lucene

    11

  • REST API

    12

  • Como isso funciona?

    1.Ecossistema

    13

  • Termos comuns

    Cluster Node Index Shard Replica Type Document Term

    14

  • ndice invertido, onde a magia acontece

    Term Doc_1 Doc_2 Doc_3

    Waldemar x x

    Bicicleta x x x

    Avio x

    15

    1. Score1.1. Bicicleta 31.2. Waldemar 21.3. Avio 1

  • Overview do ecossistema

    16

    CLUSTER

    NODE

    SHARD REPLICA

  • Escalonamento

    17

    CLUSTER

    NODE 1 - MASTER

    SHARD1 REPLICA3

    NODE 2

    SHARD2 REPLICA1

    NODE 3

    SHARD3 REPLICA2

  • Indexando um documento

    18

    CLUSTER

    NODE 1 - MASTER

    SHARD1 REPLICA3

    NODE 2

    SHARD2 REPLICA1

    NODE 3

    SHARD3 REPLICA2CLIENT

  • Buscando documentos

    19

    CLUSTER

    NODE 1 - MASTER

    SHARD1 REPLICA3

    NODE 2

    SHARD2 REPLICA1

    NODE 3

    SHARD3 REPLICA2CLIENT

  • Falhas no cluster

    20

    CLUSTER

    NODE 1 - MASTER

    SHARD1 REPLICA3

    NODE 2

    SHARD2 REPLICA1

    NODE 3

    SHARD3 REPLICA2

  • Cluster Health

    Verde Amarelo Vermelho

    21

  • Interagindo com o servidor

    22

  • Estrutura de dados

    1. Index2. Type3. Document

    23

    1 2

    3

    RESTful Response

  • Na linha do RESTful

    index

    type

    document reference(id)

    24parameters

  • Mapping

    NoSql style Pode ser criado manualmente Pode ser alterado dinamicamente

    25

  • O que o elasticsearch me oferece?

    Queries Filtros Geolocation Aggregations Full Text Search Escalabilidade Comunicao RESTful

    26

  • E o Symfony?

  • Symfony.com website28

  • Integrando Symfony e Elasticsearch

    29

    FosElasticaBundle

  • Configurando FosElasticaBundle

    30

  • Sincronizando dados

    31

  • Listeners

    32

  • Entidades Doctrine

    Trabalhando junto com Doctrine

    33

    User

    Posts

  • Queries

  • Buscando uma entidade

    35

  • Criando uma busca

    36

  • Montando Queries

    37

  • BoolQuery com Match em Json38

  • BoolQuery com MatchQuery usando ElasticaBundle39

  • 40

    Renderizando resultado

  • E o use case?

  • 100.000+Documentos indexados

    200msTempo mdio de resposta para as requisies

    30.000+Dispositivos consultando

    42

  • Onde aprende?

  • 44

  • 45

  • 46

    E ERAS ISSO

  • Thanks!Perguntas?

    https://github.com/waldemarnt

    https://twitter.com/waldemarnt

    https://fb.com/waldemarnt

    http://walde.co47