際際滷

際際滷Share a Scribd company logo
Microsoft Azure Search
karthik-jambulingam@karthikjamkarthik-jambulingam.com
Karthik Jambulingam
Hit Highlight
Full Text Search
Wildcard Search
Synonyms
Ranking
Facets
Filters
Spelling Correction
Scoped Search
Type-ahead
Paging
Sorting/ Relevance
Facets
Microsoft Azure Search
Geospatial
Search Experience Is Important
Visitors abandon a site due to
poor search experience
Customers like to discover
products through search
Revenue driven by site search
Search Experience Is Important
Discover more
Buy more
Self serve with ease
Serve customers better
Do more
Highly productive
Higher customer satisfaction
More conversion
Less operation cost
Microsoft Azure Search
Azure Search
Fully-managed service
Standup and run quickly
Highly available  99.9% SLA
High performance / reduced latency
Analytics  Monitoring and Reporting
Rich search capabilities
Apache Lucene framework
Microsoft Natural language processor
Simplicity and Flexibility
Various data sources
Portal, REST API, SDKs
Azure Search Components
Desktop
Mobile
Web
API
Azure Search Service
Data
Source
IndexerIndex
Azure Storage
Supported Data Sources
Development Platforms
 Central management
 Setup resources
 Prototype
 Search Explorer
 Service administration
 Index management operations
 Document operations
 Indexer Operations
 Index management operations
 Document operations
 Indexer Operations
Microsoft Azure Search
Azure Search Service
Search EngineQuery Parsers
Application
Interface
AnalyzersIntent
OData
Expression
(Query)
Query
Terms
Analyzed
Tokens
Results
Search Processing
 Full (Lucene)
Or
 Simple
Lexical Analysis
 Char Filters
 Word Break
 Lower Case
 Ascii folding
 Wildcard
 Diacritics
 Custom Analyzers
 Document Retrieval
 Scoring
 .NET SDK
Or
 REST API
Search Parameters
SearchIndexClient indexClient = new SearchIndexClient("SearchServiceName", "IndexName", new SearchCredentials("Api-key"));
var searchParameters = new SearchParameters()
{
QueryType = QueryType.Full, // or Simple
SearchFields = new[] { "Category", "description", "Color", "ListPrice" },
Filter = "(Color eq 'Black' or search.in(Size, '52,48')) and Suppliers/any(s: s eq '103|Orange Inc')",
Facets = new[] { "Category", "Color", "Size" },
IncludeTotalResultCount = true,
HighlightPreTag = "<b>",
HighlightPostTag = "</b>",
HighlightFields = new[] { "description" },
ScoringProfile = "DefaultRelevancy",
OrderBy = new[] { "ListPrice" },
Top = 10,
Skip = 30
};
var searchResults = indexClient.Documents.Search<ProductSearchResult>("aluminium alloy", searchParameters);
Supported Data Types
 Edm.String
 Collection(Edm.String)
 Edm.Boolean
 Edm.DateTimeOffset
 Edm.GeographyPoint
EDM Data Types
 Edm.Boolean
 Edm.Int32
 Edm.Int64
 Edm.Double
