SlideShare une entreprise Scribd logo
1  sur  35
Azure Search Deep Dive
Gunnar Peipman
ASP.NET/IIS MVP
http://gunnarpeipman.com
Agenda
• Introduction to search
• Search in Microsoft world
• Planning for search
• Azure Search demos
Introduction to search
Two types of people
1. Navigation people
2. Search people
Q: What do navigation people with search?
A: They type in their favorite link catalog URL, search for it and then
start navigating again
Search over time
• Simple search scripts
• Database search
• Search engines
• NoSQL
• Search services
Components of search systems
• Crawler – in web systems finds resources to index
• Indexer – adds found resources to search index
• Analyzis – performs analyzis of on indexed content
• Query – performs search and returns results
Search in Microsoft world
Search technologies this far
• Desktop search – indexes desktop content (files, mailboxes, media)
• Bing – web search
• SharePoint search – search from enterprise data, web, and LOB
systems
Azure Search
• Desktop search – doesn’t scale
• Bing – oriented to web
• SharePoint Search – extremely powerful but expensive
• Azure Search – lightweight custom search offered as a service
Elastic in the cloud?
• Built on top of Elastic Search
• Still it is not cloud-hosted Elastic Search
• Azure Search has its own JSON-based API-s
Planning for search
Tips’n’tricks
• Search index must contain only two types of data:
• Data to search
• Data to display results
• Analyze what data is minimally needed for search
• Often search index is flat presentation of some domain classes
• If needed use more than one index
• Don’t allow users to come out with requirement „search for
everything“ – visualize them what everything means
Creating search index
Creating search index
• Join Microsoft Azure
• Create free or paid Azure Search service
• Use one of these to create search indices:
• Use Azure Preview Portal
• Use Azure Search library (full .NET only)
• Use plain JSON requests (full .NET and CoreCLR)
• Configure indices
Managing search index
Managing index
• Update index after insert, update and delete
• Update index after related data is changed
• Support indexing from data sources
• Make it easy to refresh all items in index
• Keep users away from Azure portal and JSON
I want indexing to be easy
and automated process
Managing search index
Single product scenario:
1. Product changed
2. Detect change type
3. Update index
This flow can be implemented behind inser, update and delete
operations.
Managing search index
Multiple product scenario:
1. Query for products to index
2. Save changes to index with up to 16K batches
Do this when:
1. Product category name changes
2. Products in category have some new attribute
3. Products for query are changed
Managing search index
All products scenario:
1. Create query to retrieve all products
2. Use paging to keep load normal
3. Send changes for page to index
4. You may want to write console application or service for this
Do this when:
1. You need to re-create search index
2. Big number of products have changed and there’s no query for detecting
changed products
Demo
Updating products in Azure Search
Demo
Searching from index
Demo
Paging
Paging scenario
• Support different search providers:
• Azure Search
• Search from SQL Server
• SharePoint Search
• Custom NoSQL database
• Search clients should know nothing
about current search provider
• We need one query and one
response class to keep clients away
from details
Paging
• Azure Search supports paging
• PagedResult<T> - my construct for all pagings
• Base class – carries data also to pagers in UI
• Generic class – carries typed results to callers
• Query class and PagedResult classes are the only data
transfer mechanism between layers
Demo
Scoring profiles
Scoring profiles
• Scoring profiles help search to rank results
• Scoring types:
• Weights – how importamt is match for fields
• Freshness – how new or old item is
• Magnitude – how high or low numeric value is
• Distance – proximity and geographic location
• Function aggregation:
• Sum
• Average
• Minimum
• Maximum
• One scoring profile per search request!
I want to get acurate
results when searching
products
Demo
Faceted navigation
Faceted navigation
• Facets are those blocks on listings where
visitors can set additional filters
• Example: price range, manufacturers, flight
companies etc
I want simple filters to
narrow down search
results
Demo
Suggesters
Suggesters
• Suggester is „lightweight search“
• Used to look up results from search index
• Works well for auto-complete search boxes
Sometimes I want
suggestions when typing
phrase to search box
Demo
Tag boosting
Tag boosting
• Add groups of tags to products
• Each group can boost up search results rank
for given products
• Example: based on customer preferences
boost up the rank of specific brands
I always want to see my
favorite products first in
listings
Indexers
Indexers
• Automated index updates
• Build queries
• Define data sources
• Define indexers
• If needed run on schedulers
Can I skip coding and
import fresh data to index
from data source?
Thanks

