SlideShare una empresa de Scribd logo
1 de 22
Amazon
  CloudSearch
          Chris Moyer
VP of Technology @ Newstex, LLC
Who am I?
✦   Author

✦   Building
    Applications in
    the Cloud

✦   Not just about
    AWS, but cloud
    computing
    “patterns” in
    general
Author

✦   Now available in
    multiple
    languages

✦   Available through
    Amazon.com (and
    in Kindle
    format), and
    BarnesAndNobel
Newstex VP
✦   VP of Technology:
    Newstex, LLC

✦   Took Newstex from
    a datacenter to
    AWS

✦   All applications
    run entirely
    within AWS
Indexing with
          DynamoDB!

✦   DynamoDB is a
    NoSQL Engine

✦   Not Indexed
Oh wait...




Officially Released Thursday (4/11)
Reverse...
Introducing
         CloudSearch
✦   Powered by “a9” search engine

✦   Same search used by Amazon.com

✦   Similar to Apache Solr

✦   Managed Service, Auto scale based on
    usage and storage

✦   Searches full-text and metadata

✦   Customized Schema
What is
       CloudSearch?
✦   Search Domains

✦   Full text indexing of documents and
    Metadata

✦   Simple Document API

✦   Rich API to search - no AWS
    Credentials required

✦   “Search Facets”

✦   “Result Field”
Search Domains
✦   Single set of Endpoints

✦   Completely Isolated

✦   Can not search across domains

✦   Set of instances

✦   Set of permissions

✦   Specific Schema
Indexing
✦   Key -> value (multi)

✦   Specify schema!: Limit of 100 values per item

✦   Supports different types:

         ✦   text (default)

         ✦   uint

         ✦   literal (tokenized)

✦   Options on each index:

         ✦   Search

         ✦   Facet
                           Can’t use both!
         ✦   Result
Advanced Indexing
         Settings
✦   Rank expressions: how to determine
    match results

✦   Stopwords - Words to remove and not
    index: “the”, “a” “an” “and”

✦   Stemming: Reduce a given word to its
    “root form”: “Learning”: “learn”

✦   Synonyms: Transform one word into
    another “google”: “search”
Document API
✦   REST-Style API

✦   Not signed requests

✦   Permissions by IP

✦   Can also upload via the Console

✦   Add via SDF (Search Document Format)

✦   Batch operations, add and delete

✦   Each document has an ID and a Version
Search API
  ✦   Authorized by IP address (or
      CIDR range)

  ✦   Supports “simple” and
      “boolean” query searches

  ✦   Search across all indexed
      fields, or specific fields, or
      both

  ✦   Returns simple JSON or XML
      output

  ✦   Also allows returning of
      Facets.
Search Facets
✦   Special “filtering” fields
    for fields that do not have
    a lot of unique values

✦   Each search request can
    return these counts

✦   Can be used to limit further
    searches by adding a boolean
    query

✦   Can not also be returned in
    results
Result Fields
✦   Special fields that are returned with
    each hit

✦   Each field is an array

✦   Also return total number found and
    “start” index
How does this help
  with DynamoDB?
✦   DynamoDB is non-indexed

✦   Stores Metadata only

✦   Can be used to store full metadata
    for objects that are indexed in
    CloudSearch

✦   Both are exceptionally fast and
    scalable
Its not cheap

✦   Priced per instance
    and instance type

✦   You do not control
    scaling, Amazon does

✦   At minimum,
    approximately $100
    per “domain”
Pricing
   ✦   $0.12/hour - 1 million
       documents $87/month

   ✦   $0.48/hour - 4 million
       documents $346/month

   ✦   $0.68/hour - 8 million
       documents $490/month

   ✦   $0.10 per 1,000 Batch
       Put requests
What to take away
    from this
✦   CloudSearch is expensive,
    but saves development time
✦   CloudSearch provides
    powerful features that
    would take time to
    implement yourself
✦   Just like everything else
    Amazon releases, the price
    will decrease eventually.
Resources
✦   http://aws.amazon.com/
    cloudsearch
✦   https://github.com/boto/boto
✦   https://bitbucket.org/cmoyer/
    botoweb
✦   http://blog.coredumped.org
Console Demo

Más contenido relacionado

La actualidad más candente

Basics of Web Designing Languages
Basics of Web Designing LanguagesBasics of Web Designing Languages
Basics of Web Designing Languagesajay jakhar
 
