SlideShare a Scribd company logo
April 16
Introduction to Azure Search
Radoslav Gatev
Software Consultant@Accedia
bg.linkedin.com/in/radoslavgatev
Why Search Is Important?
Why Search Is Important?
Azure Search
A search-as-a-service solution allowing developers
to incorporate great search experiences into
applications without managing infrastructure or
needing to become search experts.
Scenarios
If an app offers lots of content your users will be
more effective searching instead of browsing
• Ecommerce
• Social content
• Line-of-business applications
Using Azure Search
PlaceFinder
1. Provisioning Search Services
Search service is:
• Scope of capacity, billing, authentication
• Managed through the portal or management
API
• May have one or more indexes
• Service name -> API root URL
https://mysvc.search.windows.net
2. Defining indexes
Search index is:
• A searchable collection of documents
• Has a schema
• Has various options, e.g. scoring profiles, CORS
• Index name -> API URL:
https://mysvc.search.windows.net/indexes/myindex
Index schema
List of fields and their configuration:
• Data types: string, int, double, datetime, boolean,
geo-point
• Single valued or collections
Each field can be used for:
• Search
• Suggestions
• Filters
• Sorting
• Facets
• Results
API: Create an index
POST /indexes/myindex?api-version=2015-02-28-Preview
Host: mysvc.search.windows.net
api-key: [YOUR_ADMIN_KEY]
Content-Type: application/json
{
"fields": [
{"name": "placeId","type": "Edm.String", "key": true},
{"name": "nameBg", "type": "Edm.String"},
{"name": "type", "type": "Edm.String" }
],
"corsOptions": { "allowedOrigins": [ "*" ] }
}
3. Indexing data
• Data is indexed in batches
o Up to 1000 operations: upload, merge, delete or mergeOrUpload
o POST to …/indexes/myindex/docs/index
• A success response ensures durability
o Client needs to check response body for individual operation
status
• Data will be searchable a few seconds later
o The data must be indexed, depends on how busy the system is
API: Batch Upload
POST /indexes/myindex/docs/index?api-version=2015-02-28
Host: mysvc.search.windows.net
api-key: [YOUR_ADMIN_KEY]
Content-Type: application/json
{
"value": [
{
"@search.action": "upload",
"placeId": "3620764888",
"nameBg": "Университет по ...",
"placeType": "university",
...
},
...
]
}
Indexing approaches
• Push
o .NET SDK
o REST API
• Pull
o Azure SQL Database
o SQL Server hosted in Azure VM
o DocumentDB
o Blob Storage
4. Searching
• Scope for search is an index
• The search API offers a number of options
o Full-text search including user-friendly operators
o Query support: strict filters, sorting, paging and field
selection
o Faceting
o Hit highlighting
• Results include scores plus requested fields
API: Search
• Simple search:
…/docs/search=your search query goes there
• Search with a strict filter:
…/docs?search=Sofia&$filter=placeType eq ‘university'
• Search with sorting, paging, field selection:
…/docs?search=Sofia&$orderby=nameBg asc&
$top=5&$select=nameBg
• Faceting:
…/docs?search=Sofia&facet=placeType
• Hit highlighting:
…/docs?search=Sofia&highlight=nameEn
Geospatial Search
• Search in documents within X km of my location
• Sort results by distance from my location
• Search for documents within a given polygon
Search Suggestions
• Building block for auto-complete
• Tricky balance of speed and features
• Suggestions come from document data
5. Tuning
• Default: scoring based on text relevance
• Scoring profiles for tuning scores
o Field weights: relative importance of fields
o Scoring functions: describe what matters to you
• One or more scoring profiles for different
scenarios
PlaceFinder
• Indexed Open Street Map for Sofia
• Used Azure SQL indexer which is powered by a
view
• Used technologies:
o ASP.NET Web API
o Azure Search .NET SDK
o KnockoutJS
• Project repository:
https://github.com/RadoslavGatev/PlaceFinder
Scaling
Partitions
(more documents, more storage, parallelism)
1, 2, 3, 4, 6, 12
Replicas
(morequeries,moreHA)
1-12
R x P <= 36
Service tiers
* Minimum two replicas for read-SLA, three replicas for
read-write-SLA
** Can be increased by calling Azure support
Service tier Free Basic(Preview) Standard S1
Availability SLA No Yes* Yes*
Max documents 10,000 1 million 180** million
(15 million/partition)
Max partitions N/A 1 12
Max replicas N/A 3 12
Max storage 50 MB 2 GB 300** GB
(25 GB/partition)
A few ideas
• Use cache-aside pattern and Redis Cache
o Reduce monetary costs
o Maintain high availability
• Multi-service scaling
o Use load balancing
o Prevent whole-region failures
o Handle extreme search workloads
Upcoming events
SQLSaturday #519 in may!
http://www.sqlsaturday.com/519/
Thanks to our Sponsors:
Global Sponsor:
Platinum Sponsors:
Swag Sponsors: Media Partners:
With the support of:

More Related Content

What's hot

SPUnite17 IT Pros Guide to Managing SharePoint Search
SPUnite17 IT Pros Guide to Managing SharePoint SearchSPUnite17 IT Pros Guide to Managing SharePoint Search
SPUnite17 IT Pros Guide to Managing SharePoint Search
NCCOMMS
 
Developing Search-driven application in SharePoint 2013
 Developing Search-driven application in SharePoint 2013  Developing Search-driven application in SharePoint 2013
Developing Search-driven application in SharePoint 2013
SPC Adriatics
 
Kql and the content search web part
Kql and the content search web part Kql and the content search web part
Kql and the content search web part
InnoTech
 
Create a blueprint of your Farm using PowerShell with Corey Burke
Create a blueprint of your Farm using PowerShell with Corey BurkeCreate a blueprint of your Farm using PowerShell with Corey Burke
Create a blueprint of your Farm using PowerShell with Corey Burke
European SharePoint Conference
 
Search Intelligently - Liferay Symposium North America 2016, Chicago, USA
Search Intelligently - Liferay Symposium North America 2016, Chicago, USASearch Intelligently - Liferay Symposium North America 2016, Chicago, USA
Search Intelligently - Liferay Symposium North America 2016, Chicago, USA
André Ricardo Barreto de Oliveira
 
Azure DocumentDB for Healthcare Integration - Part 2
Azure DocumentDB for Healthcare Integration - Part 2Azure DocumentDB for Healthcare Integration - Part 2
Azure DocumentDB for Healthcare Integration - Part 2
BizTalk360
 
10 Things I Like in SharePoint 2013 Search
10 Things I Like in SharePoint 2013 Search10 Things I Like in SharePoint 2013 Search
10 Things I Like in SharePoint 2013 Search
SPC Adriatics
 
Elasticsearch for Autosuggest in Clojure at Workframe
Elasticsearch for Autosuggest in Clojure at WorkframeElasticsearch for Autosuggest in Clojure at Workframe
Elasticsearch for Autosuggest in Clojure at Workframe
Brian Ballantine
 
search driven intranets
search driven intranetssearch driven intranets
search driven intranets
Jeff Fried
 
2014 05-19 - getting started with office 365.release
2014 05-19 - getting started with office 365.release2014 05-19 - getting started with office 365.release
2014 05-19 - getting started with office 365.release
Dan Usher
 
SharePoint Saturday Perth 2013 - Overview of Search in SharePoint Server 201...
SharePoint Saturday Perth 2013  - Overview of Search in SharePoint Server 201...SharePoint Saturday Perth 2013  - Overview of Search in SharePoint Server 201...
SharePoint Saturday Perth 2013 - Overview of Search in SharePoint Server 201...
Sezai Komur
 
The ART of Modern Azure Deployments
The ART of Modern Azure DeploymentsThe ART of Modern Azure Deployments
The ART of Modern Azure Deployments
BizTalk360
 
How to build your own Delve: combining machine learning, big data and SharePoint
How to build your own Delve: combining machine learning, big data and SharePointHow to build your own Delve: combining machine learning, big data and SharePoint
How to build your own Delve: combining machine learning, big data and SharePoint
Joris Poelmans
 