Contenu connexe

Tendances

Effective Searching by Dominik Kornas
Effective Searching by Dominik KornasEffective Searching by Dominik Kornas
Effective Searching by Dominik Kornas
AEM HUB
 
Intro to Lucidworks Fusion - Esther Quansah & Kord Campbell, Lucidworks
Intro to Lucidworks Fusion - Esther Quansah & Kord Campbell, LucidworksIntro to Lucidworks Fusion - Esther Quansah & Kord Campbell, Lucidworks
Intro to Lucidworks Fusion - Esther Quansah & Kord Campbell, Lucidworks
Lucidworks
 
Deep Dive into the Content Query Web Part by Christina Wheeler - SPTechCon
Deep Dive into the Content Query Web Part by Christina Wheeler - SPTechConDeep Dive into the Content Query Web Part by Christina Wheeler - SPTechCon
Deep Dive into the Content Query Web Part by Christina Wheeler - SPTechCon
SPTechCon
 

Tendances (20)

Implementing Site Search in CQ5 / AEM
Implementing Site Search in CQ5 / AEMImplementing Site Search in CQ5 / AEM
Implementing Site Search in CQ5 / AEM
 
New Ways of (Web) Content Management
New Ways of (Web) Content ManagementNew Ways of (Web) Content Management
New Ways of (Web) Content Management
 
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
 
Effective Searching by Dominik Kornas
Effective Searching by Dominik KornasEffective Searching by Dominik Kornas
Effective Searching by Dominik Kornas
 
SharePoint and Office 365 Performance Best Practices
SharePoint and Office 365 Performance Best PracticesSharePoint and Office 365 Performance Best Practices
SharePoint and Office 365 Performance Best Practices
 
Share point 2013 new and improved
Share point 2013 new and improvedShare point 2013 new and improved
Share point 2013 new and improved
 
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
 
Intro to Lucidworks Fusion - Esther Quansah & Kord Campbell, Lucidworks
Intro to Lucidworks Fusion - Esther Quansah & Kord Campbell, LucidworksIntro to Lucidworks Fusion - Esther Quansah & Kord Campbell, Lucidworks
Intro to Lucidworks Fusion - Esther Quansah & Kord Campbell, Lucidworks
 
SharePoint 2013 Search
SharePoint 2013 SearchSharePoint 2013 Search
SharePoint 2013 Search
 
Ektron London Conference: New Search Features in Ektron 9
Ektron London Conference: New Search Features in Ektron 9Ektron London Conference: New Search Features in Ektron 9
Ektron London Conference: New Search Features in Ektron 9
 
Intresting changes in mongo 2.6
Intresting changes in mongo 2.6Intresting changes in mongo 2.6
Intresting changes in mongo 2.6
 
ECS2019 - Managing Content Types in the Modern World
ECS2019 - Managing Content Types in the Modern WorldECS2019 - Managing Content Types in the Modern World
ECS2019 - Managing Content Types in the Modern World
 
Fusion on Kubernetes - Alan Eugenio & Joe Streeky, Lucidworks
Fusion on Kubernetes - Alan Eugenio & Joe Streeky, LucidworksFusion on Kubernetes - Alan Eugenio & Joe Streeky, Lucidworks
Fusion on Kubernetes - Alan Eugenio & Joe Streeky, Lucidworks
 
Webinar: Fusion 2.3 Preview - Enhanced Features with Solr & Spark
Webinar: Fusion 2.3 Preview - Enhanced Features with Solr & SparkWebinar: Fusion 2.3 Preview - Enhanced Features with Solr & Spark
Webinar: Fusion 2.3 Preview - Enhanced Features with Solr & Spark
 
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
 
