SlideShare a Scribd company logo
SIMPLE SEARCH WITH
  ELASTIC SEARCH
      MARK STORY
       @MARK_STORY
WAT?
Java based
Lucene powered
JSON driven
Document orientated database
All out super search solution
Easy to setup, and use
INDEXES AND TYPES
            INDEXES
   Similar concept to databases.
   Contain multiple types.
TYPES
Similar concept to tables.
Defines datatypes and indexing rules.
DOCUMENT BASED REST API
     Simple to use and easy to understand.
CREATE A DOCUMENT
cr -PS lclot90/otcspol - '
 ul XOT oahs:20cnat/epe d {
  "ae:"akSoy,
   nm" Mr tr"
  "mi" "akmr-tr.o"
   eal: mr@aksoycm,
  "wte" "mr_tr"
   titr: @aksoy,
  "onr" "aaa,
   cuty: Cnd"
  "as:[ckpp,"aeet,"aaa]
   tg" "aeh" ckfs" cnd"
}'

#Rsos:
  epne
{o"tu,
 "k:re
"idx:cnat"
 _ne""otcs,
"tp""epe,
 _ye:pol"
"i""iMaiBDAWs5g,
 _d:9zCSQq1J8i7"
"vrin:}
 _eso"1
READ IT BACK
cr -GTlclot90/otcspol/i?rtytu
 ul XE oahs:20cnat/epe$dpet=re

#Rsos:
   epne
{_ne""otcs,
 "idx:cnat"
"tp""epe,
 _ye:pol"
"i""iMaiBDAWs5g,
 _d:9zCSQq1J8i7"
"vrin:,
 _eso"1
"xss:re
 eit"tu,
"suc":{
 _ore
  "ae:"akSoy,
   nm" Mr tr"
  "mi" "akmr-tr.o"
   eal: mr@aksoycm,
  "wte" "mr_tr"
   titr: @aksoy,
  "onr" "aaa,
   cuty: Cnd"
  "as:[ckpp,"aeet,"aaa]
   tg" "aeh" ckfs" cnd"
}}
DELETE IT!
cr -DLT lclot90/otcspol/i
 ul XEEE oahs:20cnat/epe$d

#Rsos:
  epne
{o"tu,
 "k:re
"on"tu,
 fud:re
"idx:cnat"
 _ne""otcs,
"tp""epe,
 _ye:pol"
"i""iMaiBDAWs5g,
 _d:9zCSQq1J8i7"
"vrin:}
 _eso"2
SIMPLE SEARCH!
               More on search to come




cr -GTlclot90/otcspol/sac?=akpet=re
 ul XE oahs:20cnat/epe_erhqMr&rtytu
#Rsos:
   epne
{to"1,
 "ok:4
"ie_u"fle
 tmdot:as,
"sad"{
 _hrs:
  "oa"5
   ttl:,
  "ucsfl:,
   scesu"5
  "ald:
   fie"0
},
"is:
 ht"{
  "oa"1
   ttl:,
  "a_cr"01746,
   mxsoe:.1424
  "is:
   ht"[
    {_ne""otcs,
    "idx:cnat"
     "tp""epe,
      _ye:pol"
     "i""llMTWqMZUlw,
      _d:sJyBSaAfU-D"
     "soe:.1424
      _cr"01746,
     "suc":{
      _ore
       "ae:"akSoy,
        nm" Mr tr"
       "mi" "akmr-tr.o"
        eal: mr@aksoycm,
       "wte" "mr_tr"
        titr: @aksoy,
       "onr" "aaa,
        cuty: Cnd"
       "as:[ckpp,"aeet,"aaa]
        tg" "aeh" ckfs" cnd"
     }
    }
  ]
}}
THIS ALL SOUNDS TOO
 BADASS TO BE TRUE
DOCUMENT "DATABASE" IS A
      BIT LIMITED
     Partial updates are doable but painful
     No joins
     No map reduce
     Cannot replace all other datasources
BUT SEARCH IS AMAZZZING
SEARCH BETWEEN TYPES &
       INDEXES
                Search multiple types
cr -GTlclot90/otcspol,opne/sac?=aeMr
 ul XE oahs:20cnat/epecmais_erhqnm:ak


        Search multiple indexes in your cluster
cr -GTlclot90/alpol/sac?=aeMr
 ul XE oahs:20_l/epe_erhqnm:ak
FANCY SEARCH OPTIONS
SEARCH WITH TEXT
       EXPRESSIONS
cr -GTlclot90/otcspol/sac?rtytu - '
 ul XE oahs:20cnat/epe_erhpet=re d {
  "ur" {
   qey:
    "ur_tig:{
     qeysrn"
      "ur" "akO wlo"
       qey: mr R edn
    }
  }
}'
HIGHLIGHT SEARCH
             KEYWORDS
Wrap search terms in highlighting text/markup/html. Great for larger
            documents, as you can extract fragments.
