SlideShare a Scribd company logo
1 of 37
Search
Cloud powered
LIVIU MAZILU
RADU PINTILIE
April 25, 2015Cloud powered search
© EXPERT NETWORK
CODECAMP
Challenges in distributed applications
SQL Azure Federation
HDInsight
DocumentDB
Previous subjects
April 25, 2015Cloud powered search
© EXPERT NETWORK
Azure Search
The need for search
Search explained
Development
Case Scenarios
Agenda
April 25, 2015Cloud powered search
© EXPERT NETWORK
The need for search
Why do we search for data?
How do we store it to search efficiently?
What’s important?
April 25, 2015Cloud powered search
© EXPERT NETWORK
Is this a search engine?
where [field] like “%codecamp%”
April 25, 2015Cloud powered search
© EXPERT NETWORK
WHAT IS A SEARCH ENGINE?
Efficient indexing of data
On all fields / combination of fields
Analyzing data
Text Search
Tokenizing
Stemming
Filtering
Understanding locations
Relevance scoring
April 25, 2015Cloud powered search
© EXPERT NETWORK
Lucene
Document: collection of fields
Field: string based key-value pair
Collection: set of documents
Inverted index: a term can list the number
of documents it contains
Score: relevancy for each document
matching the query
April 25, 2015Cloud powered search
© EXPERT NETWORK
How searching works
Id Title UserId ViewCount Tags
1 Controller Action ambiguity
even with [HttpPost]
decoration? (ASP.NET MVC4)
5 352 asp.net asp.net-mvc
asp.net-mvc-4 f#
2 Why can't I use a scrollwheel
on a webpage?
6 109 c# javascript asp.net
asp.net-mvc-4 twitter-
bootstrap-3
3 Access session variable of one
site in another"
7 78 asp.net .net
4 Check if SIM card exists 5 209 c# windows-phone-8
April 25, 2015Cloud powered search
© EXPERT NETWORK
Inverted index
How searching works
Title
Access session variable of one site in another" 3
Check if SIM card exists 4
Controller Action ambiguity even with [HttpPost] decoration? (ASP.NET
MVC4)
1
Why can't I use a scrollwheel on a webpage? 2
UserID
5 1, 4
6 2
7 3
ViewCount
78 3
109 2
209 4
352 1
April 25, 2015Cloud powered search
© EXPERT NETWORK
Inverted index
How searching works
Title
Access session variable of one site in another" 3
Check if SIM card exists 4
Controller Action ambiguity even with [HttpPost] decoration? (ASP.NET
MVC4)
1
Why can't I use a scrollwheel on a webpage? 2
UserID
5 1, 4
6 2
7 3
ViewCount
78 3
109 2
209 4
352 1
Query: UserID = 5
April 25, 2015Cloud powered search
© EXPERT NETWORK
Full text search
Id Tags
1 asp.net asp.net-mvc asp.net-mvc-
4 f#
2 c# javascript asp.net asp.net-mvc-
4 twitter-bootstrap-3
3 asp.net .net
4 c# windows-phone-8
How searching works
Term Doc
.net 3
asp.net 1, 2, 3
asp.net-mvc-4 1, 2
c# 2, 4
f# 1
javascript 2
mvc 1
twitter-bootstrap-3 2
windows-phone-8 4
April 25, 2015Cloud powered search
© EXPERT NETWORK
Full text search
Id Tags
1 asp.net asp.net-mvc asp.net-mvc-
4 f#
2 c# javascript asp.net asp.net-mvc-
4 twitter-bootstrap-3
3 asp.net .net
4 c# windows-phone-8
How searching works
Term Doc
.net 3
asp.net 1, 2, 3
asp.net-mvc-4 1, 2
c# 2, 4
f# 1
javascript 2
mvc 1
twitter-bootstrap-3 2
windows-phone-8 4
Query: “javascript” in Tags
April 25, 2015Cloud powered search
© EXPERT NETWORK
Full text search
Id Tags
1 asp.net asp.net-mvc asp.net-mvc-
4 f#
2 c# javascript asp.net asp.net-mvc-
4 twitter-bootstrap-3
3 asp.net .net
4 c# windows-phone-8
How searching works
Term Doc
.net 3
asp.net 1, 2, 3
asp.net-mvc-4 1, 2
c# 2, 4
f# 1
javascript 2
mvc 1
twitter-bootstrap-3 2
windows-phone-8 4
Query: “asp.net” in Tags
April 25, 2015Cloud powered search
© EXPERT NETWORK
Auto-completion
Uses
April 25, 2015Cloud powered search
© EXPERT NETWORK
Auto-correction
Phrasing
Iframe security – Security in an Iframe
Word-level distance
grey/gray
color/colour
Uses
April 25, 2015Cloud powered search
© EXPERT NETWORK
Elasticsearch
Distributed: aggregated results of search performed on multiple
shards/indices
Schema Less: is document oriented. Supports JSON format
RESTful: supports REST interface
Faceted Search: support for navigational search functionality
Replication: supports index replication
Fail over: replication and distributed nature provides inbuilt fail
over.
Near Real time: supports near real time updates
April 25, 2015Cloud powered search
© EXPERT NETWORK
Distributed & highly available
• Multiple servers (nodes) running in a cluster
• Acting as single service
• Nodes in cluster that store data or nodes that just help
in speeding up search queries.
• Sharding
• Indeces are sharded (# shards is configurable)
• Each shard can have zero or more replicas
• Replicas on different servers (server pools) for failover
• One in the cluster goes down? No problem.
Elasticsearch
April 25, 2015Cloud powered search
© EXPERT NETWORK
Azure search
Elasticsearch as a managed service
Platform as a service (PaaS)
Admin by Rest API
Data exchange with JSON
April 25, 2015Cloud powered search
© EXPERT NETWORK
Where are we at
Service Ease of use Scalability Easy Administration
Manual search (SQL) No No Partial
Elasticsearch Yes Yes No
AzureSearch Yes Yes Yes
April 25, 2015Cloud powered search
© EXPERT NETWORK
Resource model
Service
Index (schema type 1)
Index (schema type 2)
Document
Document
Field1
Field2
Field3
Field4
Indexers
Azure Search
April 25, 2015Cloud powered search
© EXPERT NETWORK
Management Portal
Demo
April 25, 2015Cloud powered search
© EXPERT NETWORK
Index creation
POST https://codecamp-en.search.windows.net/indexes
"name": "stackoverflow-posts",
"fields": [ {
"name": "name_of_field",
"type": “data_type",
"searchable": true (default where applicable) | false ,
"filterable": true (default) | false,
"sortable": true (default where applicable) | false
"facetable": true (default where applicable) | false ,
"key": true | false (default),
"retrievable": true (default) | false } ] …
Azure Search
April 25, 2015Cloud powered search
© EXPERT NETWORK
Index documents
Indexers
Data sources: Azure SQL Database, DocumentDB
Connects data sources with target search indexes
An indexer can be used in the following ways:
one-time copy of the data to populate an index
sync an index with changes from the data source on a schedule
invoke on-demand to update an index as needed
Azure Search
April 25, 2015Cloud powered search
© EXPERT NETWORK
CRUD Operations
Add, Update, Delete
POST https://codecamp-en.search.windows.net/indexes/stackoverflow/docs/index
{
"@search.action": "upload (default) | merge | mergeOrUpload |
delete",
"key_field_name": "unique_key_of_document", (key/value pair for
key field from index schema)
"field_name": field_value (key/value pairs matching index schema)
}
Azure Search
April 25, 2015Cloud powered search
© EXPERT NETWORK
Searching through data
GET https://codecamp-en.search.windows.net/indexes/stackoverflow/docs?
search=[string]
+ (AND operator “code" and “camp")
| (OR operator “code" or “camp" or both)
- (NOT operator. “code–camp" “code" term and/or do not have “camp" )
* (Suffix operator. “cod*" - starts with “cod", ignoring case)
" (Phrase search operator)
( ) (Precedence operator - code+(camp|workshop)
searchMode=any|all
searchFields=[string]
Azure Search
April 25, 2015Cloud powered search
© EXPERT NETWORK
Filtering results
$filter=[string] - Odata syntax
$skip=#
$top=#
$count=true|false
$orderby=[string]
$select=[string]
Azure Search
April 25, 2015Cloud powered search
© EXPERT NETWORK
Emphasizing results
facet=[string] (field names)
count
sort
values
interval
highlight=[string] (field names)
highlightPreTag=[string] (default is em)
highlightPostTag=[string]
Azure Search
April 25, 2015Cloud powered search
© EXPERT NETWORK
Suggestions
GET https://codecamp-en.search.windows.net/indexes/stackoverflow/docs/suggest
search=[string]
suggesterName=[string]
fuzzy=[boolean]
searchFields=[string]
Azure Search
April 25, 2015Cloud powered search
© EXPERT NETWORK
Stackoverflow Posts
5.215.584 records
212 MB in Title column
118 MB in Tags column
10,5 GB in Body column
Sample Data
Column Name Data Type
Id int
CreationDate datetime
Score float
ViewCount int
Body nvarchar
OwnerUserId int
Title nvarchar
Tags nvarchar
April 25, 2015Cloud powered search
© EXPERT NETWORK
Search API
DEMO
April 25, 2015Cloud powered search
© EXPERT NETWORK
Scaling
Capacity measured in Search Units
1 Search Unit
1 Partition
1 Replica
Horizontal scaling by increasing the number
of partitions and/or replicas
Cloud powered search
April 25, 2015Cloud powered search
© EXPERT NETWORK
Storage
Partition limitations:
15 million documents
25 GB data
Every Index is split by default in 12 shards
Each partition can store 1,2,3,4,6,12 shards
Cloud powered search
April 25, 2015Cloud powered search
© EXPERT NETWORK
SCENARIOS
Online retail/ecommerce
User generated/social content
Not just for the web
Hybrid Applications
USE CASE
April 25, 2015Cloud powered search
© EXPERT NETWORK
Conclusions
The need for search
Search explained
Development
Case Scenarios
April 25, 2015Cloud powered search
© EXPERT NETWORK
Questions
?
April 25, 2015Cloud powered search
© EXPERT NETWORK
THANK YOU

More Related Content

What's hot

From Batch to Streaming ET(L) with Apache Apex
From Batch to Streaming ET(L) with Apache ApexFrom Batch to Streaming ET(L) with Apache Apex
From Batch to Streaming ET(L) with Apache Apex
DataWorks Summit
 
Enabling Insight to Support World-Class Supercomputing (Stefan Ceballos, Oak ...
Enabling Insight to Support World-Class Supercomputing (Stefan Ceballos, Oak ...Enabling Insight to Support World-Class Supercomputing (Stefan Ceballos, Oak ...
Enabling Insight to Support World-Class Supercomputing (Stefan Ceballos, Oak ...
confluent
 
How to use Standard SQL over Kafka: From the basics to advanced use cases | F...
How to use Standard SQL over Kafka: From the basics to advanced use cases | F...How to use Standard SQL over Kafka: From the basics to advanced use cases | F...
How to use Standard SQL over Kafka: From the basics to advanced use cases | F...
HostedbyConfluent
 

What's hot (20)

Presto: Fast SQL-on-Anything (including Delta Lake, Snowflake, Elasticsearch ...
Presto: Fast SQL-on-Anything (including Delta Lake, Snowflake, Elasticsearch ...Presto: Fast SQL-on-Anything (including Delta Lake, Snowflake, Elasticsearch ...
Presto: Fast SQL-on-Anything (including Delta Lake, Snowflake, Elasticsearch ...
 
From Batch to Streaming ET(L) with Apache Apex
From Batch to Streaming ET(L) with Apache ApexFrom Batch to Streaming ET(L) with Apache Apex
From Batch to Streaming ET(L) with Apache Apex
 
GraphQL across the stack: How everything fits together
GraphQL across the stack: How everything fits togetherGraphQL across the stack: How everything fits together
GraphQL across the stack: How everything fits together
 
Bridging the Gap Between Datasets and DataFrames
Bridging the Gap Between Datasets and DataFramesBridging the Gap Between Datasets and DataFrames
Bridging the Gap Between Datasets and DataFrames
 
Apache Flink Adoption at Shopify
Apache Flink Adoption at ShopifyApache Flink Adoption at Shopify
Apache Flink Adoption at Shopify
 
MLeap: Release Spark ML Pipelines
MLeap: Release Spark ML PipelinesMLeap: Release Spark ML Pipelines
MLeap: Release Spark ML Pipelines
 
Flink Forward Berlin 2018: Xiaowei Jiang - Keynote: "Unified Engine for Data ...
Flink Forward Berlin 2018: Xiaowei Jiang - Keynote: "Unified Engine for Data ...Flink Forward Berlin 2018: Xiaowei Jiang - Keynote: "Unified Engine for Data ...
Flink Forward Berlin 2018: Xiaowei Jiang - Keynote: "Unified Engine for Data ...
 
Modern ETL Pipelines with Change Data Capture
Modern ETL Pipelines with Change Data CaptureModern ETL Pipelines with Change Data Capture
Modern ETL Pipelines with Change Data Capture
 
Storing State Forever: Why It Can Be Good For Your Analytics
Storing State Forever: Why It Can Be Good For Your AnalyticsStoring State Forever: Why It Can Be Good For Your Analytics
Storing State Forever: Why It Can Be Good For Your Analytics
 
Databricks: What We Have Learned by Eating Our Dog Food
Databricks: What We Have Learned by Eating Our Dog FoodDatabricks: What We Have Learned by Eating Our Dog Food
Databricks: What We Have Learned by Eating Our Dog Food
 
Flink Forward Berlin 2018: Timo Walther - "Flink SQL in Action"
Flink Forward Berlin 2018: Timo Walther - "Flink SQL in Action"Flink Forward Berlin 2018: Timo Walther - "Flink SQL in Action"
Flink Forward Berlin 2018: Timo Walther - "Flink SQL in Action"
 
Grokking TechTalk #29: Building Realtime Metrics Platform at LinkedIn
Grokking TechTalk #29: Building Realtime Metrics Platform at LinkedInGrokking TechTalk #29: Building Realtime Metrics Platform at LinkedIn
Grokking TechTalk #29: Building Realtime Metrics Platform at LinkedIn
 
Distributed Data Quality - Technical Solutions for Organizational Scaling
Distributed Data Quality - Technical Solutions for Organizational ScalingDistributed Data Quality - Technical Solutions for Organizational Scaling
Distributed Data Quality - Technical Solutions for Organizational Scaling
 
Flink Forward Berlin 2018: Oleksandr Nitavskyi - "Data lossless event time st...
Flink Forward Berlin 2018: Oleksandr Nitavskyi - "Data lossless event time st...Flink Forward Berlin 2018: Oleksandr Nitavskyi - "Data lossless event time st...
Flink Forward Berlin 2018: Oleksandr Nitavskyi - "Data lossless event time st...
 
On Improving Broadcast Joins in Apache Spark SQL
On Improving Broadcast Joins in Apache Spark SQLOn Improving Broadcast Joins in Apache Spark SQL
On Improving Broadcast Joins in Apache Spark SQL
 
KSQL-ops! Running ksqlDB in the Wild (Simon Aubury, ThoughtWorks) Kafka Summi...
KSQL-ops! Running ksqlDB in the Wild (Simon Aubury, ThoughtWorks) Kafka Summi...KSQL-ops! Running ksqlDB in the Wild (Simon Aubury, ThoughtWorks) Kafka Summi...
KSQL-ops! Running ksqlDB in the Wild (Simon Aubury, ThoughtWorks) Kafka Summi...
 
Enabling Insight to Support World-Class Supercomputing (Stefan Ceballos, Oak ...
Enabling Insight to Support World-Class Supercomputing (Stefan Ceballos, Oak ...Enabling Insight to Support World-Class Supercomputing (Stefan Ceballos, Oak ...
Enabling Insight to Support World-Class Supercomputing (Stefan Ceballos, Oak ...
 
How to use Standard SQL over Kafka: From the basics to advanced use cases | F...
How to use Standard SQL over Kafka: From the basics to advanced use cases | F...How to use Standard SQL over Kafka: From the basics to advanced use cases | F...
How to use Standard SQL over Kafka: From the basics to advanced use cases | F...
 
Keeping Identity Graphs In Sync With Apache Spark
Keeping Identity Graphs In Sync With Apache SparkKeeping Identity Graphs In Sync With Apache Spark
Keeping Identity Graphs In Sync With Apache Spark
 
Frequently Bought Together Recommendations Based on Embeddings
Frequently Bought Together Recommendations Based on EmbeddingsFrequently Bought Together Recommendations Based on Embeddings
Frequently Bought Together Recommendations Based on Embeddings
 

Similar to Cloud powered search

Similar to Cloud powered search (20)

Getting Started with Elasticsearch
Getting Started with ElasticsearchGetting Started with Elasticsearch
Getting Started with Elasticsearch
 
180825 azure ai
180825 azure ai180825 azure ai
180825 azure ai
 
EPAM ML/AI Accelerator - ODAHU
EPAM ML/AI Accelerator - ODAHUEPAM ML/AI Accelerator - ODAHU
EPAM ML/AI Accelerator - ODAHU
 
Synapse for mere mortals
Synapse for mere mortalsSynapse for mere mortals
Synapse for mere mortals
 
NextGenML
NextGenML NextGenML
NextGenML
 
.Net development with Azure Machine Learning (AzureML) Nov 2014
.Net development with Azure Machine Learning (AzureML) Nov 2014.Net development with Azure Machine Learning (AzureML) Nov 2014
.Net development with Azure Machine Learning (AzureML) Nov 2014
 
Cepta The Future of Data with Power BI
Cepta The Future of Data with Power BICepta The Future of Data with Power BI
Cepta The Future of Data with Power BI
 
Is there a way that we can build our Azure Data Factory all with parameters b...
Is there a way that we can build our Azure Data Factory all with parameters b...Is there a way that we can build our Azure Data Factory all with parameters b...
Is there a way that we can build our Azure Data Factory all with parameters b...
 
Paige Roberts: Shortcut MLOps with In-Database Machine Learning
Paige Roberts: Shortcut MLOps with In-Database Machine LearningPaige Roberts: Shortcut MLOps with In-Database Machine Learning
Paige Roberts: Shortcut MLOps with In-Database Machine Learning
 
In Search of Database Nirvana: Challenges of Delivering HTAP
In Search of Database Nirvana: Challenges of Delivering HTAPIn Search of Database Nirvana: Challenges of Delivering HTAP
In Search of Database Nirvana: Challenges of Delivering HTAP
 
ASHviz - Dats visualization research experiments using ASH data
ASHviz - Dats visualization research experiments using ASH dataASHviz - Dats visualization research experiments using ASH data
ASHviz - Dats visualization research experiments using ASH data
 
I2 - SharePoint Hybrid Search Start to Finish - Thomas Vochten
I2 - SharePoint Hybrid Search Start to Finish - Thomas VochtenI2 - SharePoint Hybrid Search Start to Finish - Thomas Vochten
I2 - SharePoint Hybrid Search Start to Finish - Thomas Vochten
 
Azure+Databricks+Course+Slide+Deck+V4.pdf
Azure+Databricks+Course+Slide+Deck+V4.pdfAzure+Databricks+Course+Slide+Deck+V4.pdf
Azure+Databricks+Course+Slide+Deck+V4.pdf
 
How to Train Your Classifier: Create a Serverless Machine Learning System wit...
How to Train Your Classifier: Create a Serverless Machine Learning System wit...How to Train Your Classifier: Create a Serverless Machine Learning System wit...
How to Train Your Classifier: Create a Serverless Machine Learning System wit...
 
LeedsSharp May 2023 - Azure Integration Services
LeedsSharp May 2023 - Azure Integration ServicesLeedsSharp May 2023 - Azure Integration Services
LeedsSharp May 2023 - Azure Integration Services
 
Azure Stream Analytics
Azure Stream AnalyticsAzure Stream Analytics
Azure Stream Analytics
 
(ATS6-APP01) Unleashing the Power of Your Data with Discoverant
(ATS6-APP01) Unleashing the Power of Your Data with Discoverant(ATS6-APP01) Unleashing the Power of Your Data with Discoverant
(ATS6-APP01) Unleashing the Power of Your Data with Discoverant
 
Serverless Data Lake on AWS
Serverless Data Lake on AWSServerless Data Lake on AWS
Serverless Data Lake on AWS
 
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developers
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developersChris O'Brien - Best bits of Azure for Office 365/SharePoint developers
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developers
 
Sergii Baidachnyi ITEM 2018
Sergii Baidachnyi ITEM 2018Sergii Baidachnyi ITEM 2018
Sergii Baidachnyi ITEM 2018
 

More from Codecamp Romania

More from Codecamp Romania (20)

Cezar chitac the edge of experience
Cezar chitac   the edge of experienceCezar chitac   the edge of experience
Cezar chitac the edge of experience
 
Ccp
CcpCcp
Ccp
 
Business analysis techniques exercise your 6-pack
Business analysis techniques   exercise your 6-packBusiness analysis techniques   exercise your 6-pack
Business analysis techniques exercise your 6-pack
 
Bpm company code camp - configuration or coding with pega
Bpm company   code camp - configuration or coding with pegaBpm company   code camp - configuration or coding with pega
Bpm company code camp - configuration or coding with pega
 
Andrei prisacaru takingtheunitteststothedatabase
Andrei prisacaru takingtheunitteststothedatabaseAndrei prisacaru takingtheunitteststothedatabase
Andrei prisacaru takingtheunitteststothedatabase
 
Agility and life
Agility and lifeAgility and life
Agility and life
 
2015 dan ardelean develop for windows 10
2015 dan ardelean   develop for windows 10 2015 dan ardelean   develop for windows 10
2015 dan ardelean develop for windows 10
 
The bigrewrite
The bigrewriteThe bigrewrite
The bigrewrite
 
The case for continuous delivery
The case for continuous deliveryThe case for continuous delivery
The case for continuous delivery
 
Stefan stolniceanu spritekit, 2 d or not 2d
Stefan stolniceanu   spritekit, 2 d or not 2dStefan stolniceanu   spritekit, 2 d or not 2d
Stefan stolniceanu spritekit, 2 d or not 2d
 
Sizing epics tales from an agile kingdom
Sizing epics   tales from an agile kingdomSizing epics   tales from an agile kingdom
Sizing epics tales from an agile kingdom
 
Scale net apps in aws
Scale net apps in awsScale net apps in aws
Scale net apps in aws
 
Raluca butnaru corina cilibiu the unknown universe of a product and the cer...
Raluca butnaru corina cilibiu   the unknown universe of a product and the cer...Raluca butnaru corina cilibiu   the unknown universe of a product and the cer...
Raluca butnaru corina cilibiu the unknown universe of a product and the cer...
 
Parallel & async processing using tpl dataflow
Parallel & async processing using tpl dataflowParallel & async processing using tpl dataflow
Parallel & async processing using tpl dataflow
 
Material design screen transitions in android
Material design screen transitions in androidMaterial design screen transitions in android
Material design screen transitions in android
 
Kickstart your own freelancing career
Kickstart your own freelancing careerKickstart your own freelancing career
Kickstart your own freelancing career
 
Ionut grecu the soft stuff is the hard stuff. the agile soft skills toolkit
Ionut grecu   the soft stuff is the hard stuff. the agile soft skills toolkitIonut grecu   the soft stuff is the hard stuff. the agile soft skills toolkit
Ionut grecu the soft stuff is the hard stuff. the agile soft skills toolkit
 
Ecma6 in the wild
Ecma6 in the wildEcma6 in the wild
Ecma6 in the wild
 
Diana antohi me against myself or how to fail and move forward
Diana antohi   me against myself  or how to fail  and move forwardDiana antohi   me against myself  or how to fail  and move forward
Diana antohi me against myself or how to fail and move forward
 
Codecamp2015 pimp yourpipeline-saade-jens-1.1
Codecamp2015 pimp yourpipeline-saade-jens-1.1Codecamp2015 pimp yourpipeline-saade-jens-1.1
Codecamp2015 pimp yourpipeline-saade-jens-1.1
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 

Cloud powered search

  • 1.
  • 3. April 25, 2015Cloud powered search © EXPERT NETWORK CODECAMP Challenges in distributed applications SQL Azure Federation HDInsight DocumentDB Previous subjects
  • 4. April 25, 2015Cloud powered search © EXPERT NETWORK Azure Search The need for search Search explained Development Case Scenarios Agenda
  • 5. April 25, 2015Cloud powered search © EXPERT NETWORK The need for search Why do we search for data? How do we store it to search efficiently? What’s important?
  • 6. April 25, 2015Cloud powered search © EXPERT NETWORK Is this a search engine? where [field] like “%codecamp%”
  • 7. April 25, 2015Cloud powered search © EXPERT NETWORK WHAT IS A SEARCH ENGINE? Efficient indexing of data On all fields / combination of fields Analyzing data Text Search Tokenizing Stemming Filtering Understanding locations Relevance scoring
  • 8. April 25, 2015Cloud powered search © EXPERT NETWORK Lucene Document: collection of fields Field: string based key-value pair Collection: set of documents Inverted index: a term can list the number of documents it contains Score: relevancy for each document matching the query
  • 9. April 25, 2015Cloud powered search © EXPERT NETWORK How searching works Id Title UserId ViewCount Tags 1 Controller Action ambiguity even with [HttpPost] decoration? (ASP.NET MVC4) 5 352 asp.net asp.net-mvc asp.net-mvc-4 f# 2 Why can't I use a scrollwheel on a webpage? 6 109 c# javascript asp.net asp.net-mvc-4 twitter- bootstrap-3 3 Access session variable of one site in another" 7 78 asp.net .net 4 Check if SIM card exists 5 209 c# windows-phone-8
  • 10. April 25, 2015Cloud powered search © EXPERT NETWORK Inverted index How searching works Title Access session variable of one site in another" 3 Check if SIM card exists 4 Controller Action ambiguity even with [HttpPost] decoration? (ASP.NET MVC4) 1 Why can't I use a scrollwheel on a webpage? 2 UserID 5 1, 4 6 2 7 3 ViewCount 78 3 109 2 209 4 352 1
  • 11. April 25, 2015Cloud powered search © EXPERT NETWORK Inverted index How searching works Title Access session variable of one site in another" 3 Check if SIM card exists 4 Controller Action ambiguity even with [HttpPost] decoration? (ASP.NET MVC4) 1 Why can't I use a scrollwheel on a webpage? 2 UserID 5 1, 4 6 2 7 3 ViewCount 78 3 109 2 209 4 352 1 Query: UserID = 5
  • 12. April 25, 2015Cloud powered search © EXPERT NETWORK Full text search Id Tags 1 asp.net asp.net-mvc asp.net-mvc- 4 f# 2 c# javascript asp.net asp.net-mvc- 4 twitter-bootstrap-3 3 asp.net .net 4 c# windows-phone-8 How searching works Term Doc .net 3 asp.net 1, 2, 3 asp.net-mvc-4 1, 2 c# 2, 4 f# 1 javascript 2 mvc 1 twitter-bootstrap-3 2 windows-phone-8 4
  • 13. April 25, 2015Cloud powered search © EXPERT NETWORK Full text search Id Tags 1 asp.net asp.net-mvc asp.net-mvc- 4 f# 2 c# javascript asp.net asp.net-mvc- 4 twitter-bootstrap-3 3 asp.net .net 4 c# windows-phone-8 How searching works Term Doc .net 3 asp.net 1, 2, 3 asp.net-mvc-4 1, 2 c# 2, 4 f# 1 javascript 2 mvc 1 twitter-bootstrap-3 2 windows-phone-8 4 Query: “javascript” in Tags
  • 14. April 25, 2015Cloud powered search © EXPERT NETWORK Full text search Id Tags 1 asp.net asp.net-mvc asp.net-mvc- 4 f# 2 c# javascript asp.net asp.net-mvc- 4 twitter-bootstrap-3 3 asp.net .net 4 c# windows-phone-8 How searching works Term Doc .net 3 asp.net 1, 2, 3 asp.net-mvc-4 1, 2 c# 2, 4 f# 1 javascript 2 mvc 1 twitter-bootstrap-3 2 windows-phone-8 4 Query: “asp.net” in Tags
  • 15. April 25, 2015Cloud powered search © EXPERT NETWORK Auto-completion Uses
  • 16. April 25, 2015Cloud powered search © EXPERT NETWORK Auto-correction Phrasing Iframe security – Security in an Iframe Word-level distance grey/gray color/colour Uses
  • 17. April 25, 2015Cloud powered search © EXPERT NETWORK Elasticsearch Distributed: aggregated results of search performed on multiple shards/indices Schema Less: is document oriented. Supports JSON format RESTful: supports REST interface Faceted Search: support for navigational search functionality Replication: supports index replication Fail over: replication and distributed nature provides inbuilt fail over. Near Real time: supports near real time updates
  • 18. April 25, 2015Cloud powered search © EXPERT NETWORK Distributed & highly available • Multiple servers (nodes) running in a cluster • Acting as single service • Nodes in cluster that store data or nodes that just help in speeding up search queries. • Sharding • Indeces are sharded (# shards is configurable) • Each shard can have zero or more replicas • Replicas on different servers (server pools) for failover • One in the cluster goes down? No problem. Elasticsearch
  • 19. April 25, 2015Cloud powered search © EXPERT NETWORK Azure search Elasticsearch as a managed service Platform as a service (PaaS) Admin by Rest API Data exchange with JSON
  • 20. April 25, 2015Cloud powered search © EXPERT NETWORK Where are we at Service Ease of use Scalability Easy Administration Manual search (SQL) No No Partial Elasticsearch Yes Yes No AzureSearch Yes Yes Yes
  • 21. April 25, 2015Cloud powered search © EXPERT NETWORK Resource model Service Index (schema type 1) Index (schema type 2) Document Document Field1 Field2 Field3 Field4 Indexers Azure Search
  • 22. April 25, 2015Cloud powered search © EXPERT NETWORK Management Portal Demo
  • 23. April 25, 2015Cloud powered search © EXPERT NETWORK Index creation POST https://codecamp-en.search.windows.net/indexes "name": "stackoverflow-posts", "fields": [ { "name": "name_of_field", "type": “data_type", "searchable": true (default where applicable) | false , "filterable": true (default) | false, "sortable": true (default where applicable) | false "facetable": true (default where applicable) | false , "key": true | false (default), "retrievable": true (default) | false } ] … Azure Search
  • 24. April 25, 2015Cloud powered search © EXPERT NETWORK Index documents Indexers Data sources: Azure SQL Database, DocumentDB Connects data sources with target search indexes An indexer can be used in the following ways: one-time copy of the data to populate an index sync an index with changes from the data source on a schedule invoke on-demand to update an index as needed Azure Search
  • 25. April 25, 2015Cloud powered search © EXPERT NETWORK CRUD Operations Add, Update, Delete POST https://codecamp-en.search.windows.net/indexes/stackoverflow/docs/index { "@search.action": "upload (default) | merge | mergeOrUpload | delete", "key_field_name": "unique_key_of_document", (key/value pair for key field from index schema) "field_name": field_value (key/value pairs matching index schema) } Azure Search
  • 26. April 25, 2015Cloud powered search © EXPERT NETWORK Searching through data GET https://codecamp-en.search.windows.net/indexes/stackoverflow/docs? search=[string] + (AND operator “code" and “camp") | (OR operator “code" or “camp" or both) - (NOT operator. “code–camp" “code" term and/or do not have “camp" ) * (Suffix operator. “cod*" - starts with “cod", ignoring case) " (Phrase search operator) ( ) (Precedence operator - code+(camp|workshop) searchMode=any|all searchFields=[string] Azure Search
  • 27. April 25, 2015Cloud powered search © EXPERT NETWORK Filtering results $filter=[string] - Odata syntax $skip=# $top=# $count=true|false $orderby=[string] $select=[string] Azure Search
  • 28. April 25, 2015Cloud powered search © EXPERT NETWORK Emphasizing results facet=[string] (field names) count sort values interval highlight=[string] (field names) highlightPreTag=[string] (default is em) highlightPostTag=[string] Azure Search
  • 29. April 25, 2015Cloud powered search © EXPERT NETWORK Suggestions GET https://codecamp-en.search.windows.net/indexes/stackoverflow/docs/suggest search=[string] suggesterName=[string] fuzzy=[boolean] searchFields=[string] Azure Search
  • 30. April 25, 2015Cloud powered search © EXPERT NETWORK Stackoverflow Posts 5.215.584 records 212 MB in Title column 118 MB in Tags column 10,5 GB in Body column Sample Data Column Name Data Type Id int CreationDate datetime Score float ViewCount int Body nvarchar OwnerUserId int Title nvarchar Tags nvarchar
  • 31. April 25, 2015Cloud powered search © EXPERT NETWORK Search API DEMO
  • 32. April 25, 2015Cloud powered search © EXPERT NETWORK Scaling Capacity measured in Search Units 1 Search Unit 1 Partition 1 Replica Horizontal scaling by increasing the number of partitions and/or replicas Cloud powered search
  • 33. April 25, 2015Cloud powered search © EXPERT NETWORK Storage Partition limitations: 15 million documents 25 GB data Every Index is split by default in 12 shards Each partition can store 1,2,3,4,6,12 shards Cloud powered search
  • 34. April 25, 2015Cloud powered search © EXPERT NETWORK SCENARIOS Online retail/ecommerce User generated/social content Not just for the web Hybrid Applications USE CASE
  • 35. April 25, 2015Cloud powered search © EXPERT NETWORK Conclusions The need for search Search explained Development Case Scenarios
  • 36. April 25, 2015Cloud powered search © EXPERT NETWORK Questions ?
  • 37. April 25, 2015Cloud powered search © EXPERT NETWORK THANK YOU