SlideShare uma empresa Scribd logo
1 de 29
ELASTICSEARCH
& AZURE & EPISERVER
CASE: EVIRA
Elastic Meetup 4.4.2017
Mikko Huilaja
AGENDA
› Case Evira
› Environments & Cloud
› CMS and Elasticsearch combination
› More practical stuff
CASE EVIRA
CASE: EVIRA
› Evira is Finnish Food Safety Authority.
• Lots of official documentation
• Lots of content editors
• Contains mostly text, documents, forms and table data
• Low amount of images and rich content
› Same project contains also intranet for Evira. So the same
architecture was required to work with intranet case also.
WWW.EVIRA.FI
Go and test the search!
Search with URL
-parameters
Facet groups
Ordering
Search word
highlights
Customizable
search results
Did you mean this
-feature
Filters and
Facets
Easily
customizable
facets
Fallback wildcard search
File search
for most common
document types
ARCHITECTURE
KEY COMPONENTS: E&A&E
› Elasticsearch (Search and performance)
• Global search and efficient way to query large data sets with full-text
support
› Azure (Cloud platform and scale)
• Azure contains all the environments, files, data, backups, monitoring,
maintenance jobs, etc.
› Episerver CMS (Content editing, UI and master data store)
• Platform for content editing with many languages, versioning, document
bank, metadata, etc.
• Master data and primary data source for Elasticsearch
CUSTOMIZABLE PLATFORM
› Elasticsearch
• From the smallest to very large projects
• Runs locally your laptop, buy it from the cloud or private data center
› Azure Cloud
• From the smallest to very large projects
• IaaS and PaaS options
› Episerver CMS
• From medium size to very large projects
• Easily customizable front-end and pluggable/extendable back-end
On premise / Private cloudAzure IaaS on virtual
machines (one or many)
Developer’s laptop
IIS Web
Server
SETUP OPTIONS
PaaS on Azure App Services
and Elastic Cloud
SEARCH VM
Elasticsearch
Web Site
SQL Database
Blob Storage
Elasticsearch
Web
ServerWeb Server
SQL Server
ELASTIC IS NOT JUST FOR SEARCH
› It’s a performance tool. It makes querying large data sets much more
efficient than tools like SQL Server or many other search tools
› We use Elastic:
› Global search
› Internal searches and listings:
Products news, announcements,
comments, Files, RSS, sitemap
› Handling a large datasets. Example
some migrations.
› Analytics and statistics
• Site visitor analytics
• Search usage analytics
› 404 statistics
› Error logging and log analyzing
› Monitoring servers
Full-text search, Listings, performance Analytics, statistics
NOT A CRAWLER
› We have integrated Elasticsearch to events of Episerver
› Real-time (1 or 2 seconds latency)
• Long latencies often cause multiple other problems
› We can send more data than what’s visible (example access rights)
Real-time is really hard gain
if it’s not built into the architecture
CQRS = COMMAND QUERY
RESPONSIBILITY SEGREGATION
CQRS WITH CMS (TRADITIONAL FORMAT)
Commands
Queries
SQL Server
database
Elasticsearch
Index
Web Site
Episerver CMS
Elasticsearch
CQRS WITH CMS (AS WE USE IT)
Commands
Queries
Elasticsearch
Index
Web Site
Episerver CMS
Elasticsearch
Simple Queries
Episerver CMS
SQL Server
database
CQRS WITH CMS (AS EPISERVER FIND USE IT)
Commands
Queries
Episerver Find
Index
Web Site
Episerver CMS
Elasticsearch
Simple Queries
Episerver CMS
SQL Server
database
returns only
the id’s
WHY ELASTIC WITH CMS
› Content Management Systems are generally good for managing
content, files, content relations, hierarchy, language variations,
content versions, access rights, user management, model type
management and CACHING
› They often have hierarchical structure of handling content
› So querying a page and querying parent or child pages often
comes straight from the cache and does not even make a database
query.
› But CMS often do not include good tools querying across hierarchies
CHOOSE THE BEST TOOL
› Use Episerver/CMS for simple queries
• If you need to query: just one object, sibling objects or child objects from
less than 2 hierarchy levels
› Use Elasticsearch
• Everything else
› Except don’t use Elasticsearch:
• If 1-2 second latency is too much
• If there is some transactions requirements
ELASTIC INDEX = QUERY DATABASE
› We can always recreate elastic index
from SQL Server “master data”
› That’s why we don’t really need
multiple nodes or chards
Get all the data
Elasticsearch
Index
Episerver CMS
SQL Server
database
Reindex
ELASTICSEARCH.NET & NEST
› Official .NET Elasticsearch clients
› ElasticSearch.NET & NEST makes
the usage strongly typed:
• No JSON
• No typos
• Every value has a type
• IDE will help you
• Not like JavaScript
var response = client.Search<Tweet>(s => s
.From(0)
.Size(10)
.Query(q =>
q.Term(t => t.HashTags, "elasticsearch")
)
);
public class Tweet
{
public string[] HasTags;
...
}
› Code example:
MAPPINGS ARE LIKE SCHEMA IN DB
› NEST will automatically map most of the types
but not all:
› Separate string types:
• Text (analyzed)
default type for strings
• Keywords (not analyzed)
Keyword fields are only searchable by their exact value
› Automating the mappings will help a lot in
long run
public class Tweet
{
[Text]
public string Content;
[keyword]
public string Url;
[keyword]
public string[] HashTags;
...
}
› Code example:
› Mappings is normally generated automatically based on content you insert
into index. But sometimes you need custom mappings.
SCORING OPTIMIZATION
› Boosting fields is the most important scoring customization
› We normally have 3 fields which we boost with different values:
• Titles (boost 2.0)
• FullTextField (boost 1.5)
• ExtraContent (boost 1.0)
SCORING OPTIMIZATION
› Script scoring allows us to boost results with custom properties:
• Search result type
• Number of internal links
• Depth in hierarchy
• Recently published / edited
• Popularity by user visits
› Requires that dynamic scripting is enabled from the Elasticsearch.
All hosting partners won’t allow it.
SUMMARY
› Every dev loves Elasticsearch and it’s easy to start
› Choose the best tool for the purpose
› Compare options and seek for weaknesses which other solutions may fulfill
-> use the best out of both solutions
› Elasticsearch fits with most CMSes because they lack good search tools
› CQRS pattern will help with performance but choose wisely how to use it
› Invest your platform that it’s customizable. So it fits your next project also.
Twitter @SolitaOy
www.solita.fi
THANK YOU
MIKKO HUILAJA
Software Architect
mikko.huilaja@solita.fi
https://d2developer.com
Twitter: @huilaaja

Mais conteúdo relacionado

Mais procurados

Installing SharePoint 2013 – Step by Step presented by Alan Richards
Installing SharePoint 2013 – Step by Step presented by Alan RichardsInstalling SharePoint 2013 – Step by Step presented by Alan Richards
Installing SharePoint 2013 – Step by Step presented by Alan RichardsEuropean SharePoint Conference
 
I5 - Bring yourself up to speed with power shell
I5 -  Bring yourself up to speed with power shellI5 -  Bring yourself up to speed with power shell
I5 - Bring yourself up to speed with power shellSPS Paris
 
Test driving Azure Search and DocumentDB
Test driving Azure Search and DocumentDBTest driving Azure Search and DocumentDB
Test driving Azure Search and DocumentDBAndrew Siemer
 
Navigating the turbulence on take-off: Setting up SharePoint on Azure IaaS th...
Navigating the turbulence on take-off: Setting up SharePoint on Azure IaaS th...Navigating the turbulence on take-off: Setting up SharePoint on Azure IaaS th...
Navigating the turbulence on take-off: Setting up SharePoint on Azure IaaS th...Jason Himmelstein
 
PowerShell for the Anxious ITPro
PowerShell for the Anxious ITProPowerShell for the Anxious ITPro
PowerShell for the Anxious ITProJason Himmelstein
 
Building Search Engines - Lucene, SolR and Elasticsearch
Building Search Engines - Lucene, SolR and ElasticsearchBuilding Search Engines - Lucene, SolR and Elasticsearch
Building Search Engines - Lucene, SolR and ElasticsearchRahul Singh
 
Navigating the turbulence on takeoff: Setting up SharePoint on Azure IaaS the...
Navigating the turbulence on takeoff: Setting up SharePoint on Azure IaaS the...Navigating the turbulence on takeoff: Setting up SharePoint on Azure IaaS the...
Navigating the turbulence on takeoff: Setting up SharePoint on Azure IaaS the...Jason Himmelstein
 
Design for scale
Design for scaleDesign for scale
Design for scaleDoug Lampe
 
SPTECHCON - Rev Your Engines - SharePoint 2013 Performance Enhancements
SPTECHCON - Rev Your Engines - SharePoint 2013 Performance EnhancementsSPTECHCON - Rev Your Engines - SharePoint 2013 Performance Enhancements
SPTECHCON - Rev Your Engines - SharePoint 2013 Performance EnhancementsEric Shupps
 
ECS19 - Marco Rocca and Fabio Franzini - Need a custom logic in PowerApps? Us...
ECS19 - Marco Rocca and Fabio Franzini - Need a custom logic in PowerApps? Us...ECS19 - Marco Rocca and Fabio Franzini - Need a custom logic in PowerApps? Us...
ECS19 - Marco Rocca and Fabio Franzini - Need a custom logic in PowerApps? Us...European Collaboration Summit
 
Real World SharePoint Add-In Development
Real World SharePoint Add-In DevelopmentReal World SharePoint Add-In Development
Real World SharePoint Add-In DevelopmentEric Shupps
 
Rev Your Engines - SharePoint Performance Enhancements
Rev Your Engines - SharePoint Performance EnhancementsRev Your Engines - SharePoint Performance Enhancements
Rev Your Engines - SharePoint Performance EnhancementsEric Shupps
 
Henry been azure resource manager - inside out
Henry been   azure resource manager - inside outHenry been   azure resource manager - inside out
Henry been azure resource manager - inside outHenry Been
 
Azure Automation and Update Management
Azure Automation and Update ManagementAzure Automation and Update Management
Azure Automation and Update ManagementUdaiappa Ramachandran
 
Tips & Tricks SQL in the City Seattle 2014
Tips & Tricks SQL in the City Seattle 2014Tips & Tricks SQL in the City Seattle 2014
Tips & Tricks SQL in the City Seattle 2014Ike Ellis
 
Infrastructure as Code on Azure - NET Conf CO v2018
Infrastructure as Code on Azure - NET Conf CO v2018 Infrastructure as Code on Azure - NET Conf CO v2018
Infrastructure as Code on Azure - NET Conf CO v2018 Victor Silva
 

Mais procurados (20)

Installing SharePoint 2013 – Step by Step presented by Alan Richards
Installing SharePoint 2013 – Step by Step presented by Alan RichardsInstalling SharePoint 2013 – Step by Step presented by Alan Richards
Installing SharePoint 2013 – Step by Step presented by Alan Richards
 
I5 - Bring yourself up to speed with power shell
I5 -  Bring yourself up to speed with power shellI5 -  Bring yourself up to speed with power shell
I5 - Bring yourself up to speed with power shell
 
Test driving Azure Search and DocumentDB
Test driving Azure Search and DocumentDBTest driving Azure Search and DocumentDB
Test driving Azure Search and DocumentDB
 
Navigating the turbulence on take-off: Setting up SharePoint on Azure IaaS th...
Navigating the turbulence on take-off: Setting up SharePoint on Azure IaaS th...Navigating the turbulence on take-off: Setting up SharePoint on Azure IaaS th...
Navigating the turbulence on take-off: Setting up SharePoint on Azure IaaS th...
 
PowerShell for the Anxious ITPro
PowerShell for the Anxious ITProPowerShell for the Anxious ITPro
PowerShell for the Anxious ITPro
 
Building Search Engines - Lucene, SolR and Elasticsearch
Building Search Engines - Lucene, SolR and ElasticsearchBuilding Search Engines - Lucene, SolR and Elasticsearch
Building Search Engines - Lucene, SolR and Elasticsearch
 
Navigating the turbulence on takeoff: Setting up SharePoint on Azure IaaS the...
Navigating the turbulence on takeoff: Setting up SharePoint on Azure IaaS the...Navigating the turbulence on takeoff: Setting up SharePoint on Azure IaaS the...
Navigating the turbulence on takeoff: Setting up SharePoint on Azure IaaS the...
 
Design for scale
Design for scaleDesign for scale
Design for scale
 
SPTECHCON - Rev Your Engines - SharePoint 2013 Performance Enhancements
SPTECHCON - Rev Your Engines - SharePoint 2013 Performance EnhancementsSPTECHCON - Rev Your Engines - SharePoint 2013 Performance Enhancements
SPTECHCON - Rev Your Engines - SharePoint 2013 Performance Enhancements
 
RavenDB 4.0
RavenDB 4.0RavenDB 4.0
RavenDB 4.0
 
ECS19 - Marco Rocca and Fabio Franzini - Need a custom logic in PowerApps? Us...
ECS19 - Marco Rocca and Fabio Franzini - Need a custom logic in PowerApps? Us...ECS19 - Marco Rocca and Fabio Franzini - Need a custom logic in PowerApps? Us...
ECS19 - Marco Rocca and Fabio Franzini - Need a custom logic in PowerApps? Us...
 
Real World SharePoint Add-In Development
Real World SharePoint Add-In DevelopmentReal World SharePoint Add-In Development
Real World SharePoint Add-In Development
 
RavenDB 3.5
RavenDB 3.5RavenDB 3.5
RavenDB 3.5
 
Rev Your Engines - SharePoint Performance Enhancements
Rev Your Engines - SharePoint Performance EnhancementsRev Your Engines - SharePoint Performance Enhancements
Rev Your Engines - SharePoint Performance Enhancements
 
Owin & katana
Owin & katanaOwin & katana
Owin & katana
 
Henry been azure resource manager - inside out
Henry been   azure resource manager - inside outHenry been   azure resource manager - inside out
Henry been azure resource manager - inside out
 
Azure Automation and Update Management
Azure Automation and Update ManagementAzure Automation and Update Management
Azure Automation and Update Management
 
Azure functions serverless
Azure functions serverlessAzure functions serverless
Azure functions serverless
 
Tips & Tricks SQL in the City Seattle 2014
Tips & Tricks SQL in the City Seattle 2014Tips & Tricks SQL in the City Seattle 2014
Tips & Tricks SQL in the City Seattle 2014
 
Infrastructure as Code on Azure - NET Conf CO v2018
Infrastructure as Code on Azure - NET Conf CO v2018 Infrastructure as Code on Azure - NET Conf CO v2018
Infrastructure as Code on Azure - NET Conf CO v2018
 

Semelhante a Elastic & Azure & Episever, Case Evira

Episerver and search engines
Episerver and search enginesEpiserver and search engines
Episerver and search enginesMikko Huilaja
 
Elasticsearch - Scalability and Multitenancy
Elasticsearch - Scalability and MultitenancyElasticsearch - Scalability and Multitenancy
Elasticsearch - Scalability and MultitenancyBozhidar Bozhanov
 
Using Data Lakes: Data Analytics Week SF
Using Data Lakes: Data Analytics Week SFUsing Data Lakes: Data Analytics Week SF
Using Data Lakes: Data Analytics Week SFAmazon Web Services
 
(BDT209) Launch: Amazon Elasticsearch For Real-Time Data Analytics
(BDT209) Launch: Amazon Elasticsearch For Real-Time Data Analytics(BDT209) Launch: Amazon Elasticsearch For Real-Time Data Analytics
(BDT209) Launch: Amazon Elasticsearch For Real-Time Data AnalyticsAmazon Web Services
 
AWS CLOUD 2017 - Amazon Athena 및 Glue를 통한 빠른 데이터 질의 및 처리 기능 소개 (김상필 솔루션즈 아키텍트)
AWS CLOUD 2017 - Amazon Athena 및 Glue를 통한 빠른 데이터 질의 및 처리 기능 소개 (김상필 솔루션즈 아키텍트)AWS CLOUD 2017 - Amazon Athena 및 Glue를 통한 빠른 데이터 질의 및 처리 기능 소개 (김상필 솔루션즈 아키텍트)
AWS CLOUD 2017 - Amazon Athena 및 Glue를 통한 빠른 데이터 질의 및 처리 기능 소개 (김상필 솔루션즈 아키텍트)Amazon Web Services Korea
 
(BDT317) Building A Data Lake On AWS
(BDT317) Building A Data Lake On AWS(BDT317) Building A Data Lake On AWS
(BDT317) Building A Data Lake On AWSAmazon Web Services
 
Modern ETL: Azure Data Factory, Data Lake, and SQL Database
Modern ETL: Azure Data Factory, Data Lake, and SQL DatabaseModern ETL: Azure Data Factory, Data Lake, and SQL Database
Modern ETL: Azure Data Factory, Data Lake, and SQL DatabaseEric Bragas
 
QuerySurge Slide Deck for Big Data Testing Webinar
QuerySurge Slide Deck for Big Data Testing WebinarQuerySurge Slide Deck for Big Data Testing Webinar
QuerySurge Slide Deck for Big Data Testing WebinarRTTS
 