cr -GTlclot90/otcspol/sac?rtytu - '
 ul XE oahs:20cnat/epe_erhpet=re d {
   "ur" {
    qey:
      "et:{
       tx"
         "mi" "ak
          eal: mr"
      }
   },
   "ihih" {
    hglgt:
      "ils:{
       fed"
         "mi" {,
          eal: }
         "ae:{
          nm" }
      }
   }
}'
FACETS
Facets provide aggregated data about a query. You can use this data
          to create drill down search, or histogram data.
         Term counts.
         Custom script values.
         Ranges - like price ranges.
         Geo distance facets - aggregate results by distance.
cr -GTlclot90/otcspol/sac?rtytu - '
 ul XE oahs:20cnat/epe_erhpet=re d {
   "ur" {
    qey:
      "ur_tig:{
       qeysrn"
         "ur" ".o"
          qey: *cm
      }
   },
   "aes:{
    fct"
      "agd:{trs:{fed:"as}}
       tge" "em"   "il" tg"
   }
}'
KNOBS & BUTTONS
MAPPINGS
Allows fine-grained searching later on, and lets you configure
custom mappings.
Control the data types, and indexing used for JSON document
types.
Disable indexing on specific fields.
Configure custom analyzers. For example, non-english stemming.
AVAILABLE MAPPING TYPES
string, integer, float, boolean, null
object - Standard type for nested objects. Allows
Arrays are automatically handled as the above.
properties to be defined.
multi_field - Allows a field to be handled multiple ways with different
aliases.
nested - Indexes sub objects, and works with nested filter/queries.
ip - For ipv4 data.
geo_point - For lat/lon values. Enables piles of search options.
attachment - Store a blob. Can index many text based documents
like PDF.
CREATE A MAPPING
cr -PTlclot90/otcspol/mpig- '
 ul XU    oahs:20cnat/epe_apn d {
  "epe:{
   pol"
    "rpris:{
     poete"
      "ae:{tp" "tig}
       nm" "ye: srn",
      "mi" {tp" "tig}
       eal: "ye: srn",
      "wte" {tp" "tig}
       titr: "ye: srn",
      "onr" {tp" "tig}
       cuty: "ye: srn",
      "as:{tp" "tig}
       tg" "ye: srn"
    }
  }
}'
DEFINE THE ANALYZER USED
When defining a field you can use a a y e i d x a a y e ,
                                    nlzr ne_nlzr
and s a c _ n l z r customize the way data is stored, and or
     e r h a a y e to
searched.
You can also disable analyzing for specific fields.
DISABLE INDEXING
{
    "ae:{
     nm"
      "ye:"tig,
       tp" srn"
      "ne" "o_nlzd,
       idx: ntaaye"
    },
    "oe:{
     nn"
      "ye:"nee"
       tp" itgr,
      "ne" "o
       idx: n"
    }
}
SHARDS & REPLICAS
                              SHARDS
    Define how many nodes you want to split your data across.
       If a node goes down, you still have some of your data.
        You can use routing to control how data is sharded.
More shards improves indexing performance, as work is distributed.
SIMPLE SHARDING
SHARD OVER MULTIPLE NODES
REPLICAS
          Define how many copies of your data you want.
    If several nodes go down, you might still have all your data.
More replicas improves search performance and cluster availability.
REPLICAS
MULTI-TENANCY
Multi-tenancy is a reasonably common requirement, and there are a
                         few ways to do it.
ONE INDEX PER 'TENANT'
Great for small number of tenants.
Painful for larger number of tenants. As sharding and replicas can
be harder to manage.
cr -GTlclot90/akcnat/sac?rtytu - '
 ul XE oahs:20mr/otcs_erhpet=re d {
  "ur" {
   qey:
    "ur_tig:{
     qeysrn"
      "ur" "ednO js"
       qey: wlo R oe
    }
  }
}'
SPECIAL FILTER CONDITIONS
More error prone as you have to include a filter condition.
Easy to shard and setup replicas.
Easily scales to many tenants. As shards/replicas are shared.
Make sure tenant id is a non-analyzed value.
cr -GTlclot90/conigivie/sac?rtytu - '
 ul XE oahs:20acutn/nocs_erhpet=re d {
  "ur" {
   qey:
    "itrd:{
     flee"
      "itr:{
       fle"
        "em:{acutd:1
         tr" "coni"   }
      },
      "ur" {
       qey:
        "ur_tig:{
         qeysrn"
          "ur" "upewf"
           qey: prl ii
        }
      }
    }
  }
}'
OTHER BATTERIES INCLUDED
        Routing Define how documents are sharded.
  Rivers Pipe data in realtime from sources like RabbitMQ.
             Thrift Talk thirft to ElasticSearch.
INTEGRATION WITH
    CAKEPHP
HTTPSOCKET + JSON_ENCODE()
      Basic, can be hard to use.
      No magic.
ELASTICSEARCH DATASOURCE
          (David Kullman)
 Behavior to auto index on aftersave
 Datasource for searching elasticsearch
 Console app to index models
ELASTICSEARCH PLUGIN
        (Kevin von Zonneveld)