Synapse india reviews on share point development
Synapse india reviews on share point developmentSynapse india reviews on share point development
Synapse india reviews on share point development
 
Deep Dive into the Content Query Web Part by Christina Wheeler - SPTechCon
Deep Dive into the Content Query Web Part by Christina Wheeler - SPTechConDeep Dive into the Content Query Web Part by Christina Wheeler - SPTechCon
Deep Dive into the Content Query Web Part by Christina Wheeler - SPTechCon
 
Asp objects
Asp objectsAsp objects
Asp objects
 
HAL APIs and Ember Data
HAL APIs and Ember DataHAL APIs and Ember Data
HAL APIs and Ember Data
 
Search UI and Lucidworks View: Presented by Josh Ellinger, Lucidworks
Search UI and Lucidworks View: Presented by Josh Ellinger, LucidworksSearch UI and Lucidworks View: Presented by Josh Ellinger, Lucidworks
Search UI and Lucidworks View: Presented by Josh Ellinger, Lucidworks
 

Similaire à Deep-Dive to Azure Search

RecSys 2015 Tutorial - Scalable Recommender Systems: Where Machine Learning m...
RecSys 2015 Tutorial - Scalable Recommender Systems: Where Machine Learning m...RecSys 2015 Tutorial - Scalable Recommender Systems: Where Machine Learning m...
RecSys 2015 Tutorial - Scalable Recommender Systems: Where Machine Learning m...
Joaquin Delgado PhD.
 
RecSys 2015 Tutorial – Scalable Recommender Systems: Where Machine Learning...
 RecSys 2015 Tutorial – Scalable Recommender Systems: Where Machine Learning... RecSys 2015 Tutorial – Scalable Recommender Systems: Where Machine Learning...
RecSys 2015 Tutorial – Scalable Recommender Systems: Where Machine Learning...
S. Diana Hu
 
How did it go? The first large enterprise search project in Europe using Shar...
How did it go? The first large enterprise search project in Europe using Shar...How did it go? The first large enterprise search project in Europe using Shar...
How did it go? The first large enterprise search project in Europe using Shar...
Petter Skodvin-Hvammen
 

Similaire à Deep-Dive to Azure Search (20)

SharePoint Search - SPSNYC 2014
SharePoint Search - SPSNYC 2014SharePoint Search - SPSNYC 2014
SharePoint Search - SPSNYC 2014
 
SharePoint 2013 Search Operations
SharePoint 2013 Search OperationsSharePoint 2013 Search Operations
SharePoint 2013 Search Operations
 
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
 
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
 
RecSys 2015 Tutorial - Scalable Recommender Systems: Where Machine Learning m...
RecSys 2015 Tutorial - Scalable Recommender Systems: Where Machine Learning m...RecSys 2015 Tutorial - Scalable Recommender Systems: Where Machine Learning m...
RecSys 2015 Tutorial - Scalable Recommender Systems: Where Machine Learning m...
 
RecSys 2015 Tutorial – Scalable Recommender Systems: Where Machine Learning...
 RecSys 2015 Tutorial – Scalable Recommender Systems: Where Machine Learning... RecSys 2015 Tutorial – Scalable Recommender Systems: Where Machine Learning...
RecSys 2015 Tutorial – Scalable Recommender Systems: Where Machine Learning...
 
Lab EPiServer Find - Advanced developer scenarios
Lab EPiServer Find - Advanced developer scenariosLab EPiServer Find - Advanced developer scenarios
Lab EPiServer Find - Advanced developer scenarios
 
Fried houston spug
Fried houston spugFried houston spug
Fried houston spug
 
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
 
CREATE SEARCH DRIVEN BUSINESS INTELLIGENCE APPLICATION USING FAST SEARCH FO...
CREATE SEARCH DRIVEN BUSINESS  INTELLIGENCE APPLICATION USING  FAST SEARCH FO...CREATE SEARCH DRIVEN BUSINESS  INTELLIGENCE APPLICATION USING  FAST SEARCH FO...
CREATE SEARCH DRIVEN BUSINESS INTELLIGENCE APPLICATION USING FAST SEARCH FO...
 
