elasticsearch (rubyshift 2013)

Post on 15-Jan-2015

1.498 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

Karel Minařík@karmiq

elasticsearch

What is Elasticsearch?

ElasticsearchFlexible 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; …

Demo

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

http://stackoverflow.com

total

title

date author

rating

answers

result ordering

querysyntax

excerpt

highlight

Schema-less is not schema-free

Flat structureAn 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: ..."}

DenormalizedCheap to query, expensive to update.

{ "title": "My first question", "body": "...",

"user": { "name": "John", "location": "..." },

"comments": [ { "text": "Good question!", "user": { "name": "Robert", "location": "..." } } ]}

questions

answers

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

thanks!

top related