SharePoint 2013 'Search': What you need to Know!
SharePoint 2013 'Search': What you need to Know!SharePoint 2013 'Search': What you need to Know!
SharePoint 2013 'Search': What you need to Know!
WinWire Technologies Inc
 
Working with Data in Service Workers
Working with Data in Service WorkersWorking with Data in Service Workers
Working with Data in Service Workers
Gil Fink
 
Quick start guide to java script frameworks for sharepoint apps spsbe-2015
Quick start guide to java script frameworks for sharepoint apps spsbe-2015Quick start guide to java script frameworks for sharepoint apps spsbe-2015
Quick start guide to java script frameworks for sharepoint apps spsbe-2015
Sonja Madsen
 
Search-Driven Applications with SharePoint 2013 (#SBSBE16)
Search-Driven Applications with SharePoint 2013 (#SBSBE16)Search-Driven Applications with SharePoint 2013 (#SBSBE16)
Search-Driven Applications with SharePoint 2013 (#SBSBE16)
Maximilian Melcher
 
SharePoint Framework, React, and Office UI Fabric spc adriatics 2016
SharePoint Framework, React, and Office UI Fabric spc adriatics 2016SharePoint Framework, React, and Office UI Fabric spc adriatics 2016
SharePoint Framework, React, and Office UI Fabric spc adriatics 2016
Sonja Madsen
 
SPCA2013 - Dude, Where’s my Search Scopes
SPCA2013 - Dude, Where’s my Search ScopesSPCA2013 - Dude, Where’s my Search Scopes
SPCA2013 - Dude, Where’s my Search Scopes
NCCOMMS
 
Enterprise search-sizing-ha-and-migration-path
Enterprise search-sizing-ha-and-migration-pathEnterprise search-sizing-ha-and-migration-path
Enterprise search-sizing-ha-and-migration-path
microsoftasap
 

What's hot (20)

SPUnite17 IT Pros Guide to Managing SharePoint Search
SPUnite17 IT Pros Guide to Managing SharePoint SearchSPUnite17 IT Pros Guide to Managing SharePoint Search
SPUnite17 IT Pros Guide to Managing SharePoint Search
 
Developing Search-driven application in SharePoint 2013
 Developing Search-driven application in SharePoint 2013  Developing Search-driven application in SharePoint 2013
Developing Search-driven application in SharePoint 2013
 
Kql and the content search web part
Kql and the content search web part Kql and the content search web part
Kql and the content search web part
 
Create a blueprint of your Farm using PowerShell with Corey Burke
Create a blueprint of your Farm using PowerShell with Corey BurkeCreate a blueprint of your Farm using PowerShell with Corey Burke
Create a blueprint of your Farm using PowerShell with Corey Burke
 
Search Intelligently - Liferay Symposium North America 2016, Chicago, USA
Search Intelligently - Liferay Symposium North America 2016, Chicago, USASearch Intelligently - Liferay Symposium North America 2016, Chicago, USA
Search Intelligently - Liferay Symposium North America 2016, Chicago, USA
 
Azure DocumentDB for Healthcare Integration - Part 2
Azure DocumentDB for Healthcare Integration - Part 2Azure DocumentDB for Healthcare Integration - Part 2
Azure DocumentDB for Healthcare Integration - Part 2
 
10 Things I Like in SharePoint 2013 Search
10 Things I Like in SharePoint 2013 Search10 Things I Like in SharePoint 2013 Search
10 Things I Like in SharePoint 2013 Search
 
Elasticsearch for Autosuggest in Clojure at Workframe
Elasticsearch for Autosuggest in Clojure at WorkframeElasticsearch for Autosuggest in Clojure at Workframe
Elasticsearch for Autosuggest in Clojure at Workframe
 
search driven intranets
search driven intranetssearch driven intranets
search driven intranets
 
2014 05-19 - getting started with office 365.release
2014 05-19 - getting started with office 365.release2014 05-19 - getting started with office 365.release
2014 05-19 - getting started with office 365.release
 
SharePoint Saturday Perth 2013 - Overview of Search in SharePoint Server 201...
SharePoint Saturday Perth 2013  - Overview of Search in SharePoint Server 201...SharePoint Saturday Perth 2013  - Overview of Search in SharePoint Server 201...
SharePoint Saturday Perth 2013 - Overview of Search in SharePoint Server 201...
 
The ART of Modern Azure Deployments
The ART of Modern Azure DeploymentsThe ART of Modern Azure Deployments
The ART of Modern Azure Deployments
 
How to build your own Delve: combining machine learning, big data and SharePoint
How to build your own Delve: combining machine learning, big data and SharePointHow to build your own Delve: combining machine learning, big data and SharePoint
How to build your own Delve: combining machine learning, big data and SharePoint
 
SharePoint 2013 'Search': What you need to Know!
SharePoint 2013 'Search': What you need to Know!SharePoint 2013 'Search': What you need to Know!
SharePoint 2013 'Search': What you need to Know!
 
Working with Data in Service Workers
Working with Data in Service WorkersWorking with Data in Service Workers
Working with Data in Service Workers
 
Quick start guide to java script frameworks for sharepoint apps spsbe-2015
Quick start guide to java script frameworks for sharepoint apps spsbe-2015Quick start guide to java script frameworks for sharepoint apps spsbe-2015
Quick start guide to java script frameworks for sharepoint apps spsbe-2015
 
Search-Driven Applications with SharePoint 2013 (#SBSBE16)
Search-Driven Applications with SharePoint 2013 (#SBSBE16)Search-Driven Applications with SharePoint 2013 (#SBSBE16)
Search-Driven Applications with SharePoint 2013 (#SBSBE16)
 
SharePoint Framework, React, and Office UI Fabric spc adriatics 2016
SharePoint Framework, React, and Office UI Fabric spc adriatics 2016SharePoint Framework, React, and Office UI Fabric spc adriatics 2016
SharePoint Framework, React, and Office UI Fabric spc adriatics 2016
 
SPCA2013 - Dude, Where’s my Search Scopes
SPCA2013 - Dude, Where’s my Search ScopesSPCA2013 - Dude, Where’s my Search Scopes
SPCA2013 - Dude, Where’s my Search Scopes
 
Enterprise search-sizing-ha-and-migration-path
Enterprise search-sizing-ha-and-migration-pathEnterprise search-sizing-ha-and-migration-path
Enterprise search-sizing-ha-and-migration-path
 

Similar to Introduction to Azure Search

SharePoint 2013 Search Based Solutions
SharePoint 2013 Search Based SolutionsSharePoint 2013 Search Based Solutions
SharePoint 2013 Search Based Solutions
SPC Adriatics
 
Office 365 SharePoint Search Planning
Office 365 SharePoint Search PlanningOffice 365 SharePoint Search Planning
Office 365 SharePoint Search Planning
Joel Oleson
 
Solving Real World Challenges with Enterprise Search
Solving Real World Challenges with Enterprise SearchSolving Real World Challenges with Enterprise Search
Solving Real World Challenges with Enterprise Search
SPC Adriatics
 
SharePoint NYC search presentation
SharePoint NYC search presentationSharePoint NYC search presentation
SharePoint NYC search presentation
jtbarrera
 
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
SPS Paris
 
SPSNL17 - Implementing SharePoint hybrid search, start to finish - Thomas Voc...
SPSNL17 - Implementing SharePoint hybrid search, start to finish - Thomas Voc...SPSNL17 - Implementing SharePoint hybrid search, start to finish - Thomas Voc...
SPSNL17 - Implementing SharePoint hybrid search, start to finish - Thomas Voc...
DIWUG
 
Fried dallas spug
Fried dallas spugFried dallas spug
Fried dallas spug
Jeff Fried
 
How We Incrementally Improved Search
How We Incrementally Improved SearchHow We Incrementally Improved Search
How We Incrementally Improved Search
Ravi Mynampaty
 
Fried houston spug
Fried houston spugFried houston spug
Fried houston spug
Jeff Fried
 
Search driven architecture in SharePoint
Search driven architecture in SharePointSearch driven architecture in SharePoint
Search driven architecture in SharePoint
Jim Lennox
 
2018 09-03 aOS Aachen - SharePoint demystified - Thomas Vochten
2018 09-03 aOS Aachen - SharePoint demystified - Thomas Vochten2018 09-03 aOS Aachen - SharePoint demystified - Thomas Vochten
2018 09-03 aOS Aachen - SharePoint demystified - Thomas Vochten
aOS Community
 
Candidate selection tutorial
Candidate selection tutorialCandidate selection tutorial
Candidate selection tutorial
Yiqun Liu
 
SIGIR 2017 - Candidate Selection for Large Scale Personalized Search and Reco...
SIGIR 2017 - Candidate Selection for Large Scale Personalized Search and Reco...SIGIR 2017 - Candidate Selection for Large Scale Personalized Search and Reco...
SIGIR 2017 - Candidate Selection for Large Scale Personalized Search and Reco...
Aman Grover
 
Implementing Site Search in CQ5 / AEM
Implementing Site Search in CQ5 / AEMImplementing Site Search in CQ5 / AEM
Implementing Site Search in CQ5 / AEM
rtpaem
 
Building Search Driven Applications in SharePoint 2010 - SharePoint Fest 2012
Building Search Driven Applications in SharePoint 2010 - SharePoint Fest 2012Building Search Driven Applications in SharePoint 2010 - SharePoint Fest 2012
Building Search Driven Applications in SharePoint 2010 - SharePoint Fest 2012
Nik Patel
 
SharePoint 2013 Search Operations
SharePoint 2013 Search OperationsSharePoint 2013 Search Operations
SharePoint 2013 Search Operations
SPC Adriatics
 
SharePoint Search - SPSNYC 2014
SharePoint Search - SPSNYC 2014SharePoint Search - SPSNYC 2014
SharePoint Search - SPSNYC 2014
Avtex
 
TechFuse 2013 - Break down the walls SharePoint 2013
TechFuse 2013 - Break down the walls SharePoint 2013TechFuse 2013 - Break down the walls SharePoint 2013
TechFuse 2013 - Break down the walls SharePoint 2013
Avtex
 
Fried baspug hybrid share point
Fried baspug hybrid share pointFried baspug hybrid share point
Fried baspug hybrid share point
Jeff Fried
 
Understanding and Applying Cloud Hybrid Search
Understanding and Applying Cloud Hybrid SearchUnderstanding and Applying Cloud Hybrid Search
Understanding and Applying Cloud Hybrid Search
Jeff Fried
 

Similar to Introduction to Azure Search (20)

SharePoint 2013 Search Based Solutions
SharePoint 2013 Search Based SolutionsSharePoint 2013 Search Based Solutions
SharePoint 2013 Search Based Solutions
 
Office 365 SharePoint Search Planning
Office 365 SharePoint Search PlanningOffice 365 SharePoint Search Planning
Office 365 SharePoint Search Planning
 
Solving Real World Challenges with Enterprise Search
Solving Real World Challenges with Enterprise SearchSolving Real World Challenges with Enterprise Search
Solving Real World Challenges with Enterprise Search
 
SharePoint NYC search presentation
SharePoint NYC search presentationSharePoint NYC search presentation
SharePoint NYC search presentation
 
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
 
SPSNL17 - Implementing SharePoint hybrid search, start to finish - Thomas Voc...
SPSNL17 - Implementing SharePoint hybrid search, start to finish - Thomas Voc...SPSNL17 - Implementing SharePoint hybrid search, start to finish - Thomas Voc...
SPSNL17 - Implementing SharePoint hybrid search, start to finish - Thomas Voc...
 
Fried dallas spug
Fried dallas spugFried dallas spug
Fried dallas spug
 
How We Incrementally Improved Search
How We Incrementally Improved SearchHow We Incrementally Improved Search
How We Incrementally Improved Search
 
Fried houston spug
Fried houston spugFried houston spug
Fried houston spug
 
Search driven architecture in SharePoint
Search driven architecture in SharePointSearch driven architecture in SharePoint
Search driven architecture in SharePoint
 
2018 09-03 aOS Aachen - SharePoint demystified - Thomas Vochten
2018 09-03 aOS Aachen - SharePoint demystified - Thomas Vochten2018 09-03 aOS Aachen - SharePoint demystified - Thomas Vochten
2018 09-03 aOS Aachen - SharePoint demystified - Thomas Vochten
 
Candidate selection tutorial
Candidate selection tutorialCandidate selection tutorial
Candidate selection tutorial
 
SIGIR 2017 - Candidate Selection for Large Scale Personalized Search and Reco...
SIGIR 2017 - Candidate Selection for Large Scale Personalized Search and Reco...SIGIR 2017 - Candidate Selection for Large Scale Personalized Search and Reco...
SIGIR 2017 - Candidate Selection for Large Scale Personalized Search and Reco...
 
Implementing Site Search in CQ5 / AEM
Implementing Site Search in CQ5 / AEMImplementing Site Search in CQ5 / AEM
Implementing Site Search in CQ5 / AEM
 
Building Search Driven Applications in SharePoint 2010 - SharePoint Fest 2012
Building Search Driven Applications in SharePoint 2010 - SharePoint Fest 2012Building Search Driven Applications in SharePoint 2010 - SharePoint Fest 2012
Building Search Driven Applications in SharePoint 2010 - SharePoint Fest 2012
 
SharePoint 2013 Search Operations
SharePoint 2013 Search OperationsSharePoint 2013 Search Operations
SharePoint 2013 Search Operations
 
SharePoint Search - SPSNYC 2014
SharePoint Search - SPSNYC 2014SharePoint Search - SPSNYC 2014
SharePoint Search - SPSNYC 2014
 
TechFuse 2013 - Break down the walls SharePoint 2013
TechFuse 2013 - Break down the walls SharePoint 2013TechFuse 2013 - Break down the walls SharePoint 2013
TechFuse 2013 - Break down the walls SharePoint 2013
 
Fried baspug hybrid share point
Fried baspug hybrid share pointFried baspug hybrid share point
Fried baspug hybrid share point
 
Understanding and Applying Cloud Hybrid Search
Understanding and Applying Cloud Hybrid SearchUnderstanding and Applying Cloud Hybrid Search
Understanding and Applying Cloud Hybrid Search
 

Recently uploaded

在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
mz5nrf0n
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
Remote DBA Services
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
VALiNTRY360
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
Quickdice ERP
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
Peter Muessig
 
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
kalichargn70th171
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
kalichargn70th171
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
rodomar2
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
ShulagnaSarkar2
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
Grant Fritchey
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
Peter Muessig
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
Patrick Weigel
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
Hornet Dynamics
 
Lecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptxLecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptx
TaghreedAltamimi
 
What next after learning python programming basics
What next after learning python programming basicsWhat next after learning python programming basics
What next after learning python programming basics
Rakesh Kumar R
 
Project Management: The Role of Project Dashboards.pdf
Project Management: The Role of Project Dashboards.pdfProject Management: The Role of Project Dashboards.pdf
Project Management: The Role of Project Dashboards.pdf
Karya Keeper
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
Green Software Development
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
ToXSL Technologies
 

Recently uploaded (20)

在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
 
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
 
Lecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptxLecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptx
 
What next after learning python programming basics
What next after learning python programming basicsWhat next after learning python programming basics
What next after learning python programming basics
 
Project Management: The Role of Project Dashboards.pdf
Project Management: The Role of Project Dashboards.pdfProject Management: The Role of Project Dashboards.pdf
Project Management: The Role of Project Dashboards.pdf
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
 

Introduction to Azure Search

  • 1. April 16 Introduction to Azure Search Radoslav Gatev Software Consultant@Accedia bg.linkedin.com/in/radoslavgatev
  • 2. Why Search Is Important?
  • 3. Why Search Is Important?
  • 4. Azure Search A search-as-a-service solution allowing developers to incorporate great search experiences into applications without managing infrastructure or needing to become search experts.
  • 5. Scenarios If an app offers lots of content your users will be more effective searching instead of browsing • Ecommerce • Social content • Line-of-business applications
  • 8. 1. Provisioning Search Services Search service is: • Scope of capacity, billing, authentication • Managed through the portal or management API • May have one or more indexes • Service name -> API root URL https://mysvc.search.windows.net
  • 9. 2. Defining indexes Search index is: • A searchable collection of documents • Has a schema • Has various options, e.g. scoring profiles, CORS • Index name -> API URL: https://mysvc.search.windows.net/indexes/myindex
  • 10. Index schema List of fields and their configuration: • Data types: string, int, double, datetime, boolean, geo-point • Single valued or collections Each field can be used for: • Search • Suggestions • Filters • Sorting • Facets • Results
  • 11. API: Create an index POST /indexes/myindex?api-version=2015-02-28-Preview Host: mysvc.search.windows.net api-key: [YOUR_ADMIN_KEY] Content-Type: application/json { "fields": [ {"name": "placeId","type": "Edm.String", "key": true}, {"name": "nameBg", "type": "Edm.String"}, {"name": "type", "type": "Edm.String" } ], "corsOptions": { "allowedOrigins": [ "*" ] } }
  • 12. 3. Indexing data • Data is indexed in batches o Up to 1000 operations: upload, merge, delete or mergeOrUpload o POST to …/indexes/myindex/docs/index • A success response ensures durability o Client needs to check response body for individual operation status • Data will be searchable a few seconds later o The data must be indexed, depends on how busy the system is
  • 13. API: Batch Upload POST /indexes/myindex/docs/index?api-version=2015-02-28 Host: mysvc.search.windows.net api-key: [YOUR_ADMIN_KEY] Content-Type: application/json { "value": [ { "@search.action": "upload", "placeId": "3620764888", "nameBg": "Университет по ...", "placeType": "university", ... }, ... ] }
  • 14. Indexing approaches • Push o .NET SDK o REST API • Pull o Azure SQL Database o SQL Server hosted in Azure VM o DocumentDB o Blob Storage
  • 15. 4. Searching • Scope for search is an index • The search API offers a number of options o Full-text search including user-friendly operators o Query support: strict filters, sorting, paging and field selection o Faceting o Hit highlighting • Results include scores plus requested fields
  • 16. API: Search • Simple search: …/docs/search=your search query goes there • Search with a strict filter: …/docs?search=Sofia&$filter=placeType eq ‘university' • Search with sorting, paging, field selection: …/docs?search=Sofia&$orderby=nameBg asc& $top=5&$select=nameBg • Faceting: …/docs?search=Sofia&facet=placeType • Hit highlighting: …/docs?search=Sofia&highlight=nameEn
  • 17. Geospatial Search • Search in documents within X km of my location • Sort results by distance from my location • Search for documents within a given polygon
  • 18. Search Suggestions • Building block for auto-complete • Tricky balance of speed and features • Suggestions come from document data
  • 19. 5. Tuning • Default: scoring based on text relevance • Scoring profiles for tuning scores o Field weights: relative importance of fields o Scoring functions: describe what matters to you • One or more scoring profiles for different scenarios
  • 20. PlaceFinder • Indexed Open Street Map for Sofia • Used Azure SQL indexer which is powered by a view • Used technologies: o ASP.NET Web API o Azure Search .NET SDK o KnockoutJS • Project repository: https://github.com/RadoslavGatev/PlaceFinder
  • 21. Scaling Partitions (more documents, more storage, parallelism) 1, 2, 3, 4, 6, 12 Replicas (morequeries,moreHA) 1-12 R x P <= 36
  • 22. Service tiers * Minimum two replicas for read-SLA, three replicas for read-write-SLA ** Can be increased by calling Azure support Service tier Free Basic(Preview) Standard S1 Availability SLA No Yes* Yes* Max documents 10,000 1 million 180** million (15 million/partition) Max partitions N/A 1 12 Max replicas N/A 3 12 Max storage 50 MB 2 GB 300** GB (25 GB/partition)
  • 23. A few ideas • Use cache-aside pattern and Redis Cache o Reduce monetary costs o Maintain high availability • Multi-service scaling o Use load balancing o Prevent whole-region failures o Handle extreme search workloads
  • 24.
  • 25. Upcoming events SQLSaturday #519 in may! http://www.sqlsaturday.com/519/
  • 26. Thanks to our Sponsors: Global Sponsor: Platinum Sponsors: Swag Sponsors: Media Partners: With the support of: