elasticsearch php ug bg

48
ELASTICSEARCH The “new school” search/ analytics engine What is it and what you can do with it

Upload: nikolay-ignatov

Post on 15-Apr-2017

276 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Elasticsearch PHP UG BG

ELASTICSEARCH

The “new school” search/analytics engine

What is it and what you can do with it

Page 2: Elasticsearch PHP UG BG

About me - @nignatov

• Founder/CEO/TA/PM/AM… at Node Spark

• Using PHP since 2006

• Using Drupal since 2009

• Love to experiment with new technologies

• The Godfather of Elasticsearch Connector

Page 3: Elasticsearch PHP UG BG

After the session you should know:

• What is Elasticsearch • How Elasticsearch is working in general • How you can integrate it with PHP • If time - share some ideas of possible

use cases.

Page 4: Elasticsearch PHP UG BG

Shay Banon

• http://thedudeabides.com/ • https://github.com/kimchy • https://twitter.com/kimchy/

• Founder & CTO at Elastic https://elastic.co

Who made Elasticsearch?

Page 5: Elasticsearch PHP UG BG

Why “new school”?

Page 6: Elasticsearch PHP UG BG

Why “new school”?

Page 7: Elasticsearch PHP UG BG

Why “new school”?

Page 8: Elasticsearch PHP UG BG

Who else is using it?

Page 9: Elasticsearch PHP UG BG

Who else is using it?

Page 10: Elasticsearch PHP UG BG

• Distributed out of the box - Incredible easy to make cluster, just start new node!

• High availability • Real time index/search • REST API with JSON • Written in Java, build on top of Apache Lucene and Open Source

http://github.com/elasticsearch/elasticsearch • Schema free • Document oriented

What is Elasticsearch?

Page 11: Elasticsearch PHP UG BG

Vertical and horizontal scaling

E01

E01

E01 E02 E03 E04+

E01

Page 12: Elasticsearch PHP UG BG

ELK Stack

https://www.elastic.co/webinars/introduction-elk-stack

Page 13: Elasticsearch PHP UG BG

Some associations

Page 14: Elasticsearch PHP UG BG

Some associations

RELATIONAL DB ELASTICSEARCH

Database Index

Tables Types

Rows Documents

Column Field

Page 15: Elasticsearch PHP UG BG

How to install it?

Page 16: Elasticsearch PHP UG BG

How to install it?

Page 17: Elasticsearch PHP UG BG

How to install it?

Page 18: Elasticsearch PHP UG BG

Support matrix

Page 19: Elasticsearch PHP UG BG

… or Elastic Cloud

Page 20: Elasticsearch PHP UG BG

Elasticsearch in action

Elasticsearch Demo!

https://www.elastic.co/webinars/get-started-with-elasticsearch

https://github.com/nodespark/talks/blob/master/PHPUG.md

Page 21: Elasticsearch PHP UG BG

How distributed works?

Node 1

PUT /twitter index: number_of_shards:3 number_of_replicas:1

Page 22: Elasticsearch PHP UG BG

How distributed works?

Node 1

PUT /twitter index: number_of_shards:3 number_of_replicas:1

1P 2P

3P

Page 23: Elasticsearch PHP UG BG

How distributed works?

Node2

Node 1

1P 2P

3P

Page 24: Elasticsearch PHP UG BG

How distributed works?

Node2

Node 1

1P

3P

2P 1R

3R

2R

Page 25: Elasticsearch PHP UG BG

How distributed works?

Node2

Node 1

1P

3P

2P 1R

3R

2R

Node3

Page 26: Elasticsearch PHP UG BG

How distributed works?

Node2

Node 1

1P 2P2R

Node3

3P 1R3R

Page 27: Elasticsearch PHP UG BG

How distributed works?

Node2

Node 1

1P 2P2R

Node3

3P 1R3R

Page 28: Elasticsearch PHP UG BG

How distributed works?

Node 1

1P 2R

Node3

3P 1R

Page 29: Elasticsearch PHP UG BG

How distributed works?

Node 1

1P

Node3

3P 1R

2R3R

2P

Page 30: Elasticsearch PHP UG BG

Distributed indexing

Page 31: Elasticsearch PHP UG BG

Node2

Node 1

PUT /twitter/tweet/1{….}

1P 2P2R

Node3

3P 1R3R

Distributed indexing

Page 32: Elasticsearch PHP UG BG

Node2

Node 1

PUT /twitter/tweet/1{….}

1P 2P2R

Node3

3P 1R3R

Distributed indexing

Page 33: Elasticsearch PHP UG BG

Node2

Node 1

PUT /twitter/tweet/1{….}

1P 2P2R

Node3

3P 1R3R

Distributed indexing

Page 34: Elasticsearch PHP UG BG

Node2

Node 1

PUT /twitter/tweet/1{….}

1P 2P2R

Node3

3P 1R3R

Distributed indexing

Page 35: Elasticsearch PHP UG BG

Node2

Node 1

PUT /twitter/tweet/1{….}

1P 2P2R

Node3

3P 1R3R

Distributed indexing

Page 36: Elasticsearch PHP UG BG

Node2

Node 1

PUT /twitter/tweet/1{….}

1P 2P2R

Node3

3P 1R3R

Distributed indexing

Page 37: Elasticsearch PHP UG BG

Distributed Search

Page 38: Elasticsearch PHP UG BG

Node2

Node 1

GET /twitter/_search?q=php

1P 2P2R

Node3

3P 1R3R

Distributed Search

Page 39: Elasticsearch PHP UG BG

Node2

Node 1

GET /twitter/_search?q=php

1P 2P2R

Node3

3P 1R3R

Distributed Search

Page 40: Elasticsearch PHP UG BG

Node2

Node 1

GET /twitter/_search?q=php

1P 2P2R

Node3

3P 1R3R

Distributed Search

Page 41: Elasticsearch PHP UG BG

Node2

Node 1

GET /twitter/_search?q=php

1P 2P2R

Node3

3P 1R3R

Distributed Search

Page 42: Elasticsearch PHP UG BG

PHP Libraries

https://github.com/elastic/elasticsearch-php

https://github.com/ruflin/Elastica

Page 43: Elasticsearch PHP UG BG

Brainstorm – Content hub

Site X

Site Y

Site Z

Content Hub

Feed Site

Page 44: Elasticsearch PHP UG BG

Brainstorm – Headless

NodeJS

Data Warehouse

Drupal/Wordpress CMS

Frontend

Page 45: Elasticsearch PHP UG BG

Brainstorm – SLA Hub

Site 01

Site 02

Site 03

Site 04

Site 05

Support Department Monitoring

Page 46: Elasticsearch PHP UG BG

Brainstorm - Async storage

Web 01

Web 02

Web 03

Web 04

Web 05

Page 47: Elasticsearch PHP UG BG

Thank you!

Page 48: Elasticsearch PHP UG BG

Thank you!

Questions ?