Data warehouse solutions
Data warehouse solutionsData warehouse solutions
Data warehouse solutionsTu Pham
 
Rest vs graphql - why choose
Rest vs graphql - why chooseRest vs graphql - why choose
Rest vs graphql - why chooseTally Barak
 
Understanding AWS Storage Options
Understanding AWS Storage OptionsUnderstanding AWS Storage Options
Understanding AWS Storage OptionsAmazon Web Services
 
Autoscale DynamoDB with Dynamic DynamoDB
Autoscale DynamoDB with Dynamic DynamoDBAutoscale DynamoDB with Dynamic DynamoDB
Autoscale DynamoDB with Dynamic DynamoDBSebastian Dahlgren
 
MongoDB - Getting Started
MongoDB  - Getting StartedMongoDB  - Getting Started
MongoDB - Getting StartedAhmed Helmy
 
Up and Running with the Typelevel Stack
Up and Running with the Typelevel StackUp and Running with the Typelevel Stack
Up and Running with the Typelevel StackLuka Jacobowitz
 
RavenDB - Indexes Deep Dive
RavenDB - Indexes Deep DiveRavenDB - Indexes Deep Dive
RavenDB - Indexes Deep DiveAlonso Robles
 
Key Value Store For Local Environment
Key Value Store For Local EnvironmentKey Value Store For Local Environment
Key Value Store For Local Environmentbash0C7
 
Intresting changes in mongo 2.6
Intresting changes in mongo 2.6Intresting changes in mongo 2.6
Intresting changes in mongo 2.6David Murphy
 
Building a Directed Graph with MongoDB
Building a Directed Graph with MongoDBBuilding a Directed Graph with MongoDB
Building a Directed Graph with MongoDBTony Tam
 
Craig Kerstiens - Scalable Uniques in Postgres @ Postgres Open
Craig Kerstiens - Scalable Uniques in Postgres @ Postgres OpenCraig Kerstiens - Scalable Uniques in Postgres @ Postgres Open
Craig Kerstiens - Scalable Uniques in Postgres @ Postgres OpenPostgresOpen
 
Introduction to Azure Search
Introduction to Azure SearchIntroduction to Azure Search
Introduction to Azure SearchRadoslav Gatev
 
From MySQL to MongoDB at Wordnik (Tony Tam)
From MySQL to MongoDB at Wordnik (Tony Tam)From MySQL to MongoDB at Wordnik (Tony Tam)
From MySQL to MongoDB at Wordnik (Tony Tam)MongoSF
 
Backbone Conf 2014 - Realtime & Firebase
Backbone Conf 2014 - Realtime & FirebaseBackbone Conf 2014 - Realtime & Firebase
Backbone Conf 2014 - Realtime & FirebaseClément Wehrung
 
MongoDB for Coder Training (Coding Serbia 2013)
MongoDB for Coder Training (Coding Serbia 2013)MongoDB for Coder Training (Coding Serbia 2013)
MongoDB for Coder Training (Coding Serbia 2013)Uwe Printz
 
Azure Media Services & Azure Search
Azure Media Services & Azure SearchAzure Media Services & Azure Search
Azure Media Services & Azure SearchEmanuele Bartolesi
 

La actualidad más candente (20)

Atlogys Academy - Tech Talk on Mongo DB
Atlogys Academy - Tech Talk on Mongo DBAtlogys Academy - Tech Talk on Mongo DB
Atlogys Academy - Tech Talk on Mongo DB
 
Basics of Web Designing Languages
Basics of Web Designing LanguagesBasics of Web Designing Languages
Basics of Web Designing Languages
 
Data warehouse solutions
Data warehouse solutionsData warehouse solutions
Data warehouse solutions
 
Rest vs graphql - why choose
Rest vs graphql - why chooseRest vs graphql - why choose
Rest vs graphql - why choose
 
Understanding AWS Storage Options
Understanding AWS Storage OptionsUnderstanding AWS Storage Options
Understanding AWS Storage Options
 
Autoscale DynamoDB with Dynamic DynamoDB
Autoscale DynamoDB with Dynamic DynamoDBAutoscale DynamoDB with Dynamic DynamoDB
Autoscale DynamoDB with Dynamic DynamoDB
 
MongoDB - Getting Started
MongoDB  - Getting StartedMongoDB  - Getting Started
MongoDB - Getting Started
 
Up and Running with the Typelevel Stack
Up and Running with the Typelevel StackUp and Running with the Typelevel Stack
Up and Running with the Typelevel Stack
 
RavenDB - Indexes Deep Dive
RavenDB - Indexes Deep DiveRavenDB - Indexes Deep Dive
RavenDB - Indexes Deep Dive
 
Key Value Store For Local Environment
Key Value Store For Local EnvironmentKey Value Store For Local Environment
Key Value Store For Local Environment
 
Azure cosmos db
Azure cosmos dbAzure cosmos db
Azure cosmos db
 
Intresting changes in mongo 2.6
Intresting changes in mongo 2.6Intresting changes in mongo 2.6
Intresting changes in mongo 2.6
 
Building a Directed Graph with MongoDB
Building a Directed Graph with MongoDBBuilding a Directed Graph with MongoDB
Building a Directed Graph with MongoDB
 
Craig Kerstiens - Scalable Uniques in Postgres @ Postgres Open
Craig Kerstiens - Scalable Uniques in Postgres @ Postgres OpenCraig Kerstiens - Scalable Uniques in Postgres @ Postgres Open
Craig Kerstiens - Scalable Uniques in Postgres @ Postgres Open
 
Introduction to Azure Search
Introduction to Azure SearchIntroduction to Azure Search
Introduction to Azure Search
 
From MySQL to MongoDB at Wordnik (Tony Tam)
From MySQL to MongoDB at Wordnik (Tony Tam)From MySQL to MongoDB at Wordnik (Tony Tam)
From MySQL to MongoDB at Wordnik (Tony Tam)
 
Backbone Conf 2014 - Realtime & Firebase
Backbone Conf 2014 - Realtime & FirebaseBackbone Conf 2014 - Realtime & Firebase
Backbone Conf 2014 - Realtime & Firebase
 
MongoDB for Coder Training (Coding Serbia 2013)
MongoDB for Coder Training (Coding Serbia 2013)MongoDB for Coder Training (Coding Serbia 2013)
MongoDB for Coder Training (Coding Serbia 2013)
 
Intro to RavenDB
Intro to RavenDBIntro to RavenDB
Intro to RavenDB
 
Azure Media Services & Azure Search
Azure Media Services & Azure SearchAzure Media Services & Azure Search
Azure Media Services & Azure Search
 

Similar a BarCamp cloudsearch

New Features Coming in Browsers (RIT '09)
New Features Coming in Browsers (RIT '09)New Features Coming in Browsers (RIT '09)
New Features Coming in Browsers (RIT '09)jeresig
 
MongoDB in FS
MongoDB in FSMongoDB in FS
MongoDB in FSMongoDB
 
Build AWS CloudFormation Custom Resources (DEV417-R2) - AWS re:Invent 2018
Build AWS CloudFormation Custom Resources (DEV417-R2) - AWS re:Invent 2018Build AWS CloudFormation Custom Resources (DEV417-R2) - AWS re:Invent 2018
Build AWS CloudFormation Custom Resources (DEV417-R2) - AWS re:Invent 2018Amazon Web Services
 
MongoDB and Ruby on Rails
MongoDB and Ruby on RailsMongoDB and Ruby on Rails
MongoDB and Ruby on Railsrfischer20
 
Write Generic Code with the Tooling API
Write Generic Code with the Tooling APIWrite Generic Code with the Tooling API
Write Generic Code with the Tooling APIAdam Olshansky
 
Test driving Azure Search and DocumentDB
Test driving Azure Search and DocumentDBTest driving Azure Search and DocumentDB
Test driving Azure Search and DocumentDBAndrew Siemer
 
Azure CosmosDb - Where we are
Azure CosmosDb - Where we areAzure CosmosDb - Where we are
Azure CosmosDb - Where we areMarco Parenzan
 
Exploring Google APIs with Python
Exploring Google APIs with PythonExploring Google APIs with Python
Exploring Google APIs with Pythonwesley chun
 
Getting started with Appcelerator Titanium
Getting started with Appcelerator TitaniumGetting started with Appcelerator Titanium
Getting started with Appcelerator TitaniumTechday7
 
jQuery Recommendations to the W3C (2011)
jQuery Recommendations to the W3C (2011)jQuery Recommendations to the W3C (2011)
jQuery Recommendations to the W3C (2011)jeresig
 
jQuery and the W3C
jQuery and the W3CjQuery and the W3C
jQuery and the W3Cjeresig
 
MongoDB at Gilt Groupe
MongoDB at Gilt GroupeMongoDB at Gilt Groupe
MongoDB at Gilt GroupeMongoDB
 
Getting started with titanium
Getting started with titaniumGetting started with titanium
Getting started with titaniumNaga Harish M
 
Building APIs in an easy way using API Platform
Building APIs in an easy way using API PlatformBuilding APIs in an easy way using API Platform
Building APIs in an easy way using API PlatformAntonio Peric-Mazar
 
Compare Clouds: Aws vs Azure vs Google vs SoftLayer
Compare Clouds: Aws vs Azure vs Google vs SoftLayerCompare Clouds: Aws vs Azure vs Google vs SoftLayer
Compare Clouds: Aws vs Azure vs Google vs SoftLayerRightScale
 
Comparison with storing data using NoSQL(CouchDB) and a relational database.
Comparison with storing data using NoSQL(CouchDB) and a relational database.Comparison with storing data using NoSQL(CouchDB) and a relational database.
Comparison with storing data using NoSQL(CouchDB) and a relational database.eross77
 
Webinar: When to Use MongoDB
Webinar: When to Use MongoDBWebinar: When to Use MongoDB
Webinar: When to Use MongoDBMongoDB
 
Angular mobile angular_u
Angular mobile angular_uAngular mobile angular_u
Angular mobile angular_uDoris Chen
 
Overview serverless architecture
Overview serverless architectureOverview serverless architecture
Overview serverless architectureMThietkewebcom HN
 

Similar a BarCamp cloudsearch (20)

New Features Coming in Browsers (RIT '09)
New Features Coming in Browsers (RIT '09)New Features Coming in Browsers (RIT '09)
New Features Coming in Browsers (RIT '09)
 
MongoDB in FS
MongoDB in FSMongoDB in FS
MongoDB in FS
 
Build AWS CloudFormation Custom Resources (DEV417-R2) - AWS re:Invent 2018
Build AWS CloudFormation Custom Resources (DEV417-R2) - AWS re:Invent 2018Build AWS CloudFormation Custom Resources (DEV417-R2) - AWS re:Invent 2018
Build AWS CloudFormation Custom Resources (DEV417-R2) - AWS re:Invent 2018
 
MongoDB and Ruby on Rails
MongoDB and Ruby on RailsMongoDB and Ruby on Rails
MongoDB and Ruby on Rails
 
Write Generic Code with the Tooling API
Write Generic Code with the Tooling APIWrite Generic Code with the Tooling API
Write Generic Code with the Tooling API
 
Test driving Azure Search and DocumentDB
Test driving Azure Search and DocumentDBTest driving Azure Search and DocumentDB
Test driving Azure Search and DocumentDB
 
Azure CosmosDb - Where we are
Azure CosmosDb - Where we areAzure CosmosDb - Where we are
Azure CosmosDb - Where we are
 
MongoDB Basics
MongoDB BasicsMongoDB Basics
MongoDB Basics
 
Exploring Google APIs with Python
Exploring Google APIs with PythonExploring Google APIs with Python
Exploring Google APIs with Python
 
Getting started with Appcelerator Titanium
Getting started with Appcelerator TitaniumGetting started with Appcelerator Titanium
Getting started with Appcelerator Titanium
 
jQuery Recommendations to the W3C (2011)
jQuery Recommendations to the W3C (2011)jQuery Recommendations to the W3C (2011)
jQuery Recommendations to the W3C (2011)
 
jQuery and the W3C
jQuery and the W3CjQuery and the W3C
jQuery and the W3C
 
MongoDB at Gilt Groupe
MongoDB at Gilt GroupeMongoDB at Gilt Groupe
MongoDB at Gilt Groupe
 
Getting started with titanium
Getting started with titaniumGetting started with titanium
Getting started with titanium
 
Building APIs in an easy way using API Platform
Building APIs in an easy way using API PlatformBuilding APIs in an easy way using API Platform
Building APIs in an easy way using API Platform
 
Compare Clouds: Aws vs Azure vs Google vs SoftLayer
Compare Clouds: Aws vs Azure vs Google vs SoftLayerCompare Clouds: Aws vs Azure vs Google vs SoftLayer
Compare Clouds: Aws vs Azure vs Google vs SoftLayer
 
Comparison with storing data using NoSQL(CouchDB) and a relational database.
Comparison with storing data using NoSQL(CouchDB) and a relational database.Comparison with storing data using NoSQL(CouchDB) and a relational database.
Comparison with storing data using NoSQL(CouchDB) and a relational database.
 
Webinar: When to Use MongoDB
Webinar: When to Use MongoDBWebinar: When to Use MongoDB
Webinar: When to Use MongoDB
 
Angular mobile angular_u
Angular mobile angular_uAngular mobile angular_u
Angular mobile angular_u
 
Overview serverless architecture
Overview serverless architectureOverview serverless architecture
Overview serverless architecture
 

Último

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
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
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
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
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
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
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
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
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 

Último (20)

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
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...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
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
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
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
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 

BarCamp cloudsearch

  • 1. Amazon CloudSearch Chris Moyer VP of Technology @ Newstex, LLC
  • 2. Who am I? ✦ Author ✦ Building Applications in the Cloud ✦ Not just about AWS, but cloud computing “patterns” in general
  • 3. Author ✦ Now available in multiple languages ✦ Available through Amazon.com (and in Kindle format), and BarnesAndNobel
  • 4. Newstex VP ✦ VP of Technology: Newstex, LLC ✦ Took Newstex from a datacenter to AWS ✦ All applications run entirely within AWS
  • 5. Indexing with DynamoDB! ✦ DynamoDB is a NoSQL Engine ✦ Not Indexed
  • 8. Introducing CloudSearch ✦ Powered by “a9” search engine ✦ Same search used by Amazon.com ✦ Similar to Apache Solr ✦ Managed Service, Auto scale based on usage and storage ✦ Searches full-text and metadata ✦ Customized Schema
  • 9. What is CloudSearch? ✦ Search Domains ✦ Full text indexing of documents and Metadata ✦ Simple Document API ✦ Rich API to search - no AWS Credentials required ✦ “Search Facets” ✦ “Result Field”
  • 10. Search Domains ✦ Single set of Endpoints ✦ Completely Isolated ✦ Can not search across domains ✦ Set of instances ✦ Set of permissions ✦ Specific Schema
  • 11. Indexing ✦ Key -> value (multi) ✦ Specify schema!: Limit of 100 values per item ✦ Supports different types: ✦ text (default) ✦ uint ✦ literal (tokenized) ✦ Options on each index: ✦ Search ✦ Facet Can’t use both! ✦ Result
  • 12. Advanced Indexing Settings ✦ Rank expressions: how to determine match results ✦ Stopwords - Words to remove and not index: “the”, “a” “an” “and” ✦ Stemming: Reduce a given word to its “root form”: “Learning”: “learn” ✦ Synonyms: Transform one word into another “google”: “search”
  • 13. Document API ✦ REST-Style API ✦ Not signed requests ✦ Permissions by IP ✦ Can also upload via the Console ✦ Add via SDF (Search Document Format) ✦ Batch operations, add and delete ✦ Each document has an ID and a Version
  • 14. Search API ✦ Authorized by IP address (or CIDR range) ✦ Supports “simple” and “boolean” query searches ✦ Search across all indexed fields, or specific fields, or both ✦ Returns simple JSON or XML output ✦ Also allows returning of Facets.
  • 15. Search Facets ✦ Special “filtering” fields for fields that do not have a lot of unique values ✦ Each search request can return these counts ✦ Can be used to limit further searches by adding a boolean query ✦ Can not also be returned in results
  • 16. Result Fields ✦ Special fields that are returned with each hit ✦ Each field is an array ✦ Also return total number found and “start” index
  • 17. How does this help with DynamoDB? ✦ DynamoDB is non-indexed ✦ Stores Metadata only ✦ Can be used to store full metadata for objects that are indexed in CloudSearch ✦ Both are exceptionally fast and scalable
  • 18. Its not cheap ✦ Priced per instance and instance type ✦ You do not control scaling, Amazon does ✦ At minimum, approximately $100 per “domain”
  • 19. Pricing ✦ $0.12/hour - 1 million documents $87/month ✦ $0.48/hour - 4 million documents $346/month ✦ $0.68/hour - 8 million documents $490/month ✦ $0.10 per 1,000 Batch Put requests
  • 20. What to take away from this ✦ CloudSearch is expensive, but saves development time ✦ CloudSearch provides powerful features that would take time to implement yourself ✦ Just like everything else Amazon releases, the price will decrease eventually.
  • 21. Resources ✦ http://aws.amazon.com/ cloudsearch ✦ https://github.com/boto/boto ✦ https://bitbucket.org/cmoyer/ botoweb ✦ http://blog.coredumped.org

Notas del editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n