• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
ElasticSearch, Elastica, ElasticaBundle
 

ElasticSearch, Elastica, ElasticaBundle

on

  • 5,010 views

Elastica and ElasticaBundle in Symfony2 architecture

Elastica and ElasticaBundle in Symfony2 architecture

Statistics

Views

Total Views
5,010
Views on SlideShare
5,005
Embed Views
5

Actions

Likes
9
Downloads
0
Comments
0

1 Embed 5

http://www.pearltrees.com 5

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    ElasticSearch, Elastica, ElasticaBundle ElasticSearch, Elastica, ElasticaBundle Presentation Transcript

    • ElasticaElasticaBundle Nicolas Badey CTO - Yoopies
    • ElasticSearch• Raised 10M$ in November 2012• First version in February 2010 after Compass was dropped• Competitors : - Solr - Sphynx
    • ElasticSearch• “Distributed, RESTful, Search Engine built on top of Apache Lucene”• Schema-less• JSON• Java (Netty/Spatial4j)• Easy to install : dpkg –i elasticsearch.deb• Usage : Alternative Data Storage or/and Search Index
    • Features• Boost (scoring)• Analyzers• GeoLocation• Facets• Highlighting• Scripting : MVEL/Java/Javascript /Groovy/Python• Percolator (Prospective Search)• Cache• Plugin (attachment type, Twitter River …)
    • Why ElasticSearch ?• Very fast• Document != Data Model• Doctrine Mapping/Listener• Advanced search functionalities
    • Searchcurl -XGET http://localhost:9200/[INDEX]/[TYPE]/_search -d ‘{ "query": { "query_string": { "query": "foobar" } }, "filter": { "numeric_range": { "price": { "lte": 42 } } }, "sort": { "created_at": { "order": "desc" } }}’
    • Elastica• v0.19.8.0 => PHP 5.2• v0.20.5.0.RC1 => PHP 5.3 / PSR 0-1-2
    • ElasticaBundle• Persistence automatic provider, Doctrine/Propel/MongoDB• Pagination, PagerFanta / KNPpaginator• Service : Client Index Type Finder• Persistence listener CallBack (only Doctrine)• Custom Doctrine query builder• Custom Provider• Custom Elastica To Model Transformer/Model To Elastica Transformer• Exercise / FOQElasticaBundle => FriendsOfSymfony/FOSElasticaBundle
    • Mapping
    • Mapping
    • Filter vs Query• Filter - cached - speed• Query - scoring
    • Cache• Filter (recommended)• Node• Index• Filter Cache is active by default for most of them• $filter->setCached(true);
    • ScriptFilter• Computed distance• Custom Scoring : “_score * doc[my_numeric_field].value / pow(param1, param2)”
    • Highlight• Implement HighlightableModelInterface for model
    • Facets• Terms, Range, Histogram, Filter, Query, Statistical, Terms Stats, GeoDistance …
    • Data Transformer• ElasticaToModel Transformer• ModelToElastica Transformer
    • _search _percolator FormA FormB Entity Search Search ModelA ModelB Model ToElastica ElasticaQuery Factory Document Percolator Query Percolator Elastica Finder TypeToModel Array (match) Response Entities Set
    • PercolatorRegisterMatch
    • Annexes• https://github.com/FriendsOfSymfony/FOSElasticaBundle• http://richardmiller.co.uk/• http://www.elasticsearch.org/• https://github.com/sonian/elasticsearch-jetty• http://www.elasticsearch.org/tutorials/javascript-web-applications-and- elasticsearch/• http://www.elasticsearch.org/tutorials/using-elasticsearch-for-logs/• http://blog.sematext.com/2012/08/23/solr-vs-elasticsearch-part-1- overview/