Microsoft Azure Search
Index Builder
Keep it separate
Automate
Deploy ahead of time
No swap, stage index
Use portal for drop
Azure Search Service
Data
Source
IndexerIndex
Index Builder
2 3 1
Incremental Indexing
ISearchIndexClient indexClient =
serviceClient.Indexes.GetClient("myshopproducts");
var actions =
new IndexAction<Product>[]
{
IndexAction.Upload(
new Product()
{
ProductID = "709",
ListPrice = 199.0,
Description = "Combination .
Category = "Socks",
ModelName = "Mountain Bike Socks",
...
}),
IndexAction.Upload(
new Product()
{
...
var batch = IndexBatch.New(actions);
indexClient.Documents.Index(batch);
Azure Search Service
Data
Source
IndexerIndex
The Process
Incremental Update
Azure Storage
Suggester / Type-ahead
{
"name": "myshopproducts",
"fields": [
. . .
],
"suggesters": [
{
"name": "product-name-suggester",
"searchMode": "analyzingInfixMatching",
"sourceFields": ["ProductName"]
}
],
"scoringProfiles": [
. . .
]
}
Scalability
Pricing
Microsoft Azure Search
Microsoft Azure Search

More Related Content

Microsoft Azure Search

  • 3. Hit Highlight Full Text Search Wildcard Search Synonyms Ranking
  • 9. Search Experience Is Important Visitors abandon a site due to poor search experience Customers like to discover products through search Revenue driven by site search
  • 10. Search Experience Is Important Discover more Buy more Self serve with ease Serve customers better Do more Highly productive Higher customer satisfaction More conversion Less operation cost
  • 12. Azure Search Fully-managed service Standup and run quickly Highly available 99.9% SLA High performance / reduced latency Analytics Monitoring and Reporting Rich search capabilities Apache Lucene framework Microsoft Natural language processor Simplicity and Flexibility Various data sources Portal, REST API, SDKs
  • 13. Azure Search Components Desktop Mobile Web API Azure Search Service Data Source IndexerIndex Azure Storage
  • 15. Development Platforms Central management Setup resources Prototype Search Explorer Service administration Index management operations Document operations Indexer Operations Index management operations Document operations Indexer Operations
  • 17. Azure Search Service Search EngineQuery Parsers Application Interface AnalyzersIntent OData Expression (Query) Query Terms Analyzed Tokens Results Search Processing Full (Lucene) Or Simple Lexical Analysis Char Filters Word Break Lower Case Ascii folding Wildcard Diacritics Custom Analyzers Document Retrieval Scoring .NET SDK Or REST API
  • 18. Search Parameters SearchIndexClient indexClient = new SearchIndexClient("SearchServiceName", "IndexName", new SearchCredentials("Api-key")); var searchParameters = new SearchParameters() { QueryType = QueryType.Full, // or Simple SearchFields = new[] { "Category", "description", "Color", "ListPrice" }, Filter = "(Color eq 'Black' or search.in(Size, '52,48')) and Suppliers/any(s: s eq '103|Orange Inc')", Facets = new[] { "Category", "Color", "Size" }, IncludeTotalResultCount = true, HighlightPreTag = "<b>", HighlightPostTag = "</b>", HighlightFields = new[] { "description" }, ScoringProfile = "DefaultRelevancy", OrderBy = new[] { "ListPrice" }, Top = 10, Skip = 30 }; var searchResults = indexClient.Documents.Search<ProductSearchResult>("aluminium alloy", searchParameters);
  • 19. Supported Data Types Edm.String Collection(Edm.String) Edm.Boolean Edm.DateTimeOffset Edm.GeographyPoint EDM Data Types Edm.Boolean Edm.Int32 Edm.Int64 Edm.Double
  • 21. Index Builder Keep it separate Automate Deploy ahead of time No swap, stage index Use portal for drop Azure Search Service Data Source IndexerIndex Index Builder 2 3 1
  • 22. Incremental Indexing ISearchIndexClient indexClient = serviceClient.Indexes.GetClient("myshopproducts"); var actions = new IndexAction<Product>[] { IndexAction.Upload( new Product() { ProductID = "709", ListPrice = 199.0, Description = "Combination . Category = "Socks", ModelName = "Mountain Bike Socks", ... }), IndexAction.Upload( new Product() { ... var batch = IndexBatch.New(actions); indexClient.Documents.Index(batch); Azure Search Service Data Source IndexerIndex The Process Incremental Update Azure Storage
  • 23. Suggester / Type-ahead { "name": "myshopproducts", "fields": [ . . . ], "suggesters": [ { "name": "product-name-suggester", "searchMode": "analyzingInfixMatching", "sourceFields": ["ProductName"] } ], "scoringProfiles": [ . . . ] }

Editor's Notes

  1. Apache Lucene search engine library
  2. Demo1 Portal Create resources Search Explorer Demo 2 Rest API (PostMan)
  3. Query parsers -Separate query terms from query operators and create the query structure (Simple or Full) Analyzers - Perform lexical analysis on query terms (word breaking, ascii folding, lower casing, custom analysis) Scoring
  4. Query parsers -Separate query terms from query operators and create the query structure (Simple or Full) Analyzers - Perform lexical analysis on query terms (word breaking, ascii folding, lower casing, custom analysis) Scoring