Your SlideShare is downloading. ×

Elasticsearch (Rubyshift 2013)

1,951

Published on

General introduction to Elasticsearch at the RubyShift 2013 conference. …

General introduction to Elasticsearch at the RubyShift 2013 conference.

Download the source code for demos:

* http://git.io/hello-elasticsearch-ruby
* http://git.io/stackexchange-elasticsearch

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,951
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
15
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Karel Minařík @karmiq elasticsearch
  • 2. What is Elasticsearch?
  • 3. Elasticsearch Flexible REST API & JSON documents; API driven configuration; scripting; index aliases; … Scalable Distributed; built for cloud; … Versatile Search; analytics; storage; alerting; text clustering; NLP … Open Open source; community; plugins; …
  • 4. Demo http://git.io/hello-elasticsearch-ruby
  • 5. http://stackoverflow.com total title date author rating answers result ordering query syntax excerpt highlight
  • 6. http://stackexchange.com/sites?view=list#questions
  • 7. Schema-less is not schema-free
  • 8. Flat structure An index per model. "Common search" scenario. Cannot cross-search. users questions answers comments { "name" : "John", "location" : "..." } { "title" : "My First Question", "body" : "..." } { "title" : "My First Answer", "body" : "..." } { "body" : "Just a comment: ..." }
  • 9. Denormalized Cheap to query, expensive to update. { "title": "My first question", "body": "...", "user": { "name": "John", "location": "..." }, "comments": [ { "text": "Good question!", "user": { "name": "Robert", "location": "..." } } ] } questions answers
  • 10. Compromised denormalisation Some properties don't change (user_name). Some can either be "freezed" or we have to pay the price of the mass update (user_location). { "id" : "john", "name" : "John", "location" : "..." } myapp user question answer { "id" : 1, "title" : "My first question", "body" : "...", "user" : { "name" : "John", "location" : "..." }, "comments" : [ { "body" : "...", "user" : { ... } }, { "body" : "...", "user" : { ... } } ] } { "id" : 2, "title" : "My first answer", "parent_id" : 1, "user" : { "name" : "Robert", "location" : "..." }, "comments" : [ { "body" : "...", "user" : { ... } } ] } parent_id comment comment
  • 11. http://git.io/stackexchange-elasticsearch Demo
  • 12. thanks!

×