Evaluation of web scale discovery services
Evaluation of web scale discovery servicesEvaluation of web scale discovery services
Evaluation of web scale discovery services
 
Getting Started with Elasticsearch
Getting Started with ElasticsearchGetting Started with Elasticsearch
Getting Started with Elasticsearch
 
SharePoint 2013 Search Based Solutions
SharePoint 2013 Search Based SolutionsSharePoint 2013 Search Based Solutions
SharePoint 2013 Search Based Solutions
 
How did it go? The first large enterprise search project in Europe using Shar...
How did it go? The first large enterprise search project in Europe using Shar...How did it go? The first large enterprise search project in Europe using Shar...
How did it go? The first large enterprise search project in Europe using Shar...
 
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
 
Test driving Azure Search and DocumentDB
Test driving Azure Search and DocumentDBTest driving Azure Search and DocumentDB
Test driving Azure Search and DocumentDB
 
Scoping a Successful SharePoint 2016 Hybrid Search Implementation
Scoping a Successful SharePoint 2016 Hybrid Search ImplementationScoping a Successful SharePoint 2016 Hybrid Search Implementation
Scoping a Successful SharePoint 2016 Hybrid Search Implementation
 
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...
 
Everything You Wish You Knew About Search
Everything You Wish You Knew About SearchEverything You Wish You Knew About Search
Everything You Wish You Knew About Search
 

Plus de Gunnar Peipman

Working with legacy code
Working with legacy codeWorking with legacy code
Working with legacy code
Gunnar Peipman
 

Plus de Gunnar Peipman (10)

Multi-tenant web applications with ASP.NET Core
Multi-tenant web applications with ASP.NET CoreMulti-tenant web applications with ASP.NET Core
Multi-tenant web applications with ASP.NET Core
 
Brewing Eisbock with Raspberry PI and Windows 10 IoT
Brewing Eisbock with Raspberry PI and Windows 10 IoTBrewing Eisbock with Raspberry PI and Windows 10 IoT
Brewing Eisbock with Raspberry PI and Windows 10 IoT
 
Deep-Dive to Application Insights
Deep-Dive to Application Insights Deep-Dive to Application Insights
Deep-Dive to Application Insights
 
What's new in ASP.NET vNext
What's new in ASP.NET vNextWhat's new in ASP.NET vNext
What's new in ASP.NET vNext
 
Porting ASP.NET applications to Windows Azure
Porting ASP.NET applications to Windows AzurePorting ASP.NET applications to Windows Azure
Porting ASP.NET applications to Windows Azure
 
Working with legacy code
Working with legacy codeWorking with legacy code
Working with legacy code
 
ASP.NET MVC 4 Overview
ASP.NET MVC 4 OverviewASP.NET MVC 4 Overview
ASP.NET MVC 4 Overview
 
Building SharePoint Online applications using Napa Office 365 Development Tools
Building SharePoint Online applications using Napa Office 365 Development ToolsBuilding SharePoint Online applications using Napa Office 365 Development Tools
Building SharePoint Online applications using Napa Office 365 Development Tools
 
Optimizing public facing SharePoint sites
Optimizing public facing SharePoint sitesOptimizing public facing SharePoint sites
Optimizing public facing SharePoint sites
 
Architecting ASP.NET MVC Applications
Architecting ASP.NET MVC ApplicationsArchitecting ASP.NET MVC Applications
Architecting ASP.NET MVC Applications
 

Dernier

%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 

Dernier (20)

%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 

Deep-Dive to Azure Search

  • 1. Azure Search Deep Dive Gunnar Peipman ASP.NET/IIS MVP http://gunnarpeipman.com
  • 2. Agenda • Introduction to search • Search in Microsoft world • Planning for search • Azure Search demos
  • 4. Two types of people 1. Navigation people 2. Search people Q: What do navigation people with search? A: They type in their favorite link catalog URL, search for it and then start navigating again
  • 5. Search over time • Simple search scripts • Database search • Search engines • NoSQL • Search services
  • 6. Components of search systems • Crawler – in web systems finds resources to index • Indexer – adds found resources to search index • Analyzis – performs analyzis of on indexed content • Query – performs search and returns results
  • 8. Search technologies this far • Desktop search – indexes desktop content (files, mailboxes, media) • Bing – web search • SharePoint search – search from enterprise data, web, and LOB systems
  • 9. Azure Search • Desktop search – doesn’t scale • Bing – oriented to web • SharePoint Search – extremely powerful but expensive • Azure Search – lightweight custom search offered as a service
  • 10. Elastic in the cloud? • Built on top of Elastic Search • Still it is not cloud-hosted Elastic Search • Azure Search has its own JSON-based API-s
  • 12. Tips’n’tricks • Search index must contain only two types of data: • Data to search • Data to display results • Analyze what data is minimally needed for search • Often search index is flat presentation of some domain classes • If needed use more than one index • Don’t allow users to come out with requirement „search for everything“ – visualize them what everything means
  • 14. Creating search index • Join Microsoft Azure • Create free or paid Azure Search service • Use one of these to create search indices: • Use Azure Preview Portal • Use Azure Search library (full .NET only) • Use plain JSON requests (full .NET and CoreCLR) • Configure indices
  • 16. Managing index • Update index after insert, update and delete • Update index after related data is changed • Support indexing from data sources • Make it easy to refresh all items in index • Keep users away from Azure portal and JSON I want indexing to be easy and automated process
  • 17. Managing search index Single product scenario: 1. Product changed 2. Detect change type 3. Update index This flow can be implemented behind inser, update and delete operations.
  • 18. Managing search index Multiple product scenario: 1. Query for products to index 2. Save changes to index with up to 16K batches Do this when: 1. Product category name changes 2. Products in category have some new attribute 3. Products for query are changed
  • 19. Managing search index All products scenario: 1. Create query to retrieve all products 2. Use paging to keep load normal 3. Send changes for page to index 4. You may want to write console application or service for this Do this when: 1. You need to re-create search index 2. Big number of products have changed and there’s no query for detecting changed products
  • 23. Paging scenario • Support different search providers: • Azure Search • Search from SQL Server • SharePoint Search • Custom NoSQL database • Search clients should know nothing about current search provider • We need one query and one response class to keep clients away from details
  • 24. Paging • Azure Search supports paging • PagedResult<T> - my construct for all pagings • Base class – carries data also to pagers in UI • Generic class – carries typed results to callers • Query class and PagedResult classes are the only data transfer mechanism between layers
  • 26. Scoring profiles • Scoring profiles help search to rank results • Scoring types: • Weights – how importamt is match for fields • Freshness – how new or old item is • Magnitude – how high or low numeric value is • Distance – proximity and geographic location • Function aggregation: • Sum • Average • Minimum • Maximum • One scoring profile per search request! I want to get acurate results when searching products
  • 28. Faceted navigation • Facets are those blocks on listings where visitors can set additional filters • Example: price range, manufacturers, flight companies etc I want simple filters to narrow down search results
  • 30. Suggesters • Suggester is „lightweight search“ • Used to look up results from search index • Works well for auto-complete search boxes Sometimes I want suggestions when typing phrase to search box
  • 32. Tag boosting • Add groups of tags to products • Each group can boost up search results rank for given products • Example: based on customer preferences boost up the rank of specific brands I always want to see my favorite products first in listings
  • 34. Indexers • Automated index updates • Build queries • Define data sources • Define indexers • If needed run on schedulers Can I skip coding and import fresh data to index from data source?

Notes de l'éditeur

  1. Show how paged result is implemented on NHibernate/MSSQL Show how paged result is implemented for Azure Search Make a demo
  2. Show default results for „oak“ (UI and VS) Comment out scoring profile in search client Show default results for „oak“ again (UI and VS)