Similar features to the previous plugin
Offers more control on how data is indexed
QUESTIONS?
Simple search with elastic search
Ad

More Related Content

What's hot (20)

Elastic Search
Elastic SearchElastic Search
Elastic Search
Navule Rao
 
An Introduction to Elastic Search.
An Introduction to Elastic Search.An Introduction to Elastic Search.
An Introduction to Elastic Search.
Jurriaan Persyn
 
Introduction to Elasticsearch
Introduction to ElasticsearchIntroduction to Elasticsearch
Introduction to Elasticsearch
Jason Austin
 
Elasticsearch for Data Analytics
Elasticsearch for Data AnalyticsElasticsearch for Data Analytics
Elasticsearch for Data Analytics
Felipe
 
Elasticsearch presentation 1
Elasticsearch presentation 1Elasticsearch presentation 1
Elasticsearch presentation 1
Maruf Hassan
 
ElasticSearch AJUG 2013
ElasticSearch AJUG 2013ElasticSearch AJUG 2013
ElasticSearch AJUG 2013
Roy Russo
 
Elasticsearch: You know, for search! and more!
Elasticsearch: You know, for search! and more!Elasticsearch: You know, for search! and more!
Elasticsearch: You know, for search! and more!
Philips Kokoh Prasetyo
 
Managing Your Content with Elasticsearch
Managing Your Content with ElasticsearchManaging Your Content with Elasticsearch
Managing Your Content with Elasticsearch
Samantha Quiñones
 
Introduction to Elasticsearch
Introduction to ElasticsearchIntroduction to Elasticsearch
Introduction to Elasticsearch
Ruslan Zavacky
 
Elasticsearch Introduction at BigData meetup
Elasticsearch Introduction at BigData meetupElasticsearch Introduction at BigData meetup
Elasticsearch Introduction at BigData meetup
Eric Rodriguez (Hiring in Lex)
 
ElasticSearch - DevNexus Atlanta - 2014
ElasticSearch - DevNexus Atlanta - 2014ElasticSearch - DevNexus Atlanta - 2014
ElasticSearch - DevNexus Atlanta - 2014
Roy Russo
 
Elastic Search
Elastic SearchElastic Search
Elastic Search
Lukas Vlcek
 
Philly PHP: April '17 Elastic Search Introduction by Aditya Bhamidpati
Philly PHP: April '17 Elastic Search Introduction by Aditya BhamidpatiPhilly PHP: April '17 Elastic Search Introduction by Aditya Bhamidpati
Philly PHP: April '17 Elastic Search Introduction by Aditya Bhamidpati
Robert Calcavecchia
 
ElasticSearch in action
ElasticSearch in actionElasticSearch in action
ElasticSearch in action
Codemotion
 
Elasticsearch - DevNexus 2015
Elasticsearch - DevNexus 2015Elasticsearch - DevNexus 2015
Elasticsearch - DevNexus 2015
Roy Russo
 
Cool bonsai cool - an introduction to ElasticSearch
Cool bonsai cool - an introduction to ElasticSearchCool bonsai cool - an introduction to ElasticSearch
Cool bonsai cool - an introduction to ElasticSearch
clintongormley
 
Elastic search apache_solr
Elastic search apache_solrElastic search apache_solr
Elastic search apache_solr
macrochen
 
What I learnt: Elastic search & Kibana : introduction, installtion & configur...
What I learnt: Elastic search & Kibana : introduction, installtion & configur...What I learnt: Elastic search & Kibana : introduction, installtion & configur...
What I learnt: Elastic search & Kibana : introduction, installtion & configur...
Rahul K Chauhan
 
Elasticsearch first-steps
Elasticsearch first-stepsElasticsearch first-steps
Elasticsearch first-steps
Matteo Moci
 
Using elasticsearch with rails
Using elasticsearch with railsUsing elasticsearch with rails
Using elasticsearch with rails
Tom Z Zeng
 
Elastic Search
Elastic SearchElastic Search
Elastic Search
Navule Rao
 
An Introduction to Elastic Search.
An Introduction to Elastic Search.An Introduction to Elastic Search.
An Introduction to Elastic Search.
Jurriaan Persyn
 
Introduction to Elasticsearch
Introduction to ElasticsearchIntroduction to Elasticsearch
Introduction to Elasticsearch
Jason Austin
 
Elasticsearch for Data Analytics
Elasticsearch for Data AnalyticsElasticsearch for Data Analytics
Elasticsearch for Data Analytics
Felipe
 
Elasticsearch presentation 1
Elasticsearch presentation 1Elasticsearch presentation 1
Elasticsearch presentation 1
Maruf Hassan
 
ElasticSearch AJUG 2013
ElasticSearch AJUG 2013ElasticSearch AJUG 2013
ElasticSearch AJUG 2013
Roy Russo
 
Elasticsearch: You know, for search! and more!
Elasticsearch: You know, for search! and more!Elasticsearch: You know, for search! and more!
Elasticsearch: You know, for search! and more!
Philips Kokoh Prasetyo
 
Managing Your Content with Elasticsearch
Managing Your Content with ElasticsearchManaging Your Content with Elasticsearch
Managing Your Content with Elasticsearch
Samantha Quiñones
 
Introduction to Elasticsearch
Introduction to ElasticsearchIntroduction to Elasticsearch
Introduction to Elasticsearch
Ruslan Zavacky
 
ElasticSearch - DevNexus Atlanta - 2014
ElasticSearch - DevNexus Atlanta - 2014ElasticSearch - DevNexus Atlanta - 2014
ElasticSearch - DevNexus Atlanta - 2014
Roy Russo
 
Philly PHP: April '17 Elastic Search Introduction by Aditya Bhamidpati
Philly PHP: April '17 Elastic Search Introduction by Aditya BhamidpatiPhilly PHP: April '17 Elastic Search Introduction by Aditya Bhamidpati
Philly PHP: April '17 Elastic Search Introduction by Aditya Bhamidpati
Robert Calcavecchia
 
ElasticSearch in action
ElasticSearch in actionElasticSearch in action
ElasticSearch in action
Codemotion
 
Elasticsearch - DevNexus 2015
Elasticsearch - DevNexus 2015Elasticsearch - DevNexus 2015
Elasticsearch - DevNexus 2015
Roy Russo
 
Cool bonsai cool - an introduction to ElasticSearch
Cool bonsai cool - an introduction to ElasticSearchCool bonsai cool - an introduction to ElasticSearch
Cool bonsai cool - an introduction to ElasticSearch
clintongormley
 
Elastic search apache_solr
Elastic search apache_solrElastic search apache_solr
Elastic search apache_solr
macrochen
 
What I learnt: Elastic search & Kibana : introduction, installtion & configur...
What I learnt: Elastic search & Kibana : introduction, installtion & configur...What I learnt: Elastic search & Kibana : introduction, installtion & configur...
What I learnt: Elastic search & Kibana : introduction, installtion & configur...
Rahul K Chauhan
 
Elasticsearch first-steps
Elasticsearch first-stepsElasticsearch first-steps
Elasticsearch first-steps
Matteo Moci
 
Using elasticsearch with rails
Using elasticsearch with railsUsing elasticsearch with rails
Using elasticsearch with rails
Tom Z Zeng
 

Similar to Simple search with elastic search (20)

Making your elastic cluster perform - Jettro Coenradie - Codemotion Amsterdam...
Making your elastic cluster perform - Jettro Coenradie - Codemotion Amsterdam...Making your elastic cluster perform - Jettro Coenradie - Codemotion Amsterdam...
Making your elastic cluster perform - Jettro Coenradie - Codemotion Amsterdam...
Codemotion
 
ElasticSearch for .NET Developers
ElasticSearch for .NET DevelopersElasticSearch for .NET Developers
ElasticSearch for .NET Developers
Ben van Mol
 
Elasticsearch
ElasticsearchElasticsearch
Elasticsearch
Andrii Gakhov
 
Making Mongo realtime - oplog tailing in Meteor
Making Mongo realtime - oplog tailing in MeteorMaking Mongo realtime - oplog tailing in Meteor
Making Mongo realtime - oplog tailing in Meteor
yaliceme
 
Building modern web apps with html5, javascript, and java
Building modern web apps with html5, javascript, and javaBuilding modern web apps with html5, javascript, and java
Building modern web apps with html5, javascript, and java
Alexander Gyoshev
 
D3.js workshop
D3.js workshopD3.js workshop
D3.js workshop
Anton Katunin
 
Peggy elasticsearch應用
Peggy elasticsearch應用Peggy elasticsearch應用
Peggy elasticsearch應用
LearningTech
 
Building and Deploying Application to Apache Mesos
Building and Deploying Application to Apache MesosBuilding and Deploying Application to Apache Mesos
Building and Deploying Application to Apache Mesos
Joe Stein
 
Real-time search in Drupal with Elasticsearch @Moldcamp
Real-time search in Drupal with Elasticsearch @MoldcampReal-time search in Drupal with Elasticsearch @Moldcamp
Real-time search in Drupal with Elasticsearch @Moldcamp
Alexei Gorobets
 
How ElasticSearch lives in my DevOps life
How ElasticSearch lives in my DevOps lifeHow ElasticSearch lives in my DevOps life
How ElasticSearch lives in my DevOps life
琛琳 饶
 
아파트 정보를 이용한 ELK stack 활용 - 오근문
아파트 정보를 이용한 ELK stack 활용 - 오근문아파트 정보를 이용한 ELK stack 활용 - 오근문
아파트 정보를 이용한 ELK stack 활용 - 오근문
NAVER D2
 
JSON in 18c and 19c
JSON in 18c and 19cJSON in 18c and 19c
JSON in 18c and 19c
stewashton
 
Elasticsearch, a distributed search engine with real-time analytics
Elasticsearch, a distributed search engine with real-time analyticsElasticsearch, a distributed search engine with real-time analytics
Elasticsearch, a distributed search engine with real-time analytics
Tiziano Fagni
 
Workshop: Learning Elasticsearch
Workshop: Learning ElasticsearchWorkshop: Learning Elasticsearch
Workshop: Learning Elasticsearch
Anurag Patel
 
Null Bachaav - May 07 Attack Monitoring workshop.
Null Bachaav - May 07 Attack Monitoring workshop.Null Bachaav - May 07 Attack Monitoring workshop.
Null Bachaav - May 07 Attack Monitoring workshop.
Prajal Kulkarni
 
A Century Of Weather Data - Midwest.io
A Century Of Weather Data - Midwest.ioA Century Of Weather Data - Midwest.io
A Century Of Weather Data - Midwest.io
Randall Hunt
 
Elasticsearch intro output
Elasticsearch intro outputElasticsearch intro output
Elasticsearch intro output
Tom Chen
 
Elasticsearch & "PeopleSearch"
Elasticsearch & "PeopleSearch"Elasticsearch & "PeopleSearch"
Elasticsearch & "PeopleSearch"
George Stathis
 
Attack monitoring using ElasticSearch Logstash and Kibana
Attack monitoring using ElasticSearch Logstash and KibanaAttack monitoring using ElasticSearch Logstash and Kibana
Attack monitoring using ElasticSearch Logstash and Kibana
Prajal Kulkarni
 
Introduction to elasticsearch
Introduction to elasticsearchIntroduction to elasticsearch
Introduction to elasticsearch
Florian Hopf
 
Making your elastic cluster perform - Jettro Coenradie - Codemotion Amsterdam...
Making your elastic cluster perform - Jettro Coenradie - Codemotion Amsterdam...Making your elastic cluster perform - Jettro Coenradie - Codemotion Amsterdam...
Making your elastic cluster perform - Jettro Coenradie - Codemotion Amsterdam...
Codemotion
 
ElasticSearch for .NET Developers
ElasticSearch for .NET DevelopersElasticSearch for .NET Developers
ElasticSearch for .NET Developers
Ben van Mol
 
Making Mongo realtime - oplog tailing in Meteor
Making Mongo realtime - oplog tailing in MeteorMaking Mongo realtime - oplog tailing in Meteor
Making Mongo realtime - oplog tailing in Meteor
yaliceme
 
Building modern web apps with html5, javascript, and java
Building modern web apps with html5, javascript, and javaBuilding modern web apps with html5, javascript, and java
Building modern web apps with html5, javascript, and java
Alexander Gyoshev
 
Peggy elasticsearch應用
Peggy elasticsearch應用Peggy elasticsearch應用
Peggy elasticsearch應用
LearningTech
 
Building and Deploying Application to Apache Mesos
Building and Deploying Application to Apache MesosBuilding and Deploying Application to Apache Mesos
Building and Deploying Application to Apache Mesos
Joe Stein
 
Real-time search in Drupal with Elasticsearch @Moldcamp
Real-time search in Drupal with Elasticsearch @MoldcampReal-time search in Drupal with Elasticsearch @Moldcamp
Real-time search in Drupal with Elasticsearch @Moldcamp
Alexei Gorobets
 
How ElasticSearch lives in my DevOps life
How ElasticSearch lives in my DevOps lifeHow ElasticSearch lives in my DevOps life
How ElasticSearch lives in my DevOps life
琛琳 饶
 
아파트 정보를 이용한 ELK stack 활용 - 오근문
아파트 정보를 이용한 ELK stack 활용 - 오근문아파트 정보를 이용한 ELK stack 활용 - 오근문
아파트 정보를 이용한 ELK stack 활용 - 오근문
NAVER D2
 
JSON in 18c and 19c
JSON in 18c and 19cJSON in 18c and 19c
JSON in 18c and 19c
stewashton
 
Elasticsearch, a distributed search engine with real-time analytics
Elasticsearch, a distributed search engine with real-time analyticsElasticsearch, a distributed search engine with real-time analytics
Elasticsearch, a distributed search engine with real-time analytics
Tiziano Fagni
 
Workshop: Learning Elasticsearch
Workshop: Learning ElasticsearchWorkshop: Learning Elasticsearch
Workshop: Learning Elasticsearch
Anurag Patel
 
Null Bachaav - May 07 Attack Monitoring workshop.
Null Bachaav - May 07 Attack Monitoring workshop.Null Bachaav - May 07 Attack Monitoring workshop.
Null Bachaav - May 07 Attack Monitoring workshop.
Prajal Kulkarni
 
A Century Of Weather Data - Midwest.io
A Century Of Weather Data - Midwest.ioA Century Of Weather Data - Midwest.io
A Century Of Weather Data - Midwest.io
Randall Hunt
 
Elasticsearch intro output
Elasticsearch intro outputElasticsearch intro output
Elasticsearch intro output
Tom Chen
 
Elasticsearch & "PeopleSearch"
Elasticsearch & "PeopleSearch"Elasticsearch & "PeopleSearch"
Elasticsearch & "PeopleSearch"
George Stathis
 