Fast Track to Your Data Lake on AWS
Fast Track to Your Data Lake on AWSFast Track to Your Data Lake on AWS
Fast Track to Your Data Lake on AWSAmazon Web Services
 
Getting started with Laravel & Elasticsearch
Getting started with Laravel & ElasticsearchGetting started with Laravel & Elasticsearch
Getting started with Laravel & ElasticsearchPeter Steenbergen
 
Introduction to elasticsearch
Introduction to elasticsearchIntroduction to elasticsearch
Introduction to elasticsearchpmanvi
 
AWS October Webinar Series - Introducing Amazon Elasticsearch Service
AWS October Webinar Series - Introducing Amazon Elasticsearch ServiceAWS October Webinar Series - Introducing Amazon Elasticsearch Service
AWS October Webinar Series - Introducing Amazon Elasticsearch ServiceAmazon Web Services
 
AWS March 2016 Webinar Series Building Your Data Lake on AWS
AWS March 2016 Webinar Series Building Your Data Lake on AWS AWS March 2016 Webinar Series Building Your Data Lake on AWS
AWS March 2016 Webinar Series Building Your Data Lake on AWS Amazon Web Services
 
BDA402 Deep Dive: Log Analytics with Amazon Elasticsearch Service
BDA402 Deep Dive: Log Analytics with Amazon Elasticsearch ServiceBDA402 Deep Dive: Log Analytics with Amazon Elasticsearch Service
BDA402 Deep Dive: Log Analytics with Amazon Elasticsearch ServiceAmazon Web Services
 
ENT309 Scaling Up to Your First 10 Million Users
ENT309 Scaling Up to Your First 10 Million UsersENT309 Scaling Up to Your First 10 Million Users
ENT309 Scaling Up to Your First 10 Million UsersAmazon Web Services
 

Semelhante a Elastic & Azure & Episever, Case Evira (20)

Episerver and search engines
Episerver and search enginesEpiserver and search engines
Episerver and search engines
 
Using Data Lakes
Using Data Lakes Using Data Lakes
Using Data Lakes
 
Elasticsearch - Scalability and Multitenancy
Elasticsearch - Scalability and MultitenancyElasticsearch - Scalability and Multitenancy
Elasticsearch - Scalability and Multitenancy
 
Using Data Lakes: Data Analytics Week SF
Using Data Lakes: Data Analytics Week SFUsing Data Lakes: Data Analytics Week SF
Using Data Lakes: Data Analytics Week SF
 
(BDT209) Launch: Amazon Elasticsearch For Real-Time Data Analytics
(BDT209) Launch: Amazon Elasticsearch For Real-Time Data Analytics(BDT209) Launch: Amazon Elasticsearch For Real-Time Data Analytics
(BDT209) Launch: Amazon Elasticsearch For Real-Time Data Analytics
 
AWS CLOUD 2017 - Amazon Athena 및 Glue를 통한 빠른 데이터 질의 및 처리 기능 소개 (김상필 솔루션즈 아키텍트)
AWS CLOUD 2017 - Amazon Athena 및 Glue를 통한 빠른 데이터 질의 및 처리 기능 소개 (김상필 솔루션즈 아키텍트)AWS CLOUD 2017 - Amazon Athena 및 Glue를 통한 빠른 데이터 질의 및 처리 기능 소개 (김상필 솔루션즈 아키텍트)
AWS CLOUD 2017 - Amazon Athena 및 Glue를 통한 빠른 데이터 질의 및 처리 기능 소개 (김상필 솔루션즈 아키텍트)
 
(BDT317) Building A Data Lake On AWS
(BDT317) Building A Data Lake On AWS(BDT317) Building A Data Lake On AWS
(BDT317) Building A Data Lake On AWS
 
Using Data Lakes
Using Data LakesUsing Data Lakes
Using Data Lakes
 
Elasticsearch Introduction at BigData meetup
Elasticsearch Introduction at BigData meetupElasticsearch Introduction at BigData meetup
Elasticsearch Introduction at BigData meetup
 
Modern ETL: Azure Data Factory, Data Lake, and SQL Database
Modern ETL: Azure Data Factory, Data Lake, and SQL DatabaseModern ETL: Azure Data Factory, Data Lake, and SQL Database
Modern ETL: Azure Data Factory, Data Lake, and SQL Database
 
