SlideShare a Scribd company logo
1 of 24
ElasticSearch on AWS
                      Real Estate portal Case Study (Spitogatos.gr)


                                                    AWSUG GR meetup #7
                                                      27 September 2012




                                                    Andreas Chatzakis
                                     co-founder / IT Director – Spitogatos.gr

Event sponsored by:                                       @achatzakis on twitter
http://geekandpoke.typepad.com/geekandpoke/2010/09/instant-search.html
#about_us
Helping you find a property

Finding a property in Greece is complex, lacks transparency.
We make life easier for househunters via:
  ξ€Œ   Powerful search functionality
       ξ€Œ   Web & Mobile
       ξ€Œ   Location & Criteria
  ξ€Œ   Quality content
       ξ€Œ   Listings (we love photos)
       ξ€Œ   Articles
  ξ€Œ   mySpitogatos
       ξ€Œ   Email alerts
       ξ€Œ   Save your search
       ξ€Œ   Favorite listings & notes
       ξ€Œ   Contact the realtors


                                                                          4
Realtors love us too!

Professionals need help in those turbulent times.
We add value in multiple ways:
  ξ€Œ   Cost effective promotion & high quality leads
       ξ€Œ   Targeted channel (very)
       ξ€Œ   Leads already filtered (we ve seen the fotos!)
  ξ€Œ   Technology services for realtors
       ξ€Œ   Turnkey web site solution
       ξ€Œ   Listing synchronization web service
  ξ€Œ   B2B via Spitogatos Network (SpiN) business
      network / collaboration tool for realtors
  ξ€Œ   Channel for foreign buyers via the English version




                                                                                    5
#background
To Search is to Find

Search is central to what we do
ξ€Œ   Users searching for property come with structured criteria of huge variety
     ξ€Œ   Athens Center, residential - flat or studio, for sale, 100-150k €, 85-120 sq meter,
         with a garage
     ξ€Œ   Athens Center & N.Kosmos, residential - flat, for sale, 75-100k €, 70-100 sq meter,
         2+ bedrooms, only show listings with photos
     ξ€Œ   Piraeus centre or Mikrolimano, commercial – store, for rent, 500-750 € per
         month, only listings with recently reduced price
     ξ€Œ   Monetize: # of Listings grouped by paying member + above criteria
     ξ€Œ   IPhone app β†’ Listings within geo-rectangle + above criteria
     ξ€Œ   As a result, caching is rarely our friend!
ξ€Œ   We used to think Lucene/Solr, ElasticSearch, CloudSearch etc were only useful
    for text search, not adding value for structured search




                                                                                           G
ξ€Œ   Have been insisting on trying to optimize MySQL (multi column indices etc)




                                                                                      N
    while throwing replicas to the problem.




                                                                                     O
                                                                                   R
                                                                                               7
Why ElasticSearch

Selected elasticSearch after a (very) brief research* on alternatives:
ξ€Œ   AWS's own Cloudsearch:
     ξ€Œ   Zero management service: nice!
     ξ€Œ   Not available on eu-west-1
     ξ€Œ   Currently lacks ES functionality (e.g. geospatial, non english analyzers)
ξ€Œ   Sphinx
     ξ€Œ   Easy MySQL integration
     ξ€Œ   How do you scale it?*
ξ€Œ   Solr
     ξ€Œ   Industry standard
     ξ€Œ   Seems like it is conceived as somehow harder to scale/operate*?
ξ€Œ   ElasticSearch:
     ξ€Œ   Piece of cake to setup on AWS (stay tuned!)
     ξ€Œ   Super distributed, scales & is easy on IT ops (more on that later!)
                                                      * Disclaimer: We did not go through a
                                                                                              8
                                                       detailed product selection process!
#elasticsearch
ElasticSearch basics

A distributed, RESTful Search engine built on top of Lucene
ξ€Œ   Free Schema
     ξ€Œ   JSON documents
     ξ€Œ   Analyzers
     ξ€Œ   Boost levels
ξ€Œ   Easy & flexible Search
     ξ€Œ   Lucene query string or JSON based search query DSL
     ξ€Œ   Facets & Highlighting
     ξ€Œ   Spatial search
     ξ€Œ   Custom scripts
ξ€Œ   Multi Tenancy
     ξ€Œ   Store & search across multiple indices
     ξ€Œ   Each with its own settings
     ξ€Œ   Use-case: Logs – recent in memory, old on disk

                                                                                 10
Scaling ElasticSearch

Designed from the ground up to be Scalable & Highly Available
ξ€Œ   Distributed
     ξ€Œ   Indices automatically broken into shards
     ξ€Œ   Replicas for read performance & availability
     ξ€Œ   Multiple cluster nodes, each hosting 1+ shards/replicas
     ξ€Œ   peer2peer, each node can delegate operations to other nodes
     ξ€Œ   Add,remove nodes at will
           ξ€Œ   Rebalancing & routing automagically behind the scenes
ξ€Œ   Discovery
     ξ€Œ   Multicast or unicast (declarative)
ξ€Œ   Gateway
     ξ€Œ   Allows recovery in case all nodes go down
     ξ€Œ   Local or shared storage
     ξ€Œ   Async replication in case of shared storage

                                                                                       11
A scale-up example

Assume a cluster with 4 shards and 1 replica configuration
ξ€Œ   1 node example – Status Yellow



ξ€Œ   2 nodes example – Status Green



ξ€Œ   3 nodes example




     : Primary shard              : Replica shard              : Master node               : Regular node

Master node maintains cluster state, acts if nodes join or leave the cluster by reassigning shards.         12
ElasticSearch on AWS

2 modules make deployment on AWS a breeze
ξ€Œ   EC2 discovery
     ξ€Œ   Filter by security group, AZ, tags
           ξ€Œ   Requires IAM user with certain EC2 privileges:
               DescribeAvailabilityZones, DescribeInstances, DescribeRegions,
               DescribeSecurityGroups, DescribeTags
     ξ€Œ  Very useful in autoscaling setups with ephemeral servers
ξ€Œ   S3 gateway
     ξ€Œ   Long term reliable async persistency of cluster state and indices
     ξ€Œ   Allows deployment without EBS volumes
     ξ€Œ   Still, local gateway with EBS volumes performs better (less network used,
         faster recovery)
     ξ€Œ   Won't protect from accidental deletion of index (deletion will propagate to
         shared storage)


                                                                                       13
#implementation
Indexation