Attack monitoring using ElasticSearch Logstash and Kibana
Attack monitoring using ElasticSearch Logstash and KibanaAttack monitoring using ElasticSearch Logstash and Kibana
Attack monitoring using ElasticSearch Logstash and Kibana
Prajal Kulkarni
 
Introduction to elasticsearch
Introduction to elasticsearchIntroduction to elasticsearch
Introduction to elasticsearch
Florian Hopf
 
Ad

More from markstory (20)

Dependency injection in CakePHP
Dependency injection in CakePHPDependency injection in CakePHP
Dependency injection in CakePHP
markstory
 
Safer, More Helpful CakePHP
Safer, More Helpful CakePHPSafer, More Helpful CakePHP
Safer, More Helpful CakePHP
markstory
 
CakePHP - The Road Ahead
CakePHP - The Road AheadCakePHP - The Road Ahead
CakePHP - The Road Ahead
markstory
 
Future of HTTP in CakePHP
Future of HTTP in CakePHPFuture of HTTP in CakePHP
Future of HTTP in CakePHP
markstory
 
CakePHP mistakes made 2015
CakePHP mistakes made 2015CakePHP mistakes made 2015
CakePHP mistakes made 2015
markstory
 
New in cakephp3
New in cakephp3New in cakephp3
New in cakephp3
markstory
 
PHP WTF
PHP WTFPHP WTF
PHP WTF
markstory
 
CakePHP 3.0 and beyond
CakePHP 3.0 and beyondCakePHP 3.0 and beyond
CakePHP 3.0 and beyond
markstory
 
CakePHP mistakes made confoo 2015
CakePHP mistakes made confoo 2015CakePHP mistakes made confoo 2015
CakePHP mistakes made confoo 2015
markstory
 
CakePHP mistakes made
CakePHP mistakes madeCakePHP mistakes made
CakePHP mistakes made
markstory
 
Performance and optimization CakeFest 2014
Performance and optimization CakeFest 2014Performance and optimization CakeFest 2014
Performance and optimization CakeFest 2014
markstory
 
Road to CakePHP 3.0
Road to CakePHP 3.0Road to CakePHP 3.0
Road to CakePHP 3.0
markstory
 
Performance and optimization
Performance and optimizationPerformance and optimization
Performance and optimization
markstory
 
OWASP Top 10 2013
OWASP Top 10 2013OWASP Top 10 2013
OWASP Top 10 2013
markstory
 
CakePHP the yum & yuck
CakePHP the yum & yuckCakePHP the yum & yuck
CakePHP the yum & yuck
markstory
 
Introduction to Twig
Introduction to TwigIntroduction to Twig
Introduction to Twig
markstory
 
Owasp top 10
Owasp top 10Owasp top 10
Owasp top 10
markstory
 
Making the most of 2.2
Making the most of 2.2Making the most of 2.2
Making the most of 2.2
markstory
 
Intro to continuous integration
Intro to continuous integration Intro to continuous integration
Intro to continuous integration
markstory
 
Evented applications with RabbitMQ and CakePHP
Evented applications with RabbitMQ and CakePHPEvented applications with RabbitMQ and CakePHP
Evented applications with RabbitMQ and CakePHP
markstory
 
Dependency injection in CakePHP
Dependency injection in CakePHPDependency injection in CakePHP
Dependency injection in CakePHP
markstory
 
Safer, More Helpful CakePHP
Safer, More Helpful CakePHPSafer, More Helpful CakePHP
Safer, More Helpful CakePHP
markstory
 
CakePHP - The Road Ahead
CakePHP - The Road AheadCakePHP - The Road Ahead
CakePHP - The Road Ahead
markstory
 
Future of HTTP in CakePHP
Future of HTTP in CakePHPFuture of HTTP in CakePHP
Future of HTTP in CakePHP
markstory
 
CakePHP mistakes made 2015
CakePHP mistakes made 2015CakePHP mistakes made 2015
CakePHP mistakes made 2015
markstory
 
New in cakephp3
New in cakephp3New in cakephp3
New in cakephp3
markstory
 
CakePHP 3.0 and beyond
CakePHP 3.0 and beyondCakePHP 3.0 and beyond
CakePHP 3.0 and beyond
markstory
 
CakePHP mistakes made confoo 2015
CakePHP mistakes made confoo 2015CakePHP mistakes made confoo 2015
CakePHP mistakes made confoo 2015
markstory
 
CakePHP mistakes made
CakePHP mistakes madeCakePHP mistakes made
CakePHP mistakes made
markstory
 
Performance and optimization CakeFest 2014
Performance and optimization CakeFest 2014Performance and optimization CakeFest 2014
Performance and optimization CakeFest 2014
markstory
 
Road to CakePHP 3.0
Road to CakePHP 3.0Road to CakePHP 3.0
Road to CakePHP 3.0
markstory
 
Performance and optimization
Performance and optimizationPerformance and optimization
Performance and optimization
markstory
 
OWASP Top 10 2013
OWASP Top 10 2013OWASP Top 10 2013
OWASP Top 10 2013
markstory
 
CakePHP the yum & yuck
CakePHP the yum & yuckCakePHP the yum & yuck
CakePHP the yum & yuck
markstory
 
Introduction to Twig
Introduction to TwigIntroduction to Twig
Introduction to Twig
markstory
 
Owasp top 10
Owasp top 10Owasp top 10
Owasp top 10
markstory
 
Making the most of 2.2
Making the most of 2.2Making the most of 2.2
Making the most of 2.2
markstory
 
Intro to continuous integration
Intro to continuous integration Intro to continuous integration
Intro to continuous integration
markstory
 
Evented applications with RabbitMQ and CakePHP
Evented applications with RabbitMQ and CakePHPEvented applications with RabbitMQ and CakePHP
Evented applications with RabbitMQ and CakePHP
markstory
 
Ad

Recently uploaded (20)

Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Quantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur MorganQuantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Quantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur MorganQuantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 

Simple search with elastic search

  • 1. SIMPLE SEARCH WITH ELASTIC SEARCH MARK STORY @MARK_STORY
  • 2. WAT? Java based Lucene powered JSON driven Document orientated database All out super search solution Easy to setup, and use
  • 3. INDEXES AND TYPES INDEXES Similar concept to databases. Contain multiple types.
  • 4. TYPES Similar concept to tables. Defines datatypes and indexing rules.
  • 5. DOCUMENT BASED REST API Simple to use and easy to understand.
  • 6. CREATE A DOCUMENT cr -PS lclot90/otcspol - ' ul XOT oahs:20cnat/epe d { "ae:"akSoy, nm" Mr tr" "mi" "akmr-tr.o" eal: mr@aksoycm, "wte" "mr_tr" titr: @aksoy, "onr" "aaa, cuty: Cnd" "as:[ckpp,"aeet,"aaa] tg" "aeh" ckfs" cnd" }' #Rsos: epne {o"tu, "k:re "idx:cnat" _ne""otcs, "tp""epe, _ye:pol" "i""iMaiBDAWs5g, _d:9zCSQq1J8i7" "vrin:} _eso"1
  • 7. READ IT BACK cr -GTlclot90/otcspol/i?rtytu ul XE oahs:20cnat/epe$dpet=re #Rsos: epne {_ne""otcs, "idx:cnat" "tp""epe, _ye:pol" "i""iMaiBDAWs5g, _d:9zCSQq1J8i7" "vrin:, _eso"1 "xss:re eit"tu, "suc":{ _ore "ae:"akSoy, nm" Mr tr" "mi" "akmr-tr.o" eal: mr@aksoycm, "wte" "mr_tr" titr: @aksoy, "onr" "aaa, cuty: Cnd" "as:[ckpp,"aeet,"aaa] tg" "aeh" ckfs" cnd" }}
  • 8. DELETE IT! cr -DLT lclot90/otcspol/i ul XEEE oahs:20cnat/epe$d #Rsos: epne {o"tu, "k:re "on"tu, fud:re "idx:cnat" _ne""otcs, "tp""epe, _ye:pol" "i""iMaiBDAWs5g, _d:9zCSQq1J8i7" "vrin:} _eso"2
  • 9. SIMPLE SEARCH! More on search to come cr -GTlclot90/otcspol/sac?=akpet=re ul XE oahs:20cnat/epe_erhqMr&rtytu
  • 10. #Rsos: epne {to"1, "ok:4 "ie_u"fle tmdot:as, "sad"{ _hrs: "oa"5 ttl:, "ucsfl:, scesu"5 "ald: fie"0 }, "is: ht"{ "oa"1 ttl:, "a_cr"01746, mxsoe:.1424 "is: ht"[ {_ne""otcs, "idx:cnat" "tp""epe, _ye:pol" "i""llMTWqMZUlw, _d:sJyBSaAfU-D" "soe:.1424 _cr"01746, "suc":{ _ore "ae:"akSoy, nm" Mr tr" "mi" "akmr-tr.o" eal: mr@aksoycm, "wte" "mr_tr" titr: @aksoy, "onr" "aaa, cuty: Cnd" "as:[ckpp,"aeet,"aaa] tg" "aeh" ckfs" cnd" } } ] }}
  • 11. THIS ALL SOUNDS TOO BADASS TO BE TRUE
  • 12. DOCUMENT "DATABASE" IS A BIT LIMITED Partial updates are doable but painful No joins No map reduce Cannot replace all other datasources
  • 13. BUT SEARCH IS AMAZZZING
  • 14. SEARCH BETWEEN TYPES & INDEXES Search multiple types cr -GTlclot90/otcspol,opne/sac?=aeMr ul XE oahs:20cnat/epecmais_erhqnm:ak Search multiple indexes in your cluster cr -GTlclot90/alpol/sac?=aeMr ul XE oahs:20_l/epe_erhqnm:ak
  • 16. SEARCH WITH TEXT EXPRESSIONS cr -GTlclot90/otcspol/sac?rtytu - ' ul XE oahs:20cnat/epe_erhpet=re d { "ur" { qey: "ur_tig:{ qeysrn" "ur" "akO wlo" qey: mr R edn } } }'
  • 17. HIGHLIGHT SEARCH KEYWORDS Wrap search terms in highlighting text/markup/html. Great for larger documents, as you can extract fragments.
  • 18. cr -GTlclot90/otcspol/sac?rtytu - ' ul XE oahs:20cnat/epe_erhpet=re d { "ur" { qey: "et:{ tx" "mi" "ak eal: mr" } }, "ihih" { hglgt: "ils:{ fed" "mi" {, eal: } "ae:{ nm" } } } }'
  • 19. FACETS Facets provide aggregated data about a query. You can use this data to create drill down search, or histogram data. Term counts. Custom script values. Ranges - like price ranges. Geo distance facets - aggregate results by distance.
  • 20. cr -GTlclot90/otcspol/sac?rtytu - ' ul XE oahs:20cnat/epe_erhpet=re d { "ur" { qey: "ur_tig:{ qeysrn" "ur" ".o" qey: *cm } }, "aes:{ fct" "agd:{trs:{fed:"as}} tge" "em" "il" tg" } }'
  • 22. MAPPINGS Allows fine-grained searching later on, and lets you configure custom mappings. Control the data types, and indexing used for JSON document types. Disable indexing on specific fields. Configure custom analyzers. For example, non-english stemming.
  • 23. AVAILABLE MAPPING TYPES string, integer, float, boolean, null object - Standard type for nested objects. Allows Arrays are automatically handled as the above. properties to be defined.
  • 24. multi_field - Allows a field to be handled multiple ways with different aliases. nested - Indexes sub objects, and works with nested filter/queries. ip - For ipv4 data. geo_point - For lat/lon values. Enables piles of search options. attachment - Store a blob. Can index many text based documents like PDF.
  • 25. CREATE A MAPPING cr -PTlclot90/otcspol/mpig- ' ul XU oahs:20cnat/epe_apn d { "epe:{ pol" "rpris:{ poete" "ae:{tp" "tig} nm" "ye: srn", "mi" {tp" "tig} eal: "ye: srn", "wte" {tp" "tig} titr: "ye: srn", "onr" {tp" "tig} cuty: "ye: srn", "as:{tp" "tig} tg" "ye: srn" } } }'
  • 26. DEFINE THE ANALYZER USED When defining a field you can use a a y e i d x a a y e , nlzr ne_nlzr and s a c _ n l z r customize the way data is stored, and or e r h a a y e to searched. You can also disable analyzing for specific fields.
  • 27. DISABLE INDEXING { "ae:{ nm" "ye:"tig, tp" srn" "ne" "o_nlzd, idx: ntaaye" }, "oe:{ nn" "ye:"nee" tp" itgr, "ne" "o idx: n" } }
  • 28. SHARDS & REPLICAS SHARDS Define how many nodes you want to split your data across. If a node goes down, you still have some of your data. You can use routing to control how data is sharded. More shards improves indexing performance, as work is distributed.
  • 31. REPLICAS Define how many copies of your data you want. If several nodes go down, you might still have all your data. More replicas improves search performance and cluster availability.
  • 33. MULTI-TENANCY Multi-tenancy is a reasonably common requirement, and there are a few ways to do it.
  • 34. ONE INDEX PER 'TENANT' Great for small number of tenants. Painful for larger number of tenants. As sharding and replicas can be harder to manage.
  • 35. cr -GTlclot90/akcnat/sac?rtytu - ' ul XE oahs:20mr/otcs_erhpet=re d { "ur" { qey: "ur_tig:{ qeysrn" "ur" "ednO js" qey: wlo R oe } } }'
  • 36. SPECIAL FILTER CONDITIONS More error prone as you have to include a filter condition. Easy to shard and setup replicas. Easily scales to many tenants. As shards/replicas are shared. Make sure tenant id is a non-analyzed value.
  • 37. cr -GTlclot90/conigivie/sac?rtytu - ' ul XE oahs:20acutn/nocs_erhpet=re d { "ur" { qey: "itrd:{ flee" "itr:{ fle" "em:{acutd:1 tr" "coni" } }, "ur" { qey: "ur_tig:{ qeysrn" "ur" "upewf" qey: prl ii } } } } }'
  • 38. OTHER BATTERIES INCLUDED Routing Define how documents are sharded. Rivers Pipe data in realtime from sources like RabbitMQ. Thrift Talk thirft to ElasticSearch.
  • 39. INTEGRATION WITH CAKEPHP
  • 40. HTTPSOCKET + JSON_ENCODE() Basic, can be hard to use. No magic.
  • 41. ELASTICSEARCH DATASOURCE (David Kullman) Behavior to auto index on aftersave Datasource for searching elasticsearch Console app to index models
  • 42. ELASTICSEARCH PLUGIN (Kevin von Zonneveld) Similar features to the previous plugin Offers more control on how data is indexed