Elastic pivorak
Elastic pivorakElastic pivorak
Elastic pivorak
 
QuerySurge Slide Deck for Big Data Testing Webinar
QuerySurge Slide Deck for Big Data Testing WebinarQuerySurge Slide Deck for Big Data Testing Webinar
QuerySurge Slide Deck for Big Data Testing Webinar
 
Fast Track to Your Data Lake on AWS
Fast Track to Your Data Lake on AWSFast Track to Your Data Lake on AWS
Fast Track to Your Data Lake on AWS
 
Introduction to Azure Data Lake
Introduction to Azure Data LakeIntroduction to Azure Data Lake
Introduction to Azure Data Lake
 
Getting started with Laravel & Elasticsearch
Getting started with Laravel & ElasticsearchGetting started with Laravel & Elasticsearch
Getting started with Laravel & Elasticsearch
 
Introduction to elasticsearch
Introduction to elasticsearchIntroduction to elasticsearch
Introduction to elasticsearch
 
AWS October Webinar Series - Introducing Amazon Elasticsearch Service
AWS October Webinar Series - Introducing Amazon Elasticsearch ServiceAWS October Webinar Series - Introducing Amazon Elasticsearch Service
AWS October Webinar Series - Introducing Amazon Elasticsearch Service
 
AWS March 2016 Webinar Series Building Your Data Lake on AWS
AWS March 2016 Webinar Series Building Your Data Lake on AWS AWS March 2016 Webinar Series Building Your Data Lake on AWS
AWS March 2016 Webinar Series Building Your Data Lake on AWS
 
BDA402 Deep Dive: Log Analytics with Amazon Elasticsearch Service
BDA402 Deep Dive: Log Analytics with Amazon Elasticsearch ServiceBDA402 Deep Dive: Log Analytics with Amazon Elasticsearch Service
BDA402 Deep Dive: Log Analytics with Amazon Elasticsearch Service
 
ENT309 Scaling Up to Your First 10 Million Users
ENT309 Scaling Up to Your First 10 Million UsersENT309 Scaling Up to Your First 10 Million Users
ENT309 Scaling Up to Your First 10 Million Users
 

Último

Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...software pro Development
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfryanfarris8
 
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-learnAmarnathKambale
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdfPearlKirahMaeRagusta1
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 

Último (20)

Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
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
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 

Elastic & Azure & Episever, Case Evira

  • 1. ELASTICSEARCH & AZURE & EPISERVER CASE: EVIRA Elastic Meetup 4.4.2017 Mikko Huilaja
  • 2. AGENDA › Case Evira › Environments & Cloud › CMS and Elasticsearch combination › More practical stuff
  • 4. CASE: EVIRA › Evira is Finnish Food Safety Authority. • Lots of official documentation • Lots of content editors • Contains mostly text, documents, forms and table data • Low amount of images and rich content › Same project contains also intranet for Evira. So the same architecture was required to work with intranet case also.
  • 5.
  • 7. Search with URL -parameters Facet groups Ordering Search word highlights Customizable search results Did you mean this -feature Filters and Facets Easily customizable facets Fallback wildcard search File search for most common document types
  • 9. KEY COMPONENTS: E&A&E › Elasticsearch (Search and performance) • Global search and efficient way to query large data sets with full-text support › Azure (Cloud platform and scale) • Azure contains all the environments, files, data, backups, monitoring, maintenance jobs, etc. › Episerver CMS (Content editing, UI and master data store) • Platform for content editing with many languages, versioning, document bank, metadata, etc. • Master data and primary data source for Elasticsearch
  • 10. CUSTOMIZABLE PLATFORM › Elasticsearch • From the smallest to very large projects • Runs locally your laptop, buy it from the cloud or private data center › Azure Cloud • From the smallest to very large projects • IaaS and PaaS options › Episerver CMS • From medium size to very large projects • Easily customizable front-end and pluggable/extendable back-end
  • 11. On premise / Private cloudAzure IaaS on virtual machines (one or many) Developer’s laptop IIS Web Server SETUP OPTIONS PaaS on Azure App Services and Elastic Cloud SEARCH VM Elasticsearch Web Site SQL Database Blob Storage Elasticsearch Web ServerWeb Server SQL Server
  • 12. ELASTIC IS NOT JUST FOR SEARCH › It’s a performance tool. It makes querying large data sets much more efficient than tools like SQL Server or many other search tools › We use Elastic: › Global search › Internal searches and listings: Products news, announcements, comments, Files, RSS, sitemap › Handling a large datasets. Example some migrations. › Analytics and statistics • Site visitor analytics • Search usage analytics › 404 statistics › Error logging and log analyzing › Monitoring servers Full-text search, Listings, performance Analytics, statistics
  • 13.
  • 14.
  • 15.
  • 16. NOT A CRAWLER › We have integrated Elasticsearch to events of Episerver › Real-time (1 or 2 seconds latency) • Long latencies often cause multiple other problems › We can send more data than what’s visible (example access rights) Real-time is really hard gain if it’s not built into the architecture
  • 17. CQRS = COMMAND QUERY RESPONSIBILITY SEGREGATION
  • 18. CQRS WITH CMS (TRADITIONAL FORMAT) Commands Queries SQL Server database Elasticsearch Index Web Site Episerver CMS Elasticsearch
  • 19. CQRS WITH CMS (AS WE USE IT) Commands Queries Elasticsearch Index Web Site Episerver CMS Elasticsearch Simple Queries Episerver CMS SQL Server database
  • 20. CQRS WITH CMS (AS EPISERVER FIND USE IT) Commands Queries Episerver Find Index Web Site Episerver CMS Elasticsearch Simple Queries Episerver CMS SQL Server database returns only the id’s
  • 21. WHY ELASTIC WITH CMS › Content Management Systems are generally good for managing content, files, content relations, hierarchy, language variations, content versions, access rights, user management, model type management and CACHING › They often have hierarchical structure of handling content › So querying a page and querying parent or child pages often comes straight from the cache and does not even make a database query. › But CMS often do not include good tools querying across hierarchies
  • 22. CHOOSE THE BEST TOOL › Use Episerver/CMS for simple queries • If you need to query: just one object, sibling objects or child objects from less than 2 hierarchy levels › Use Elasticsearch • Everything else › Except don’t use Elasticsearch: • If 1-2 second latency is too much • If there is some transactions requirements
  • 23. ELASTIC INDEX = QUERY DATABASE › We can always recreate elastic index from SQL Server “master data” › That’s why we don’t really need multiple nodes or chards Get all the data Elasticsearch Index Episerver CMS SQL Server database Reindex
  • 24. ELASTICSEARCH.NET & NEST › Official .NET Elasticsearch clients › ElasticSearch.NET & NEST makes the usage strongly typed: • No JSON • No typos • Every value has a type • IDE will help you • Not like JavaScript var response = client.Search<Tweet>(s => s .From(0) .Size(10) .Query(q => q.Term(t => t.HashTags, "elasticsearch") ) ); public class Tweet { public string[] HasTags; ... } › Code example:
  • 25. MAPPINGS ARE LIKE SCHEMA IN DB › NEST will automatically map most of the types but not all: › Separate string types: • Text (analyzed) default type for strings • Keywords (not analyzed) Keyword fields are only searchable by their exact value › Automating the mappings will help a lot in long run public class Tweet { [Text] public string Content; [keyword] public string Url; [keyword] public string[] HashTags; ... } › Code example: › Mappings is normally generated automatically based on content you insert into index. But sometimes you need custom mappings.
  • 26. SCORING OPTIMIZATION › Boosting fields is the most important scoring customization › We normally have 3 fields which we boost with different values: • Titles (boost 2.0) • FullTextField (boost 1.5) • ExtraContent (boost 1.0)
  • 27. SCORING OPTIMIZATION › Script scoring allows us to boost results with custom properties: • Search result type • Number of internal links • Depth in hierarchy • Recently published / edited • Popularity by user visits › Requires that dynamic scripting is enabled from the Elasticsearch. All hosting partners won’t allow it.
  • 28. SUMMARY › Every dev loves Elasticsearch and it’s easy to start › Choose the best tool for the purpose › Compare options and seek for weaknesses which other solutions may fulfill -> use the best out of both solutions › Elasticsearch fits with most CMSes because they lack good search tools › CQRS pattern will help with performance but choose wisely how to use it › Invest your platform that it’s customizable. So it fits your next project also.
  • 29. Twitter @SolitaOy www.solita.fi THANK YOU MIKKO HUILAJA Software Architect mikko.huilaja@solita.fi https://d2developer.com Twitter: @huilaaja