SlideShare a Scribd company logo
1 of 55
Download to read offline
Search experience = user retention and revenue
DNS / Load Balancing                                         AWS Query

Search Domain

  Search API         Console    Doc          Command        Console   Config      Command          Console
                               Svc API       Line Tools                API        Line Tools

    ACCESS CONTROL                ACCESS CONTROL                        ACCESS CONTROL

 SEARCH SERVICE                DOCUMENT SERVICE                       CONFIG SERVICE
  Search Documents                       Add Documents                         Create Domains

                                         Update Documents                      Configure Domains

                                         Delete Documents                      Delete Domains
DATA
                                 Document Quantity and Size




             SEARCH INSTANCE                 SEARCH INSTANCE      SEARCH INSTANCE
             Index Partition 1                Index Partition 2    Index Partition n
                 Copy 1                           Copy 1               Copy 1
TRAFFIC
Search
Request
Volume and   SEARCH INSTANCE                 SEARCH INSTANCE      SEARCH INSTANCE
Complexity   Index Partition 1                Index Partition 2    Index Partition n
                 Copy 2                           Copy 2               Copy 2




             SEARCH INSTANCE                 SEARCH INSTANCE      SEARCH INSTANCE
             Index Partition 1                Index Partition 2    Index Partition n
                 Copy n                           Copy n               Copy n
• The Challenge
• The Data: The Million Song Data Set
  http://labrosa.ee.columbia.edu/millionsong/
• The Application
Field name       Description
artist_mbid      The musicbrainz.org ID
artist_name      Name of the artist
audio_md5        Hash code of the audio
danceability     According to The Echo Nest
duration         In seconds
loudness         General loudness of the track
song_hottnesss   According to Echo Nest
title            Song title
year             Song year
•   Create an Amazon CloudSearch domain
•   Identify use case and supporting data
•   Upload data
•   Configure the domain
•   Improve document ranking
•   Integrate with the front end
•   Keep documents up-to-date
•   Create an Amazon CloudSearch domain
•   Identify use case and supporting data
•   Upload data
•   Configure the domain
•   Improve document ranking
•   Integrate with the front end
•   Keep documents up-to-date
•   Create an Amazon CloudSearch domain
•   Identify use case and supporting data
•   Upload data
•   Configure the domain
•   Improve document ranking
•   Integrate with the front end
•   Keep documents up-to-date
Year

Song Title
Artist Name
Familiarity
Artist
Genre
Year
Title
Artist Name
Genre
Artist Familiarity
Year
•   Create an Amazon CloudSearch domain
•   Identify use case and supporting data
•   Prepare and upload data
•   Configure the domain
•   Improve document ranking
•   Integrate with the front end
•   Keep documents up-to-date
SDF
               Batches

                           Amazon
Million Song             CloudSearch
  DataSet
SDF Batches
[
      {"type":"add",
       "id": "soaczam12ab0181559",
       "version":5,
       "lang":"en",
       "fields": {
              "title":"Ruby Tuesday",
              "artist_name":"The Rolling Stones",
              "year":"1967",
              "artist_familiarity":864830,
              "genre":["alternative", "ambient", "dance",
                       "electronic", "pop", "r&b", "reggae"]
       }
},
… ]
•   Create an Amazon CloudSearch domain
•   Identify use case and supporting data
•   Prepare and upload data
•   Configure the domain
•   Improve document ranking
•   Integrate with the front end
•   Keep documents up-to-date
Text fields for
matching user terms

 Result enabled to
retrieve source data
Literal fields for
      Faceting

  Facet enabled to
retrieve facet counts
 Search enabled for
      narrowing
Integer fields for
ranking, narrowing
•   Create an Amazon CloudSearch domain
•   Identify use case and supporting data
•   Prepare and upload data
•   Configure the domain
•   Improve document ranking
•   Integrate with the front end
•   Keep documents up-to-date
•   Create an Amazon CloudSearch domain
•   Identify use case and supporting data
•   Prepare and upload data
•   Configure the domain
•   Improve document ranking
•   Integrate with the front end
•   Keep documents up-to-date
PHP Integration
$results =
     file_get_contents(
           http://search-mn-songs-5bbplyghbb5tk257rsb7iamlsy." .
           "us-east-1.cloudsearch.amazonaws.com" .
           "/2011-02-01/search?q=" . $keyword .
           "&return-fields=title,artist_name,year&" .
           "facet=artist_name,year_facet,genre&" .
           "rank=-" . $rank);
     $resultsObj = json_decode($results);
Simple Search Result
{"rank": "-text_relevance",
"match-expr": "(label 'rolling stone')",
"hits": { "found": 204, "start": 0,
          "hit": [ { "id": "sontsst12cf5f88b42"
},
                   { "id": "sopvopr12ab017f082"
},
                   { "id": "sorzrpw12ac468a13b"
},
                 ] },
...
Search Results With Return Values
"hit":
[ { "id": "sontsst12cf5f88b42",
    "data": {
         "artist_familiarity": [ "925048" ],
         "artist_name": [ "The Rolling Stones" ],
         "text_relevance": [ "326" ],
         "title": [ "Heart Of Stone" ],
         "year": [ "1964" ]
      }
   },
Facets In Search Results
{…"hits": { … },
"facets": {
    "genre": {
        "constraints":   [
            { "value":   "pop", "count": 126 },
            { "value":   "rock", "count": 125 },
            { "value":   "alternative", "count": 109 },
            { "value":   "electronic", "count": 106 },
            { "value":   "jazz", "count": 58 }, ...
         ] } }
X



X
•   Create an Amazon CloudSearch domain
•   Identify use case and supporting data
•   Prepare and upload data
•   Configure the domain
•   Improve document ranking
•   Integrate with the front end
•   Keep documents up-to-date
26ms
https://github.com/pbs/haystack-cloudsearch
Get Started Now, Free Trial
We are sincerely eager to
 hear your feedback on this
presentation and on re:Invent.

 Please fill out an evaluation
   form when you have a
            chance.
SVC101 Building Search into Your App - AWS re: Invent 2012

More Related Content

Viewers also liked

Albert Jan Tebbe (Ooyala) @ CMC TV in the Cloud & On Demand
Albert Jan Tebbe (Ooyala) @ CMC TV in the Cloud & On DemandAlbert Jan Tebbe (Ooyala) @ CMC TV in the Cloud & On Demand
Albert Jan Tebbe (Ooyala) @ CMC TV in the Cloud & On DemandMedia Perspectives
 
Vindicia and Ooyala for OTT Content Opportunities
Vindicia and Ooyala for OTT Content OpportunitiesVindicia and Ooyala for OTT Content Opportunities
Vindicia and Ooyala for OTT Content OpportunitiesVindicia
 
Enabling Content Workflows in the Cloud
Enabling Content Workflows in the CloudEnabling Content Workflows in the Cloud
Enabling Content Workflows in the CloudAmazon Web Services
 
Forrester GRC Q1 2016 Report
Forrester GRC Q1 2016 ReportForrester GRC Q1 2016 Report
Forrester GRC Q1 2016 ReportDaryl Resnick
 

Viewers also liked (8)

IS sum up 2011
IS sum up 2011IS sum up 2011
IS sum up 2011
 
Albert Jan Tebbe (Ooyala) @ CMC TV in the Cloud & On Demand
Albert Jan Tebbe (Ooyala) @ CMC TV in the Cloud & On DemandAlbert Jan Tebbe (Ooyala) @ CMC TV in the Cloud & On Demand
Albert Jan Tebbe (Ooyala) @ CMC TV in the Cloud & On Demand
 
Vindicia and Ooyala for OTT Content Opportunities
Vindicia and Ooyala for OTT Content OpportunitiesVindicia and Ooyala for OTT Content Opportunities
Vindicia and Ooyala for OTT Content Opportunities
 
Enabling Content Workflows in the Cloud
Enabling Content Workflows in the CloudEnabling Content Workflows in the Cloud
Enabling Content Workflows in the Cloud
 
OOYALA
OOYALAOOYALA
OOYALA
 
Forrester GRC Q1 2016 Report
Forrester GRC Q1 2016 ReportForrester GRC Q1 2016 Report
Forrester GRC Q1 2016 Report
 
Architecting on The Cloud
Architecting on The CloudArchitecting on The Cloud
Architecting on The Cloud
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 

Similar to SVC101 Building Search into Your App - AWS re: Invent 2012

AWS Update | London - Amazon CloudSearch
AWS Update | London - Amazon CloudSearchAWS Update | London - Amazon CloudSearch
AWS Update | London - Amazon CloudSearchAmazon Web Services
 
Enrich Search User Experience Using Amazon CloudSearch (SVC302) | AWS re:Inve...
Enrich Search User Experience Using Amazon CloudSearch (SVC302) | AWS re:Inve...Enrich Search User Experience Using Amazon CloudSearch (SVC302) | AWS re:Inve...
Enrich Search User Experience Using Amazon CloudSearch (SVC302) | AWS re:Inve...Amazon Web Services
 
Amazon CloudSearch
Amazon CloudSearchAmazon CloudSearch
Amazon CloudSearchdavtchev
 
NEW LAUNCH! Natural Language Processing for Data Analytics - MCL343 - re:Inve...
NEW LAUNCH! Natural Language Processing for Data Analytics - MCL343 - re:Inve...NEW LAUNCH! Natural Language Processing for Data Analytics - MCL343 - re:Inve...
NEW LAUNCH! Natural Language Processing for Data Analytics - MCL343 - re:Inve...Amazon Web Services
 
Webinar: Building Your First Application with MongoDB
Webinar: Building Your First Application with MongoDBWebinar: Building Your First Application with MongoDB
Webinar: Building Your First Application with MongoDBMongoDB
 
The openCypher Project - An Open Graph Query Language
The openCypher Project - An Open Graph Query LanguageThe openCypher Project - An Open Graph Query Language
The openCypher Project - An Open Graph Query LanguageNeo4j
 
How to Migrate from Cassandra to Amazon DynamoDB - AWS Online Tech Talks
How to Migrate from Cassandra to Amazon DynamoDB - AWS Online Tech TalksHow to Migrate from Cassandra to Amazon DynamoDB - AWS Online Tech Talks
How to Migrate from Cassandra to Amazon DynamoDB - AWS Online Tech TalksAmazon Web Services
 
managing big data
managing big datamanaging big data
managing big dataSuveeksha
 
Building Scalable, Globally Distrubuted System with Azure Cosmos DB Introduction
Building Scalable, Globally Distrubuted System with Azure Cosmos DB IntroductionBuilding Scalable, Globally Distrubuted System with Azure Cosmos DB Introduction
Building Scalable, Globally Distrubuted System with Azure Cosmos DB IntroductionHasan Savran
 
Getting Started: Atlas Search Webinar
Getting Started: Atlas Search WebinarGetting Started: Atlas Search Webinar
Getting Started: Atlas Search WebinarKaren Huaulme
 
High Performance JSON Search and Relational Faceted Browsing with Lucene
High Performance JSON Search and Relational Faceted Browsing with LuceneHigh Performance JSON Search and Relational Faceted Browsing with Lucene
High Performance JSON Search and Relational Faceted Browsing with Lucenelucenerevolution
 
Searching on Intent: Knowledge Graphs, Personalization, and Contextual Disamb...
Searching on Intent: Knowledge Graphs, Personalization, and Contextual Disamb...Searching on Intent: Knowledge Graphs, Personalization, and Contextual Disamb...
Searching on Intent: Knowledge Graphs, Personalization, and Contextual Disamb...Trey Grainger
 
Darin Briskman_Amazon_June_9_2017_Presentation
Darin Briskman_Amazon_June_9_2017_PresentationDarin Briskman_Amazon_June_9_2017_Presentation
Darin Briskman_Amazon_June_9_2017_PresentationTriNimbus
 
Leveraging Lucene/Solr as a Knowledge Graph and Intent Engine: Presented by T...
Leveraging Lucene/Solr as a Knowledge Graph and Intent Engine: Presented by T...Leveraging Lucene/Solr as a Knowledge Graph and Intent Engine: Presented by T...
Leveraging Lucene/Solr as a Knowledge Graph and Intent Engine: Presented by T...Lucidworks
 
Introduction to Neo4j and .Net
Introduction to Neo4j and .NetIntroduction to Neo4j and .Net
Introduction to Neo4j and .NetNeo4j
 
Getting started with Splunk - Break out Session
Getting started with Splunk - Break out SessionGetting started with Splunk - Break out Session
Getting started with Splunk - Break out SessionGeorg Knon
 
Getting started with Splunk
Getting started with SplunkGetting started with Splunk
Getting started with SplunkSplunk
 
Deploying your Data Warehouse on AWS
Deploying your Data Warehouse on AWSDeploying your Data Warehouse on AWS
Deploying your Data Warehouse on AWSAmazon Web Services
 
Migrating Speedment to Java 9
Migrating Speedment to Java 9Migrating Speedment to Java 9
Migrating Speedment to Java 9C4Media
 
Getting Started with Amazon CloudSearch
Getting Started with Amazon CloudSearchGetting Started with Amazon CloudSearch
Getting Started with Amazon CloudSearchAmazon Web Services
 

Similar to SVC101 Building Search into Your App - AWS re: Invent 2012 (20)

AWS Update | London - Amazon CloudSearch
AWS Update | London - Amazon CloudSearchAWS Update | London - Amazon CloudSearch
AWS Update | London - Amazon CloudSearch
 
Enrich Search User Experience Using Amazon CloudSearch (SVC302) | AWS re:Inve...
Enrich Search User Experience Using Amazon CloudSearch (SVC302) | AWS re:Inve...Enrich Search User Experience Using Amazon CloudSearch (SVC302) | AWS re:Inve...
Enrich Search User Experience Using Amazon CloudSearch (SVC302) | AWS re:Inve...
 
Amazon CloudSearch
Amazon CloudSearchAmazon CloudSearch
Amazon CloudSearch
 
NEW LAUNCH! Natural Language Processing for Data Analytics - MCL343 - re:Inve...
NEW LAUNCH! Natural Language Processing for Data Analytics - MCL343 - re:Inve...NEW LAUNCH! Natural Language Processing for Data Analytics - MCL343 - re:Inve...
NEW LAUNCH! Natural Language Processing for Data Analytics - MCL343 - re:Inve...
 
Webinar: Building Your First Application with MongoDB
Webinar: Building Your First Application with MongoDBWebinar: Building Your First Application with MongoDB
Webinar: Building Your First Application with MongoDB
 
The openCypher Project - An Open Graph Query Language
The openCypher Project - An Open Graph Query LanguageThe openCypher Project - An Open Graph Query Language
The openCypher Project - An Open Graph Query Language
 
How to Migrate from Cassandra to Amazon DynamoDB - AWS Online Tech Talks
How to Migrate from Cassandra to Amazon DynamoDB - AWS Online Tech TalksHow to Migrate from Cassandra to Amazon DynamoDB - AWS Online Tech Talks
How to Migrate from Cassandra to Amazon DynamoDB - AWS Online Tech Talks
 
managing big data
managing big datamanaging big data
managing big data
 
Building Scalable, Globally Distrubuted System with Azure Cosmos DB Introduction
Building Scalable, Globally Distrubuted System with Azure Cosmos DB IntroductionBuilding Scalable, Globally Distrubuted System with Azure Cosmos DB Introduction
Building Scalable, Globally Distrubuted System with Azure Cosmos DB Introduction
 
Getting Started: Atlas Search Webinar
Getting Started: Atlas Search WebinarGetting Started: Atlas Search Webinar
Getting Started: Atlas Search Webinar
 
High Performance JSON Search and Relational Faceted Browsing with Lucene
High Performance JSON Search and Relational Faceted Browsing with LuceneHigh Performance JSON Search and Relational Faceted Browsing with Lucene
High Performance JSON Search and Relational Faceted Browsing with Lucene
 
Searching on Intent: Knowledge Graphs, Personalization, and Contextual Disamb...
Searching on Intent: Knowledge Graphs, Personalization, and Contextual Disamb...Searching on Intent: Knowledge Graphs, Personalization, and Contextual Disamb...
Searching on Intent: Knowledge Graphs, Personalization, and Contextual Disamb...
 
Darin Briskman_Amazon_June_9_2017_Presentation
Darin Briskman_Amazon_June_9_2017_PresentationDarin Briskman_Amazon_June_9_2017_Presentation
Darin Briskman_Amazon_June_9_2017_Presentation
 
Leveraging Lucene/Solr as a Knowledge Graph and Intent Engine: Presented by T...
Leveraging Lucene/Solr as a Knowledge Graph and Intent Engine: Presented by T...Leveraging Lucene/Solr as a Knowledge Graph and Intent Engine: Presented by T...
Leveraging Lucene/Solr as a Knowledge Graph and Intent Engine: Presented by T...
 
Introduction to Neo4j and .Net
Introduction to Neo4j and .NetIntroduction to Neo4j and .Net
Introduction to Neo4j and .Net
 
Getting started with Splunk - Break out Session
Getting started with Splunk - Break out SessionGetting started with Splunk - Break out Session
Getting started with Splunk - Break out Session
 
Getting started with Splunk
Getting started with SplunkGetting started with Splunk
Getting started with Splunk
 
Deploying your Data Warehouse on AWS
Deploying your Data Warehouse on AWSDeploying your Data Warehouse on AWS
Deploying your Data Warehouse on AWS
 
Migrating Speedment to Java 9
Migrating Speedment to Java 9Migrating Speedment to Java 9
Migrating Speedment to Java 9
 
Getting Started with Amazon CloudSearch
Getting Started with Amazon CloudSearchGetting Started with Amazon CloudSearch
Getting Started with Amazon CloudSearch
 

More from Amazon Web Services

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Amazon Web Services
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Amazon Web Services
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateAmazon Web Services
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSAmazon Web Services
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Amazon Web Services
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Amazon Web Services
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...Amazon Web Services
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsAmazon Web Services
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareAmazon Web Services
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSAmazon Web Services
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAmazon Web Services
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareAmazon Web Services
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWSAmazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckAmazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without serversAmazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...Amazon Web Services
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceAmazon Web Services
 

More from Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

SVC101 Building Search into Your App - AWS re: Invent 2012

  • 1.
  • 2.
  • 3. Search experience = user retention and revenue
  • 4.
  • 5.
  • 6.
  • 7. DNS / Load Balancing AWS Query Search Domain Search API Console Doc Command Console Config Command Console Svc API Line Tools API Line Tools ACCESS CONTROL ACCESS CONTROL ACCESS CONTROL SEARCH SERVICE DOCUMENT SERVICE CONFIG SERVICE Search Documents Add Documents Create Domains Update Documents Configure Domains Delete Documents Delete Domains
  • 8. DATA Document Quantity and Size SEARCH INSTANCE SEARCH INSTANCE SEARCH INSTANCE Index Partition 1 Index Partition 2 Index Partition n Copy 1 Copy 1 Copy 1 TRAFFIC Search Request Volume and SEARCH INSTANCE SEARCH INSTANCE SEARCH INSTANCE Complexity Index Partition 1 Index Partition 2 Index Partition n Copy 2 Copy 2 Copy 2 SEARCH INSTANCE SEARCH INSTANCE SEARCH INSTANCE Index Partition 1 Index Partition 2 Index Partition n Copy n Copy n Copy n
  • 9.
  • 10. • The Challenge • The Data: The Million Song Data Set http://labrosa.ee.columbia.edu/millionsong/ • The Application
  • 11. Field name Description artist_mbid The musicbrainz.org ID artist_name Name of the artist audio_md5 Hash code of the audio danceability According to The Echo Nest duration In seconds loudness General loudness of the track song_hottnesss According to Echo Nest title Song title year Song year
  • 12. Create an Amazon CloudSearch domain • Identify use case and supporting data • Upload data • Configure the domain • Improve document ranking • Integrate with the front end • Keep documents up-to-date
  • 13. Create an Amazon CloudSearch domain • Identify use case and supporting data • Upload data • Configure the domain • Improve document ranking • Integrate with the front end • Keep documents up-to-date
  • 14.
  • 15. Create an Amazon CloudSearch domain • Identify use case and supporting data • Upload data • Configure the domain • Improve document ranking • Integrate with the front end • Keep documents up-to-date
  • 16.
  • 20. Create an Amazon CloudSearch domain • Identify use case and supporting data • Prepare and upload data • Configure the domain • Improve document ranking • Integrate with the front end • Keep documents up-to-date
  • 21.
  • 22. SDF Batches Amazon Million Song CloudSearch DataSet
  • 23. SDF Batches [ {"type":"add", "id": "soaczam12ab0181559", "version":5, "lang":"en", "fields": { "title":"Ruby Tuesday", "artist_name":"The Rolling Stones", "year":"1967", "artist_familiarity":864830, "genre":["alternative", "ambient", "dance", "electronic", "pop", "r&b", "reggae"] } }, … ]
  • 24. Create an Amazon CloudSearch domain • Identify use case and supporting data • Prepare and upload data • Configure the domain • Improve document ranking • Integrate with the front end • Keep documents up-to-date
  • 25. Text fields for matching user terms Result enabled to retrieve source data
  • 26. Literal fields for Faceting Facet enabled to retrieve facet counts Search enabled for narrowing
  • 28.
  • 29. Create an Amazon CloudSearch domain • Identify use case and supporting data • Prepare and upload data • Configure the domain • Improve document ranking • Integrate with the front end • Keep documents up-to-date
  • 30.
  • 31.
  • 32.
  • 33. Create an Amazon CloudSearch domain • Identify use case and supporting data • Prepare and upload data • Configure the domain • Improve document ranking • Integrate with the front end • Keep documents up-to-date
  • 34. PHP Integration $results = file_get_contents( http://search-mn-songs-5bbplyghbb5tk257rsb7iamlsy." . "us-east-1.cloudsearch.amazonaws.com" . "/2011-02-01/search?q=" . $keyword . "&return-fields=title,artist_name,year&" . "facet=artist_name,year_facet,genre&" . "rank=-" . $rank); $resultsObj = json_decode($results);
  • 35. Simple Search Result {"rank": "-text_relevance", "match-expr": "(label 'rolling stone')", "hits": { "found": 204, "start": 0, "hit": [ { "id": "sontsst12cf5f88b42" }, { "id": "sopvopr12ab017f082" }, { "id": "sorzrpw12ac468a13b" }, ] }, ...
  • 36. Search Results With Return Values "hit": [ { "id": "sontsst12cf5f88b42", "data": { "artist_familiarity": [ "925048" ], "artist_name": [ "The Rolling Stones" ], "text_relevance": [ "326" ], "title": [ "Heart Of Stone" ], "year": [ "1964" ] } },
  • 37. Facets In Search Results {…"hits": { … }, "facets": { "genre": { "constraints": [ { "value": "pop", "count": 126 }, { "value": "rock", "count": 125 }, { "value": "alternative", "count": 109 }, { "value": "electronic", "count": 106 }, { "value": "jazz", "count": 58 }, ... ] } }
  • 38. X X
  • 39. Create an Amazon CloudSearch domain • Identify use case and supporting data • Prepare and upload data • Configure the domain • Improve document ranking • Integrate with the front end • Keep documents up-to-date
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47. 26ms
  • 48.
  • 49.
  • 51.
  • 52.
  • 53. Get Started Now, Free Trial
  • 54. We are sincerely eager to hear your feedback on this presentation and on re:Invent. Please fill out an evaluation form when you have a chance.