Indexation of Spitogatos.gr ads
ξ€Œ   DB is still the β€œsource of truth”
     ξ€Œ   We propagate DELETEs synchronously, INSERTs & UPDATEs asynchronously
           ξ€Œ   KISS: Cron job (re) indexes never or least-recently indexed listings
           ξ€Œ   ORM marks new/modified listings as never-indexed (so they go first)
ξ€Œ   Location: Multivalue field instead of nested set model in the DB
     ξ€Œ   e.g. this property is in Greece, Attica, Piraeus, Port of Piraeus
     ξ€Œ   Property will be included in results when I search for any of the above.
ξ€Œ   Flat schema
     ξ€Œ   Searchable listing owner fields are included in the document (vs a JOIN in our DB)
     ξ€Œ   Changes to other tables might lead to large # of listings requiring reindexation
         (e.g. real estate agent becomes a paying member)




                                                                                               15
Index Integrity

Making sure our index is consistent with the DB
ξ€Œ   Scrutineer ( https://github.com/Aconex/scrutineer )
     ξ€Œ   Compares DB and ElasticSearch index for mismatches
          ξ€Œ   exists in ES but not on DB (or vice versa)
          ξ€Œ   ES version not up to date
     ξ€Œ   Relies on β€œ_version” field - is incremented via our ORM onChange
     ξ€Œ   When indexing we explicitly set versioning to β€œexternal”
     ξ€Œ   Had to β€œhack” it as it doesn't work with EC2 discovery module
          ξ€Œ http://labs.spitogatos.gr/?p=45




                                                                                  16
Search – Shards & Routing

How does ElasticSearch decide in which shard to store a doc?
ξ€Œ   By default this is done based on hash of document id
ξ€Œ   Can be ovverriden while indexing and while searching (routing parameter)
ξ€Œ   We shard based on hash of the id of area id
       - Most users search for listings within a specific area
       - We hit only a single shard for a large percentage of the searches.




           No routing                                                Routing by
           specificed                                                specific areaId

                                                                                         17
Search – Flat Schema, Facets & Scoring

We rely a lot on ElasticSearch's Flat Schema, Facets & Scoring
ξ€Œ   No joins due to flat schema => fast!
ξ€Œ   Multivalue fields => fast filtering for listings in areas of various hierarchy levels
ξ€Œ   Facets functionality returns list of paying agents with # listings matching criteria
ξ€Œ   Old slow ranking algorithm replaced by elasticSearch scoring functionality
     ξ€Œ   used to go through our DB and refresh score
          ξ€Œ   ad age is part of the equation
     ξ€Œ   Now ES computes this dynamically on every search
     ξ€Œ   We use custom scoring
     ξ€Œ   We can modify scoring algorithm and see changes instantly
          ξ€Œ   no need to recalculate scores for all listings




                                                                                            18
Monitoring

Sematext SPM offers a (currently free) ES monitoring solution
ξ€Œ   Cluster Health    ξ€Œ   Search rate & latency   ξ€Œ   Disk
ξ€Œ   Index Stats       ξ€Œ   Cache                   ξ€Œ   Network
ξ€Œ   Shard Stats       ξ€Œ   CPU & RAM               ξ€Œ   JVM & GC




                                                                          19
Tooling

ElasticSearch-Head is a GUI for browsing /interacting with a cluster




                                                                       20
Backups

 We take periodic copies from the Gateway
 ξ€Œ   Cause the Gateway is no cure for accidental deletions or bugs
 ξ€Œ   S3cmd syncs S3 gateway contents to local folder
      ξ€Œ   Expect some errors here as files get deleted/modified
 ξ€Œ   Disables snapshots to gateway
 ξ€Œ   Syncs again (no errors this time and much faster)
 ξ€Œ   Reenables snapshots to gateway
 ξ€Œ   Zips local folder contents, splits into smaller files & uploads to secondary S3 bucket




Get the script here: http://labs.spitogatos.gr/?p=17


                                                                                              21
Learnings

Issues & leasons learned:
ξ€Œ   Faceted search can return wrong (smaller) results (on multiple shards)
     ξ€Œ   Due to the way sorting/merging is done
     ξ€Œ   Increase facet size field depending on cardinallity of faceted field
ξ€Œ   We use Elastica – a PHP client for ElasticSearch - https://github.com/ruflin/Elastica
     ξ€Œ   Lacking Document Routing and Version Type support
     ξ€Œ   Our own Jerry Manolarakis on a pull request to add setRouting, setVersionType
ξ€Œ   Filters vs queries (Query DSL)
     ξ€Œ   Filters perform an order of magnitude better than plain queries since no scoring is
         performed and they are automatically cached.
ξ€Œ   Do it! Your DB will thank you




CPU Utilization                                  Response time pattern

                                                                                               22
Read more
    Useful resources:

ξ€Œ   https://speakerdeck.com/u/jmikola/p/symfony-live-london-elasticsearch
ξ€Œ   http://blog.sematext.com/2010/05/03/elastic-search-distributed-lucene/
ξ€Œ   http://www.slideshare.net/elasticsearch/elasticsearch-at-berlinbuzzwords-2010
ξ€Œ   http://www.slideshare.net/kucrafal/scaling-massive-elastic-search-clusters-rafa-ku-sematext


    Need help integrating ElasticSearch to your app?




    http://bacterials.net/


                                                     Follow us on twitter: @spitogatosLabs
                                                 Check out our blog: http://labs.spitogatos.gr

                                                                                             23
#questions

More Related Content

What's hot

Consolidate MySQL Shards Into Amazon Aurora Using AWS Database Migration Serv...
Consolidate MySQL Shards Into Amazon Aurora Using AWS Database Migration Serv...Consolidate MySQL Shards Into Amazon Aurora Using AWS Database Migration Serv...
Consolidate MySQL Shards Into Amazon Aurora Using AWS Database Migration Serv...Amazon Web Services
Β 
(BDT303) Running Spark and Presto on the Netflix Big Data Platform
(BDT303) Running Spark and Presto on the Netflix Big Data Platform(BDT303) Running Spark and Presto on the Netflix Big Data Platform
(BDT303) Running Spark and Presto on the Netflix Big Data PlatformAmazon Web Services
Β 
Introduction to Amazon Athena
Introduction to Amazon AthenaIntroduction to Amazon Athena
Introduction to Amazon AthenaAmazon Web Services
Β 
NEW LAUNCH! Intro to Amazon Athena. Easily analyze data in S3, using SQL.
NEW LAUNCH! Intro to Amazon Athena. Easily analyze data in S3, using SQL.NEW LAUNCH! Intro to Amazon Athena. Easily analyze data in S3, using SQL.
NEW LAUNCH! Intro to Amazon Athena. Easily analyze data in S3, using SQL.Amazon Web Services
Β 
Scaling Traffic from 0 to 139 Million Unique Visitors
Scaling Traffic from 0 to 139 Million Unique VisitorsScaling Traffic from 0 to 139 Million Unique Visitors
Scaling Traffic from 0 to 139 Million Unique VisitorsYelp Engineering
Β 
Optimizing Storage for Big Data/Analytics Workloads
Optimizing Storage for Big Data/Analytics WorkloadsOptimizing Storage for Big Data/Analytics Workloads
Optimizing Storage for Big Data/Analytics WorkloadsAmazon Web Services
Β 
BDT303 Data Science with Elastic MapReduce - AWS re: Invent 2012
BDT303 Data Science with Elastic MapReduce - AWS re: Invent 2012BDT303 Data Science with Elastic MapReduce - AWS re: Invent 2012
BDT303 Data Science with Elastic MapReduce - AWS re: Invent 2012Amazon Web Services
Β 
Compare DynamoDB vs. MongoDB
Compare DynamoDB vs. MongoDBCompare DynamoDB vs. MongoDB
Compare DynamoDB vs. MongoDBAmar Das
Β 
Running Fast, Interactive Queries on Petabyte Datasets using Presto - AWS Jul...
Running Fast, Interactive Queries on Petabyte Datasets using Presto - AWS Jul...Running Fast, Interactive Queries on Petabyte Datasets using Presto - AWS Jul...
Running Fast, Interactive Queries on Petabyte Datasets using Presto - AWS Jul...Amazon Web Services
Β 
Interactive Analytics on AWS - AWS Summit Tel Aviv 2017
Interactive Analytics on AWS - AWS Summit Tel Aviv 2017Interactive Analytics on AWS - AWS Summit Tel Aviv 2017
Interactive Analytics on AWS - AWS Summit Tel Aviv 2017Amazon Web Services
Β 
A Deeper Dive into Apache MXNet - March 2017 AWS Online Tech Talks
A Deeper Dive into Apache MXNet - March 2017 AWS Online Tech TalksA Deeper Dive into Apache MXNet - March 2017 AWS Online Tech Talks
A Deeper Dive into Apache MXNet - March 2017 AWS Online Tech TalksAmazon Web Services
Β 
AWS re:Invent 2016 Recap: What Happened, What It Means
AWS re:Invent 2016 Recap: What Happened, What It MeansAWS re:Invent 2016 Recap: What Happened, What It Means
AWS re:Invent 2016 Recap: What Happened, What It MeansRightScale
Β 
Beyond EC2 and S3
Beyond EC2 and S3Beyond EC2 and S3
Beyond EC2 and S3Lorenzo Aiello
Β 
Fast Data at Scale - AWS Summit Tel Aviv 2017
Fast Data at Scale - AWS Summit Tel Aviv 2017Fast Data at Scale - AWS Summit Tel Aviv 2017
Fast Data at Scale - AWS Summit Tel Aviv 2017Amazon Web Services
Β 
AWS re:Invent 2016: Case Study: Librato's Experience Running Cassandra Using ...
AWS re:Invent 2016: Case Study: Librato's Experience Running Cassandra Using ...AWS re:Invent 2016: Case Study: Librato's Experience Running Cassandra Using ...
AWS re:Invent 2016: Case Study: Librato's Experience Running Cassandra Using ...Amazon Web Services
Β 
Amazon EMR Facebook Presto Meetup
Amazon EMR Facebook Presto MeetupAmazon EMR Facebook Presto Meetup
Amazon EMR Facebook Presto Meetupstevemcpherson
Β 
Strategic Uses for Cost Efficient Long-Term Cloud Storage
Strategic Uses for Cost Efficient Long-Term Cloud StorageStrategic Uses for Cost Efficient Long-Term Cloud Storage
Strategic Uses for Cost Efficient Long-Term Cloud StorageAmazon Web Services
Β 
Cloud Storage in Azure, AWS and Google Cloud
Cloud  Storage in Azure, AWS and Google CloudCloud  Storage in Azure, AWS and Google Cloud
Cloud Storage in Azure, AWS and Google CloudThurupathan Vijayakumar
Β 
BDA305 NEW LAUNCH! Intro to Amazon Redshift Spectrum: Now query exabytes of d...
BDA305 NEW LAUNCH! Intro to Amazon Redshift Spectrum: Now query exabytes of d...BDA305 NEW LAUNCH! Intro to Amazon Redshift Spectrum: Now query exabytes of d...
BDA305 NEW LAUNCH! Intro to Amazon Redshift Spectrum: Now query exabytes of d...Amazon Web Services
Β 

What's hot (20)

Consolidate MySQL Shards Into Amazon Aurora Using AWS Database Migration Serv...
Consolidate MySQL Shards Into Amazon Aurora Using AWS Database Migration Serv...Consolidate MySQL Shards Into Amazon Aurora Using AWS Database Migration Serv...
Consolidate MySQL Shards Into Amazon Aurora Using AWS Database Migration Serv...
Β 
(BDT303) Running Spark and Presto on the Netflix Big Data Platform
(BDT303) Running Spark and Presto on the Netflix Big Data Platform(BDT303) Running Spark and Presto on the Netflix Big Data Platform
(BDT303) Running Spark and Presto on the Netflix Big Data Platform
Β 
Introduction to Amazon Athena
Introduction to Amazon AthenaIntroduction to Amazon Athena
Introduction to Amazon Athena
Β 
NEW LAUNCH! Intro to Amazon Athena. Easily analyze data in S3, using SQL.
NEW LAUNCH! Intro to Amazon Athena. Easily analyze data in S3, using SQL.NEW LAUNCH! Intro to Amazon Athena. Easily analyze data in S3, using SQL.
NEW LAUNCH! Intro to Amazon Athena. Easily analyze data in S3, using SQL.
Β 
Scaling Traffic from 0 to 139 Million Unique Visitors
Scaling Traffic from 0 to 139 Million Unique VisitorsScaling Traffic from 0 to 139 Million Unique Visitors
Scaling Traffic from 0 to 139 Million Unique Visitors
Β 
Aws Kinesis
Aws KinesisAws Kinesis
Aws Kinesis
Β 
Optimizing Storage for Big Data/Analytics Workloads
Optimizing Storage for Big Data/Analytics WorkloadsOptimizing Storage for Big Data/Analytics Workloads
Optimizing Storage for Big Data/Analytics Workloads
Β 
BDT303 Data Science with Elastic MapReduce - AWS re: Invent 2012
BDT303 Data Science with Elastic MapReduce - AWS re: Invent 2012BDT303 Data Science with Elastic MapReduce - AWS re: Invent 2012
BDT303 Data Science with Elastic MapReduce - AWS re: Invent 2012
Β 
Compare DynamoDB vs. MongoDB
Compare DynamoDB vs. MongoDBCompare DynamoDB vs. MongoDB
Compare DynamoDB vs. MongoDB
Β 
Running Fast, Interactive Queries on Petabyte Datasets using Presto - AWS Jul...
Running Fast, Interactive Queries on Petabyte Datasets using Presto - AWS Jul...Running Fast, Interactive Queries on Petabyte Datasets using Presto - AWS Jul...
Running Fast, Interactive Queries on Petabyte Datasets using Presto - AWS Jul...
Β 
Interactive Analytics on AWS - AWS Summit Tel Aviv 2017
Interactive Analytics on AWS - AWS Summit Tel Aviv 2017Interactive Analytics on AWS - AWS Summit Tel Aviv 2017
Interactive Analytics on AWS - AWS Summit Tel Aviv 2017
Β 
A Deeper Dive into Apache MXNet - March 2017 AWS Online Tech Talks
A Deeper Dive into Apache MXNet - March 2017 AWS Online Tech TalksA Deeper Dive into Apache MXNet - March 2017 AWS Online Tech Talks
A Deeper Dive into Apache MXNet - March 2017 AWS Online Tech Talks
Β 
AWS re:Invent 2016 Recap: What Happened, What It Means
AWS re:Invent 2016 Recap: What Happened, What It MeansAWS re:Invent 2016 Recap: What Happened, What It Means
AWS re:Invent 2016 Recap: What Happened, What It Means
Β 
Beyond EC2 and S3
Beyond EC2 and S3Beyond EC2 and S3
Beyond EC2 and S3
Β 
Fast Data at Scale - AWS Summit Tel Aviv 2017
Fast Data at Scale - AWS Summit Tel Aviv 2017Fast Data at Scale - AWS Summit Tel Aviv 2017
Fast Data at Scale - AWS Summit Tel Aviv 2017
Β 
AWS re:Invent 2016: Case Study: Librato's Experience Running Cassandra Using ...
AWS re:Invent 2016: Case Study: Librato's Experience Running Cassandra Using ...AWS re:Invent 2016: Case Study: Librato's Experience Running Cassandra Using ...
AWS re:Invent 2016: Case Study: Librato's Experience Running Cassandra Using ...
Β 
Amazon EMR Facebook Presto Meetup
Amazon EMR Facebook Presto MeetupAmazon EMR Facebook Presto Meetup
Amazon EMR Facebook Presto Meetup
Β 
Strategic Uses for Cost Efficient Long-Term Cloud Storage
Strategic Uses for Cost Efficient Long-Term Cloud StorageStrategic Uses for Cost Efficient Long-Term Cloud Storage
Strategic Uses for Cost Efficient Long-Term Cloud Storage
Β 
Cloud Storage in Azure, AWS and Google Cloud
Cloud  Storage in Azure, AWS and Google CloudCloud  Storage in Azure, AWS and Google Cloud
Cloud Storage in Azure, AWS and Google Cloud
Β 
BDA305 NEW LAUNCH! Intro to Amazon Redshift Spectrum: Now query exabytes of d...
BDA305 NEW LAUNCH! Intro to Amazon Redshift Spectrum: Now query exabytes of d...BDA305 NEW LAUNCH! Intro to Amazon Redshift Spectrum: Now query exabytes of d...
BDA305 NEW LAUNCH! Intro to Amazon Redshift Spectrum: Now query exabytes of d...
Β 

Viewers also liked

DynamoDB for PHP sessions
DynamoDB for PHP sessionsDynamoDB for PHP sessions
DynamoDB for PHP sessionsAndreas Chatzakis
Β 
Ansible pill09wp
Ansible pill09wpAnsible pill09wp
Ansible pill09wpIdeato
Β 
Key considerations when adopting cloud: expectations vs hurdles
Key considerations when adopting cloud: expectations vs hurdlesKey considerations when adopting cloud: expectations vs hurdles
Key considerations when adopting cloud: expectations vs hurdlesScalr
Β 
Scalr cost analytics talk
Scalr cost analytics talkScalr cost analytics talk
Scalr cost analytics talkScalr
Β 
Perl and Elasticsearch
Perl and ElasticsearchPerl and Elasticsearch
Perl and ElasticsearchDean Hamstead
Β 
CCCEU14 - A Real World Outlook on Hybrid Cloud: Why and How
CCCEU14 - A Real World Outlook on Hybrid Cloud: Why and HowCCCEU14 - A Real World Outlook on Hybrid Cloud: Why and How
CCCEU14 - A Real World Outlook on Hybrid Cloud: Why and HowScalr
Β 
03. ElasticSearch : Data In, Data Out
03. ElasticSearch : Data In, Data Out03. ElasticSearch : Data In, Data Out
03. ElasticSearch : Data In, Data OutOpenThink Labs
Β 
Selling Umbraco - CodeGarden 2015
Selling Umbraco - CodeGarden 2015Selling Umbraco - CodeGarden 2015
Selling Umbraco - CodeGarden 2015Theo Paraskevopoulos
Β 
Personalize Expedia Hotel Searches
Personalize Expedia Hotel SearchesPersonalize Expedia Hotel Searches
Personalize Expedia Hotel Searcheslethalamby
Β 
Scalr - Open Source Cloud Management
Scalr - Open Source Cloud Management Scalr - Open Source Cloud Management
Scalr - Open Source Cloud Management Arvind Palanisamy
Β 
Elasticsearch 101 - Cluster setup and tuning
Elasticsearch 101 - Cluster setup and tuningElasticsearch 101 - Cluster setup and tuning
Elasticsearch 101 - Cluster setup and tuningPetar Djekic
Β 
Sharding with MongoDB (Eliot Horowitz)
Sharding with MongoDB (Eliot Horowitz)Sharding with MongoDB (Eliot Horowitz)
Sharding with MongoDB (Eliot Horowitz)MongoSF
Β 
Apache Flink - Overview and Use cases of a Distributed Dataflow System (at pr...
Apache Flink - Overview and Use cases of a Distributed Dataflow System (at pr...Apache Flink - Overview and Use cases of a Distributed Dataflow System (at pr...
Apache Flink - Overview and Use cases of a Distributed Dataflow System (at pr...Stephan Ewen
Β 
Case Study: Elasticsearch Ingest Using StreamSets @ Cisco Intercloud
Case Study: Elasticsearch Ingest Using StreamSets @ Cisco IntercloudCase Study: Elasticsearch Ingest Using StreamSets @ Cisco Intercloud
Case Study: Elasticsearch Ingest Using StreamSets @ Cisco IntercloudStreamsets Inc.
Β 
Machine Learning Travel Industry
Machine Learning   Travel IndustryMachine Learning   Travel Industry
Machine Learning Travel IndustryVijay PG
Β 
Tuning Elasticsearch Indexing Pipeline for Logs
Tuning Elasticsearch Indexing Pipeline for LogsTuning Elasticsearch Indexing Pipeline for Logs
Tuning Elasticsearch Indexing Pipeline for LogsSematext Group, Inc.
Β 
AWS Partner Presentation - PetaByte Scale Computing on Amazon EC2 with BigDat...
AWS Partner Presentation - PetaByte Scale Computing on Amazon EC2 with BigDat...AWS Partner Presentation - PetaByte Scale Computing on Amazon EC2 with BigDat...
AWS Partner Presentation - PetaByte Scale Computing on Amazon EC2 with BigDat...Amazon Web Services
Β 
Logging with Elasticsearch, Logstash & Kibana
Logging with Elasticsearch, Logstash & KibanaLogging with Elasticsearch, Logstash & Kibana
Logging with Elasticsearch, Logstash & KibanaAmazee Labs
Β 

Viewers also liked (20)

DynamoDB for PHP sessions
DynamoDB for PHP sessionsDynamoDB for PHP sessions
DynamoDB for PHP sessions
Β 
Scalr Demo
Scalr DemoScalr Demo
Scalr Demo
Β 
Ansible pill09wp
Ansible pill09wpAnsible pill09wp
Ansible pill09wp
Β 
Key considerations when adopting cloud: expectations vs hurdles
Key considerations when adopting cloud: expectations vs hurdlesKey considerations when adopting cloud: expectations vs hurdles
Key considerations when adopting cloud: expectations vs hurdles
Β 
Scalr cost analytics talk
Scalr cost analytics talkScalr cost analytics talk
Scalr cost analytics talk
Β 
Perl and Elasticsearch
Perl and ElasticsearchPerl and Elasticsearch
Perl and Elasticsearch
Β 
CCCEU14 - A Real World Outlook on Hybrid Cloud: Why and How
CCCEU14 - A Real World Outlook on Hybrid Cloud: Why and HowCCCEU14 - A Real World Outlook on Hybrid Cloud: Why and How
CCCEU14 - A Real World Outlook on Hybrid Cloud: Why and How
Β 
03. ElasticSearch : Data In, Data Out
03. ElasticSearch : Data In, Data Out03. ElasticSearch : Data In, Data Out
03. ElasticSearch : Data In, Data Out
Β 
Selling Umbraco - CodeGarden 2015
Selling Umbraco - CodeGarden 2015Selling Umbraco - CodeGarden 2015
Selling Umbraco - CodeGarden 2015
Β 
Personalize Expedia Hotel Searches
Personalize Expedia Hotel SearchesPersonalize Expedia Hotel Searches
Personalize Expedia Hotel Searches
Β 
Scalr - Open Source Cloud Management
Scalr - Open Source Cloud Management Scalr - Open Source Cloud Management
Scalr - Open Source Cloud Management
Β 
Elasticsearch 101 - Cluster setup and tuning
Elasticsearch 101 - Cluster setup and tuningElasticsearch 101 - Cluster setup and tuning
Elasticsearch 101 - Cluster setup and tuning
Β 
Sharding with MongoDB (Eliot Horowitz)
Sharding with MongoDB (Eliot Horowitz)Sharding with MongoDB (Eliot Horowitz)
Sharding with MongoDB (Eliot Horowitz)
Β 
Apache Flink - Overview and Use cases of a Distributed Dataflow System (at pr...
Apache Flink - Overview and Use cases of a Distributed Dataflow System (at pr...Apache Flink - Overview and Use cases of a Distributed Dataflow System (at pr...
Apache Flink - Overview and Use cases of a Distributed Dataflow System (at pr...
Β 
Case Study: Elasticsearch Ingest Using StreamSets @ Cisco Intercloud
Case Study: Elasticsearch Ingest Using StreamSets @ Cisco IntercloudCase Study: Elasticsearch Ingest Using StreamSets @ Cisco Intercloud
Case Study: Elasticsearch Ingest Using StreamSets @ Cisco Intercloud
Β 
Machine Learning Travel Industry
Machine Learning   Travel IndustryMachine Learning   Travel Industry
Machine Learning Travel Industry
Β 
Selling umbraco
Selling umbracoSelling umbraco
Selling umbraco
Β 
Tuning Elasticsearch Indexing Pipeline for Logs
Tuning Elasticsearch Indexing Pipeline for LogsTuning Elasticsearch Indexing Pipeline for Logs
Tuning Elasticsearch Indexing Pipeline for Logs
Β 
AWS Partner Presentation - PetaByte Scale Computing on Amazon EC2 with BigDat...
AWS Partner Presentation - PetaByte Scale Computing on Amazon EC2 with BigDat...AWS Partner Presentation - PetaByte Scale Computing on Amazon EC2 with BigDat...
AWS Partner Presentation - PetaByte Scale Computing on Amazon EC2 with BigDat...
Β 
Logging with Elasticsearch, Logstash & Kibana
Logging with Elasticsearch, Logstash & KibanaLogging with Elasticsearch, Logstash & Kibana
Logging with Elasticsearch, Logstash & Kibana
Β 

Similar to ElasticSearch on AWS - Real Estate portal case study (Spitogatos.gr)

ElasticSearch in Production: lessons learned
ElasticSearch in Production: lessons learnedElasticSearch in Production: lessons learned
ElasticSearch in Production: lessons learnedBeyondTrees
Β 
Zenko @Cloud Native Foundation London Meetup March 6th 2018
Zenko @Cloud Native Foundation London Meetup March 6th 2018Zenko @Cloud Native Foundation London Meetup March 6th 2018
Zenko @Cloud Native Foundation London Meetup March 6th 2018Laure Vergeron
Β 
AWS case study: real estate portal
AWS case study: real estate portalAWS case study: real estate portal
AWS case study: real estate portalAndreas Chatzakis
Β 
Keynote: Your Future With Cloud Computing - Dr. Werner Vogels - AWS Summit 2...
Keynote: Your Future With Cloud Computing - Dr. Werner Vogels  - AWS Summit 2...Keynote: Your Future With Cloud Computing - Dr. Werner Vogels  - AWS Summit 2...
Keynote: Your Future With Cloud Computing - Dr. Werner Vogels - AWS Summit 2...Amazon Web Services
Β 
Kubernetes in 15 minutes
Kubernetes in 15 minutesKubernetes in 15 minutes
Kubernetes in 15 minutesrhirschfeld
Β 
SQL for Elasticsearch
SQL for ElasticsearchSQL for Elasticsearch
SQL for ElasticsearchJodok Batlogg
Β 
Zenko & MetalK8s @ Dublin Docker Meetup, June 2018
Zenko & MetalK8s @ Dublin Docker Meetup, June 2018Zenko & MetalK8s @ Dublin Docker Meetup, June 2018
Zenko & MetalK8s @ Dublin Docker Meetup, June 2018Laure Vergeron
Β 
BDA402 Deep Dive: Log Analytics with Amazon Elasticsearch Service
BDA402 Deep Dive: Log Analytics with Amazon Elasticsearch ServiceBDA402 Deep Dive: Log Analytics with Amazon Elasticsearch Service
BDA402 Deep Dive: Log Analytics with Amazon Elasticsearch ServiceAmazon Web Services
Β 
Using Data Lakes: Data Analytics Week SF
Using Data Lakes: Data Analytics Week SFUsing Data Lakes: Data Analytics Week SF
Using Data Lakes: Data Analytics Week SFAmazon Web Services
Β 
Scaling the Content Repository with Elasticsearch
Scaling the Content Repository with ElasticsearchScaling the Content Repository with Elasticsearch
Scaling the Content Repository with ElasticsearchNuxeo
Β 
Clouds in Your Coffee Session with Cleversafe & Avere
Clouds in Your Coffee Session with Cleversafe & AvereClouds in Your Coffee Session with Cleversafe & Avere
Clouds in Your Coffee Session with Cleversafe & AvereAvere Systems
Β 
20141021 AWS Cloud Taekwon - Startup Best Practices on AWS
20141021 AWS Cloud Taekwon - Startup Best Practices on AWS20141021 AWS Cloud Taekwon - Startup Best Practices on AWS
20141021 AWS Cloud Taekwon - Startup Best Practices on AWSAmazon Web Services Korea
Β 
Elastic search apache_solr
Elastic search apache_solrElastic search apache_solr
Elastic search apache_solrmacrochen
Β 
Zenko: Enabling Data Control in a Multi-cloud World
Zenko: Enabling Data Control in a Multi-cloud WorldZenko: Enabling Data Control in a Multi-cloud World
Zenko: Enabling Data Control in a Multi-cloud WorldScality
Β 
ElasticSearch: Distributed Multitenant NoSQL Datastore and Search Engine
ElasticSearch: Distributed Multitenant NoSQL Datastore and Search EngineElasticSearch: Distributed Multitenant NoSQL Datastore and Search Engine
ElasticSearch: Distributed Multitenant NoSQL Datastore and Search EngineDaniel N
Β 
Building a Resilient, Scalable, Storage System with OpenStack
Building a Resilient, Scalable, Storage System with OpenStackBuilding a Resilient, Scalable, Storage System with OpenStack
Building a Resilient, Scalable, Storage System with OpenStackCloudian
Β 
OpenStack Architected Like AWS (and GCP)
OpenStack Architected Like AWS (and GCP)OpenStack Architected Like AWS (and GCP)
OpenStack Architected Like AWS (and GCP)Randy Bias
Β 

Similar to ElasticSearch on AWS - Real Estate portal case study (Spitogatos.gr) (20)

ElasticSearch in Production: lessons learned
ElasticSearch in Production: lessons learnedElasticSearch in Production: lessons learned
ElasticSearch in Production: lessons learned
Β 
Zenko @Cloud Native Foundation London Meetup March 6th 2018
Zenko @Cloud Native Foundation London Meetup March 6th 2018Zenko @Cloud Native Foundation London Meetup March 6th 2018
Zenko @Cloud Native Foundation London Meetup March 6th 2018
Β 
The Power of Elasticsearch
The Power of ElasticsearchThe Power of Elasticsearch
The Power of Elasticsearch
Β 
AWS case study: real estate portal
AWS case study: real estate portalAWS case study: real estate portal
AWS case study: real estate portal
Β 
Keynote: Your Future With Cloud Computing - Dr. Werner Vogels - AWS Summit 2...
Keynote: Your Future With Cloud Computing - Dr. Werner Vogels  - AWS Summit 2...Keynote: Your Future With Cloud Computing - Dr. Werner Vogels  - AWS Summit 2...
Keynote: Your Future With Cloud Computing - Dr. Werner Vogels - AWS Summit 2...
Β 
Kubernetes in 15 minutes
Kubernetes in 15 minutesKubernetes in 15 minutes
Kubernetes in 15 minutes
Β 
SQL for Elasticsearch
SQL for ElasticsearchSQL for Elasticsearch
SQL for Elasticsearch
Β 
Using Data Lakes
Using Data Lakes Using Data Lakes
Using Data Lakes
Β 
Zenko & MetalK8s @ Dublin Docker Meetup, June 2018
Zenko & MetalK8s @ Dublin Docker Meetup, June 2018Zenko & MetalK8s @ Dublin Docker Meetup, June 2018
Zenko & MetalK8s @ Dublin Docker Meetup, June 2018
Β 
BDA402 Deep Dive: Log Analytics with Amazon Elasticsearch Service
BDA402 Deep Dive: Log Analytics with Amazon Elasticsearch ServiceBDA402 Deep Dive: Log Analytics with Amazon Elasticsearch Service
BDA402 Deep Dive: Log Analytics with Amazon Elasticsearch Service
Β 
Introduction to AWS tools
Introduction to AWS toolsIntroduction to AWS tools
Introduction to AWS tools
Β 
Using Data Lakes: Data Analytics Week SF
Using Data Lakes: Data Analytics Week SFUsing Data Lakes: Data Analytics Week SF
Using Data Lakes: Data Analytics Week SF
Β 
Scaling the Content Repository with Elasticsearch
Scaling the Content Repository with ElasticsearchScaling the Content Repository with Elasticsearch
Scaling the Content Repository with Elasticsearch
Β 
Clouds in Your Coffee Session with Cleversafe & Avere
Clouds in Your Coffee Session with Cleversafe & AvereClouds in Your Coffee Session with Cleversafe & Avere
Clouds in Your Coffee Session with Cleversafe & Avere
Β 
20141021 AWS Cloud Taekwon - Startup Best Practices on AWS
20141021 AWS Cloud Taekwon - Startup Best Practices on AWS20141021 AWS Cloud Taekwon - Startup Best Practices on AWS
20141021 AWS Cloud Taekwon - Startup Best Practices on AWS
Β 
Elastic search apache_solr
Elastic search apache_solrElastic search apache_solr
Elastic search apache_solr
Β 
Zenko: Enabling Data Control in a Multi-cloud World
Zenko: Enabling Data Control in a Multi-cloud WorldZenko: Enabling Data Control in a Multi-cloud World
Zenko: Enabling Data Control in a Multi-cloud World
Β 
ElasticSearch: Distributed Multitenant NoSQL Datastore and Search Engine
ElasticSearch: Distributed Multitenant NoSQL Datastore and Search EngineElasticSearch: Distributed Multitenant NoSQL Datastore and Search Engine
ElasticSearch: Distributed Multitenant NoSQL Datastore and Search Engine
Β 
Building a Resilient, Scalable, Storage System with OpenStack
Building a Resilient, Scalable, Storage System with OpenStackBuilding a Resilient, Scalable, Storage System with OpenStack
Building a Resilient, Scalable, Storage System with OpenStack
Β 
OpenStack Architected Like AWS (and GCP)
OpenStack Architected Like AWS (and GCP)OpenStack Architected Like AWS (and GCP)
OpenStack Architected Like AWS (and GCP)
Β 

Recently uploaded

Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
Β 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
Β 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
Β 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
Β 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
Β 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
Β 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
Β 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
Β 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
Β 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
Β 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
Β 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
Β 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
Β 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
Β 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
Β 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
Β 
FULL ENJOY πŸ” 8264348440 πŸ” Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY πŸ” 8264348440 πŸ” Call Girls in Diplomatic Enclave | DelhiFULL ENJOY πŸ” 8264348440 πŸ” Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY πŸ” 8264348440 πŸ” Call Girls in Diplomatic Enclave | Delhisoniya singh
Β 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
Β 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
Β 

Recently uploaded (20)

Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
Β 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Β 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
Β 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
Β 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
Β 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Β 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
Β 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
Β 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
Β 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
Β 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Β 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Β 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
Β 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Β 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
Β 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Β 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
Β 
FULL ENJOY πŸ” 8264348440 πŸ” Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY πŸ” 8264348440 πŸ” Call Girls in Diplomatic Enclave | DelhiFULL ENJOY πŸ” 8264348440 πŸ” Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY πŸ” 8264348440 πŸ” Call Girls in Diplomatic Enclave | Delhi
Β 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Β 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
Β 

ElasticSearch on AWS - Real Estate portal case study (Spitogatos.gr)

  • 1. ElasticSearch on AWS Real Estate portal Case Study (Spitogatos.gr) AWSUG GR meetup #7 27 September 2012 Andreas Chatzakis co-founder / IT Director – Spitogatos.gr Event sponsored by: @achatzakis on twitter
  • 4. Helping you find a property Finding a property in Greece is complex, lacks transparency. We make life easier for househunters via: ξ€Œ Powerful search functionality ξ€Œ Web & Mobile ξ€Œ Location & Criteria ξ€Œ Quality content ξ€Œ Listings (we love photos) ξ€Œ Articles ξ€Œ mySpitogatos ξ€Œ Email alerts ξ€Œ Save your search ξ€Œ Favorite listings & notes ξ€Œ Contact the realtors 4
  • 5. Realtors love us too! Professionals need help in those turbulent times. We add value in multiple ways: ξ€Œ Cost effective promotion & high quality leads ξ€Œ Targeted channel (very) ξ€Œ Leads already filtered (we ve seen the fotos!) ξ€Œ Technology services for realtors ξ€Œ Turnkey web site solution ξ€Œ Listing synchronization web service ξ€Œ B2B via Spitogatos Network (SpiN) business network / collaboration tool for realtors ξ€Œ Channel for foreign buyers via the English version 5
  • 7. To Search is to Find Search is central to what we do ξ€Œ Users searching for property come with structured criteria of huge variety ξ€Œ Athens Center, residential - flat or studio, for sale, 100-150k €, 85-120 sq meter, with a garage ξ€Œ Athens Center & N.Kosmos, residential - flat, for sale, 75-100k €, 70-100 sq meter, 2+ bedrooms, only show listings with photos ξ€Œ Piraeus centre or Mikrolimano, commercial – store, for rent, 500-750 € per month, only listings with recently reduced price ξ€Œ Monetize: # of Listings grouped by paying member + above criteria ξ€Œ IPhone app β†’ Listings within geo-rectangle + above criteria ξ€Œ As a result, caching is rarely our friend! ξ€Œ We used to think Lucene/Solr, ElasticSearch, CloudSearch etc were only useful for text search, not adding value for structured search G ξ€Œ Have been insisting on trying to optimize MySQL (multi column indices etc) N while throwing replicas to the problem. O R 7
  • 8. Why ElasticSearch Selected elasticSearch after a (very) brief research* on alternatives: ξ€Œ AWS's own Cloudsearch: ξ€Œ Zero management service: nice! ξ€Œ Not available on eu-west-1 ξ€Œ Currently lacks ES functionality (e.g. geospatial, non english analyzers) ξ€Œ Sphinx ξ€Œ Easy MySQL integration ξ€Œ How do you scale it?* ξ€Œ Solr ξ€Œ Industry standard ξ€Œ Seems like it is conceived as somehow harder to scale/operate*? ξ€Œ ElasticSearch: ξ€Œ Piece of cake to setup on AWS (stay tuned!) ξ€Œ Super distributed, scales & is easy on IT ops (more on that later!) * Disclaimer: We did not go through a 8 detailed product selection process!
  • 10. ElasticSearch basics A distributed, RESTful Search engine built on top of Lucene ξ€Œ Free Schema ξ€Œ JSON documents ξ€Œ Analyzers ξ€Œ Boost levels ξ€Œ Easy & flexible Search ξ€Œ Lucene query string or JSON based search query DSL ξ€Œ Facets & Highlighting ξ€Œ Spatial search ξ€Œ Custom scripts ξ€Œ Multi Tenancy ξ€Œ Store & search across multiple indices ξ€Œ Each with its own settings ξ€Œ Use-case: Logs – recent in memory, old on disk 10
  • 11. Scaling ElasticSearch Designed from the ground up to be Scalable & Highly Available ξ€Œ Distributed ξ€Œ Indices automatically broken into shards ξ€Œ Replicas for read performance & availability ξ€Œ Multiple cluster nodes, each hosting 1+ shards/replicas ξ€Œ peer2peer, each node can delegate operations to other nodes ξ€Œ Add,remove nodes at will ξ€Œ Rebalancing & routing automagically behind the scenes ξ€Œ Discovery ξ€Œ Multicast or unicast (declarative) ξ€Œ Gateway ξ€Œ Allows recovery in case all nodes go down ξ€Œ Local or shared storage ξ€Œ Async replication in case of shared storage 11
  • 12. A scale-up example Assume a cluster with 4 shards and 1 replica configuration ξ€Œ 1 node example – Status Yellow ξ€Œ 2 nodes example – Status Green ξ€Œ 3 nodes example : Primary shard : Replica shard : Master node : Regular node Master node maintains cluster state, acts if nodes join or leave the cluster by reassigning shards. 12
  • 13. ElasticSearch on AWS 2 modules make deployment on AWS a breeze ξ€Œ EC2 discovery ξ€Œ Filter by security group, AZ, tags ξ€Œ Requires IAM user with certain EC2 privileges: DescribeAvailabilityZones, DescribeInstances, DescribeRegions, DescribeSecurityGroups, DescribeTags ξ€Œ Very useful in autoscaling setups with ephemeral servers ξ€Œ S3 gateway ξ€Œ Long term reliable async persistency of cluster state and indices ξ€Œ Allows deployment without EBS volumes ξ€Œ Still, local gateway with EBS volumes performs better (less network used, faster recovery) ξ€Œ Won't protect from accidental deletion of index (deletion will propagate to shared storage) 13
  • 15. Indexation Indexation of Spitogatos.gr ads ξ€Œ DB is still the β€œsource of truth” ξ€Œ We propagate DELETEs synchronously, INSERTs & UPDATEs asynchronously ξ€Œ KISS: Cron job (re) indexes never or least-recently indexed listings ξ€Œ ORM marks new/modified listings as never-indexed (so they go first) ξ€Œ Location: Multivalue field instead of nested set model in the DB ξ€Œ e.g. this property is in Greece, Attica, Piraeus, Port of Piraeus ξ€Œ Property will be included in results when I search for any of the above. ξ€Œ Flat schema ξ€Œ Searchable listing owner fields are included in the document (vs a JOIN in our DB) ξ€Œ Changes to other tables might lead to large # of listings requiring reindexation (e.g. real estate agent becomes a paying member) 15
  • 16. Index Integrity Making sure our index is consistent with the DB ξ€Œ Scrutineer ( https://github.com/Aconex/scrutineer ) ξ€Œ Compares DB and ElasticSearch index for mismatches ξ€Œ exists in ES but not on DB (or vice versa) ξ€Œ ES version not up to date ξ€Œ Relies on β€œ_version” field - is incremented via our ORM onChange ξ€Œ When indexing we explicitly set versioning to β€œexternal” ξ€Œ Had to β€œhack” it as it doesn't work with EC2 discovery module ξ€Œ http://labs.spitogatos.gr/?p=45 16
  • 17. Search – Shards & Routing How does ElasticSearch decide in which shard to store a doc? ξ€Œ By default this is done based on hash of document id ξ€Œ Can be ovverriden while indexing and while searching (routing parameter) ξ€Œ We shard based on hash of the id of area id - Most users search for listings within a specific area - We hit only a single shard for a large percentage of the searches. No routing Routing by specificed specific areaId 17
  • 18. Search – Flat Schema, Facets & Scoring We rely a lot on ElasticSearch's Flat Schema, Facets & Scoring ξ€Œ No joins due to flat schema => fast! ξ€Œ Multivalue fields => fast filtering for listings in areas of various hierarchy levels ξ€Œ Facets functionality returns list of paying agents with # listings matching criteria ξ€Œ Old slow ranking algorithm replaced by elasticSearch scoring functionality ξ€Œ used to go through our DB and refresh score ξ€Œ ad age is part of the equation ξ€Œ Now ES computes this dynamically on every search ξ€Œ We use custom scoring ξ€Œ We can modify scoring algorithm and see changes instantly ξ€Œ no need to recalculate scores for all listings 18
  • 19. Monitoring Sematext SPM offers a (currently free) ES monitoring solution ξ€Œ Cluster Health ξ€Œ Search rate & latency ξ€Œ Disk ξ€Œ Index Stats ξ€Œ Cache ξ€Œ Network ξ€Œ Shard Stats ξ€Œ CPU & RAM ξ€Œ JVM & GC 19
  • 20. Tooling ElasticSearch-Head is a GUI for browsing /interacting with a cluster 20
  • 21. Backups We take periodic copies from the Gateway ξ€Œ Cause the Gateway is no cure for accidental deletions or bugs ξ€Œ S3cmd syncs S3 gateway contents to local folder ξ€Œ Expect some errors here as files get deleted/modified ξ€Œ Disables snapshots to gateway ξ€Œ Syncs again (no errors this time and much faster) ξ€Œ Reenables snapshots to gateway ξ€Œ Zips local folder contents, splits into smaller files & uploads to secondary S3 bucket Get the script here: http://labs.spitogatos.gr/?p=17 21
  • 22. Learnings Issues & leasons learned: ξ€Œ Faceted search can return wrong (smaller) results (on multiple shards) ξ€Œ Due to the way sorting/merging is done ξ€Œ Increase facet size field depending on cardinallity of faceted field ξ€Œ We use Elastica – a PHP client for ElasticSearch - https://github.com/ruflin/Elastica ξ€Œ Lacking Document Routing and Version Type support ξ€Œ Our own Jerry Manolarakis on a pull request to add setRouting, setVersionType ξ€Œ Filters vs queries (Query DSL) ξ€Œ Filters perform an order of magnitude better than plain queries since no scoring is performed and they are automatically cached. ξ€Œ Do it! Your DB will thank you CPU Utilization Response time pattern 22
  • 23. Read more Useful resources: ξ€Œ https://speakerdeck.com/u/jmikola/p/symfony-live-london-elasticsearch ξ€Œ http://blog.sematext.com/2010/05/03/elastic-search-distributed-lucene/ ξ€Œ http://www.slideshare.net/elasticsearch/elasticsearch-at-berlinbuzzwords-2010 ξ€Œ http://www.slideshare.net/kucrafal/scaling-massive-elastic-search-clusters-rafa-ku-sematext Need help integrating ElasticSearch to your app? http://bacterials.net/ Follow us on twitter: @spitogatosLabs Check out our blog: http://labs.spitogatos.gr 23