SlideShare uma empresa Scribd logo
1 de 35
Baixar para ler offline
APACHE SLING & FRIENDS TECH MEETUP 
BERLIN, 22-24 SEPTEMBER 2014 
Integrating ElasticSearch with AEM 
Vivek Sachdeva, Intelligrape Software @vivek_sach
Agenda 
 Introduction to ElasticSearch 
 Analyzing Data 
 Integration with AEM 
 Approaches Considered 
 Features Integrated 
 Extension Points 
adaptTo() 2014 2
About Me :) 
 Started career as Java Developer in 2010 
 Worked on Groovy and Grails 
 Currently working as AEM(plus Groovy) Developer 
 Intelligrape Software 
 vivek.sachdeva@intelligrape.com 
 in.linkedin.com/pub/vivek-sachdeva/20/192/934/ 
adaptTo() 2014 3
Elastic Search – An Introduction 
adaptTo() 2014 4
What & Why?? 
 ElasticSearch is a distributed, RESTful, free/open 
source search server 
 Based on Apache Lucene 
 Developed by Shay Banon 
 Latest Version – 1.2 
 Rich support for Perl, Java, Javascript, Ruby, 
Node and a lot more clients 
adaptTo() 2014 5
What & Why?? 
 Document Oriented and Schema free 
 Support for multi-tenancy 
 Support for dynamic schema update 
 High Performance 
 Just like JCR 
 Support for complex(nested) documents that can go to any 
level 
adaptTo() 2014 6
ElasticSearch Server View 
adaptTo() 2014 7
Index Creation 
adaptTo() 2014 8
Fail Safe 
adaptTo() 2014 9
Analyzing Data 
adaptTo() 2014 10
How to Index?? 
 First step is to identify the relevant data 
 Every novel is a mystery novel. 
 Strangely I have not read any. 
adaptTo() 2014 11
Bad Indexing 
 Every novel is a 
mystery novel. 
 Strangely I have not 
read any. 
adaptTo() 2014 12
Smart Indexing!! 
adaptTo() 2014 13
Integrating with AEM 
adaptTo() 2014 14
What All is Needed?? 
 ElasticSearch Server 
 CQ instance.. :) 
 Front end for browsing and interacting with an Elastic 
Search cluster. (Optional) 
http://mobz.github.io/elasticsearch-head/ 
Thats it... 
adaptTo() 2014 15
ElasticSearch dependency 
 Available in Maven repository 
<dependency> 
<groupId>org.elasticsearch</groupId> 
<artifactId>elasticsearch</artifactId> 
<version>1.2.0</version> 
</dependency> 
adaptTo() 2014 16
Approaches Considered 
adaptTo() 2014 17
Push & Pull Indexing 
 Push Indexing 
 CQ Server pushes data to Elastic Server 
whenever needed 
 Pull Indexing 
 ElasticSearch Server pulls data at regular intervals 
and indexes it 
adaptTo() 2014 18
Push Indexing.. Using Replication Agent 
adaptTo() 2014 19
Push Indexing... Using Replication Agent 
 Create Serialization Type and setup a replication 
agent. 
@Component(label = "Elastic Replication Content Builder", description = "This servlet 
replicates data to Elastic", immediate = true, enabled = true, metatype = true) 
@Service(ContentBuilder.class) 
class ElasticReplicationContentBuilderImpl implements ContentBuilder{ 
//Override create method 
} 
adaptTo() 2014 20
Push Indexing... Using Replication Agent 
Pros: 
 Data can be pushed as and 
when needed. 
adaptTo() 2014 21
Pull Indexing 
adaptTo() 2014 22
Features Integrated 
adaptTo() 2014 23
Features Integrated 
 Basic Aggregation 
 Tag based faceting 
 Free Text Search 
 Finding all pages in order of relevancy based on 
some text 
adaptTo() 2014 24
Facet 
adaptTo() 2014 25
DEMO 
adaptTo() 2014 26
More Cool Features/Extension Points... 
adaptTo() 2014 27
Geo Facet 
Lets say we need to 
find all restaurants 
that are within 1 
mile 
adaptTo() 2014 28
Advanced Aggregation 
aggregations: { 
group_by_state: { 
buckets: [ 
{ key: wv 
doc_count: 1 
average_age: { 
value: 22 
} } 
{ key: al 
doc_count: 2 
average_age: { 
value: 22 
} } 
] 
…............... 
Group all the employees 
of an MNC by project 
location and find 
average age of each 
group. 
adaptTo() 2014 29
Percolator – Search.... Reversed..... 
Tag all mails from Finance 
as important 
adaptTo() 2014 30
Ease of Clustering 
adaptTo() 2014 31
DEMO 
adaptTo() 2014 32
Appendix 
adaptTo() 2014 33
Appendix 
 http://www.elasticsearch.com/ 
 http://www.elasticsearch.org/guide/ 
 https://forums.adobe.com 
 Google :) 
adaptTo() 2014 34
Where is the code?? 
● https://github.com/viveksachdeva 
/elasticsearch-cq.git 
adaptTo() 2014 35

Mais conteúdo relacionado

Mais procurados

AWS와 부하테스트의 절묘한 만남 :: 김무현 솔루션즈 아키텍트 :: Gaming on AWS 2016
AWS와 부하테스트의 절묘한 만남 :: 김무현 솔루션즈 아키텍트 :: Gaming on AWS 2016AWS와 부하테스트의 절묘한 만남 :: 김무현 솔루션즈 아키텍트 :: Gaming on AWS 2016
AWS와 부하테스트의 절묘한 만남 :: 김무현 솔루션즈 아키텍트 :: Gaming on AWS 2016
Amazon Web Services Korea
 

Mais procurados (20)

Mastering the Sling Rewriter
Mastering the Sling RewriterMastering the Sling Rewriter
Mastering the Sling Rewriter
 
Adobe Experience Manager - Replication deep dive
Adobe Experience Manager - Replication deep diveAdobe Experience Manager - Replication deep dive
Adobe Experience Manager - Replication deep dive
 
AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015
AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015 AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015
AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015
 
AEM & eCommerce integration
AEM & eCommerce integrationAEM & eCommerce integration
AEM & eCommerce integration
 
AEM (CQ) Dispatcher Security and CDN+Browser Caching
AEM (CQ) Dispatcher Security and CDN+Browser CachingAEM (CQ) Dispatcher Security and CDN+Browser Caching
AEM (CQ) Dispatcher Security and CDN+Browser Caching
 
Android | Android Activity Launch Modes and Tasks | Gonçalo Silva
Android | Android Activity Launch Modes and Tasks | Gonçalo SilvaAndroid | Android Activity Launch Modes and Tasks | Gonçalo Silva
Android | Android Activity Launch Modes and Tasks | Gonçalo Silva
 
Enable Authentication and Authorization with Azure Active Directory and Sprin...
Enable Authentication and Authorization with Azure Active Directory and Sprin...Enable Authentication and Authorization with Azure Active Directory and Sprin...
Enable Authentication and Authorization with Azure Active Directory and Sprin...
 
서버리스 데이터 플로우 개발기 - 김재현 (Superb AI) :: AWS Community Day 2020
서버리스 데이터 플로우 개발기 - 김재현 (Superb AI) :: AWS Community Day 2020서버리스 데이터 플로우 개발기 - 김재현 (Superb AI) :: AWS Community Day 2020
서버리스 데이터 플로우 개발기 - 김재현 (Superb AI) :: AWS Community Day 2020
 
Introduction to Sightly and Sling Models
Introduction to Sightly and Sling ModelsIntroduction to Sightly and Sling Models
Introduction to Sightly and Sling Models
 
slingmodels
slingmodelsslingmodels
slingmodels
 
Aem dispatcher – tips & tricks
Aem dispatcher – tips & tricksAem dispatcher – tips & tricks
Aem dispatcher – tips & tricks
 
Spring Boot Tutorial
Spring Boot TutorialSpring Boot Tutorial
Spring Boot Tutorial
 
AEM & Single Page Applications (SPAs) 101
AEM & Single Page Applications (SPAs) 101AEM & Single Page Applications (SPAs) 101
AEM & Single Page Applications (SPAs) 101
 
AWS IAM Tutorial | Identity And Access Management (IAM) | AWS Training Videos...
AWS IAM Tutorial | Identity And Access Management (IAM) | AWS Training Videos...AWS IAM Tutorial | Identity And Access Management (IAM) | AWS Training Videos...
AWS IAM Tutorial | Identity And Access Management (IAM) | AWS Training Videos...
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
AWS와 부하테스트의 절묘한 만남 :: 김무현 솔루션즈 아키텍트 :: Gaming on AWS 2016
AWS와 부하테스트의 절묘한 만남 :: 김무현 솔루션즈 아키텍트 :: Gaming on AWS 2016AWS와 부하테스트의 절묘한 만남 :: 김무현 솔루션즈 아키텍트 :: Gaming on AWS 2016
AWS와 부하테스트의 절묘한 만남 :: 김무현 솔루션즈 아키텍트 :: Gaming on AWS 2016
 
Web container and Apache Tomcat
Web container and Apache TomcatWeb container and Apache Tomcat
Web container and Apache Tomcat
 
JCR, Sling or AEM? Which API should I use and when?
JCR, Sling or AEM? Which API should I use and when?JCR, Sling or AEM? Which API should I use and when?
JCR, Sling or AEM? Which API should I use and when?
 
쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호(넥슨코리아) :: AWS Community Day 2020
쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호(넥슨코리아) :: AWS Community Day 2020쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호(넥슨코리아) :: AWS Community Day 2020
쿠알못이 Amazon EKS로 안정적인 서비스 운영하기 - 최용호(넥슨코리아) :: AWS Community Day 2020
 
Spring - Part 1 - IoC, Di and Beans
Spring - Part 1 - IoC, Di and Beans Spring - Part 1 - IoC, Di and Beans
Spring - Part 1 - IoC, Di and Beans
 

Destaque

Basics of Solr and Solr Integration with AEM6
Basics of Solr and Solr Integration with AEM6Basics of Solr and Solr Integration with AEM6
Basics of Solr and Solr Integration with AEM6
DEEPAK KHETAWAT
 

Destaque (12)

Oak / Solr integration
Oak / Solr integrationOak / Solr integration
Oak / Solr integration
 
Implementing Site Search in CQ5 / AEM
Implementing Site Search in CQ5 / AEMImplementing Site Search in CQ5 / AEM
Implementing Site Search in CQ5 / AEM
 
Big Data Pipeline and Analytics Platform Using NetflixOSS and Other Open Sour...
Big Data Pipeline and Analytics Platform Using NetflixOSS and Other Open Sour...Big Data Pipeline and Analytics Platform Using NetflixOSS and Other Open Sour...
Big Data Pipeline and Analytics Platform Using NetflixOSS and Other Open Sour...
 
Basics of Solr and Solr Integration with AEM6
Basics of Solr and Solr Integration with AEM6Basics of Solr and Solr Integration with AEM6
Basics of Solr and Solr Integration with AEM6
 
Scaling an ELK stack at bol.com
Scaling an ELK stack at bol.comScaling an ELK stack at bol.com
Scaling an ELK stack at bol.com
 
Do you need an external search platform for Adobe Experience Manager?
Do you need an external search platform for Adobe Experience Manager?Do you need an external search platform for Adobe Experience Manager?
Do you need an external search platform for Adobe Experience Manager?
 
Consuming External Content and Enriching Content with Apache Camel
Consuming External Content and Enriching Content with Apache CamelConsuming External Content and Enriching Content with Apache Camel
Consuming External Content and Enriching Content with Apache Camel
 
Apache SOLR in AEM 6
Apache SOLR in AEM 6Apache SOLR in AEM 6
Apache SOLR in AEM 6
 
adaptTo() 2014 - Integrating Open Source Search with CQ/AEM
adaptTo() 2014 - Integrating Open Source Search with CQ/AEMadaptTo() 2014 - Integrating Open Source Search with CQ/AEM
adaptTo() 2014 - Integrating Open Source Search with CQ/AEM
 
Introduction to ELK
Introduction to ELKIntroduction to ELK
Introduction to ELK
 
What I learnt: Elastic search & Kibana : introduction, installtion & configur...
What I learnt: Elastic search & Kibana : introduction, installtion & configur...What I learnt: Elastic search & Kibana : introduction, installtion & configur...
What I learnt: Elastic search & Kibana : introduction, installtion & configur...
 
The Elastic ELK Stack
The Elastic ELK StackThe Elastic ELK Stack
The Elastic ELK Stack
 

Semelhante a Elastic search adaptto2014

Semelhante a Elastic search adaptto2014 (20)

Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
 
Machine translation survey - vol1
Machine translation survey  - vol1Machine translation survey  - vol1
Machine translation survey - vol1
 
Deploying Web Apps with PaaS and Docker Tools
Deploying Web Apps with PaaS and Docker ToolsDeploying Web Apps with PaaS and Docker Tools
Deploying Web Apps with PaaS and Docker Tools
 
Sling IDE Tooling
Sling IDE ToolingSling IDE Tooling
Sling IDE Tooling
 
Stmik bandung
Stmik bandungStmik bandung
Stmik bandung
 
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkitThe DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
 
The DevOps Paradigm
The DevOps ParadigmThe DevOps Paradigm
The DevOps Paradigm
 
Azure HDInsight
Azure HDInsightAzure HDInsight
Azure HDInsight
 
Nyc mule soft_meetup_13_march_2021
Nyc mule soft_meetup_13_march_2021Nyc mule soft_meetup_13_march_2021
Nyc mule soft_meetup_13_march_2021
 
Serverless GraphQL for Product Developers
Serverless GraphQL for Product DevelopersServerless GraphQL for Product Developers
Serverless GraphQL for Product Developers
 
Prototyping applications with heroku and elasticsearch
 Prototyping applications with heroku and elasticsearch Prototyping applications with heroku and elasticsearch
Prototyping applications with heroku and elasticsearch
 
DevOps
DevOpsDevOps
DevOps
 
Spring boot
Spring bootSpring boot
Spring boot
 
Pivoting Spring XD to Spring Cloud Data Flow with Sabby Anandan
Pivoting Spring XD to Spring Cloud Data Flow with Sabby AnandanPivoting Spring XD to Spring Cloud Data Flow with Sabby Anandan
Pivoting Spring XD to Spring Cloud Data Flow with Sabby Anandan
 
Gluecon Preso: Hybrid Container Infrastructure
Gluecon Preso: Hybrid Container InfrastructureGluecon Preso: Hybrid Container Infrastructure
Gluecon Preso: Hybrid Container Infrastructure
 
Solving Top Cloud Problems MODAClouds Toolbox
Solving Top Cloud Problems MODAClouds ToolboxSolving Top Cloud Problems MODAClouds Toolbox
Solving Top Cloud Problems MODAClouds Toolbox
 
Node summit workshop
Node summit workshopNode summit workshop
Node summit workshop
 
Keynote - Oleg Barenboim - ManageIQ Design Summit 2016
Keynote - Oleg Barenboim - ManageIQ Design Summit 2016Keynote - Oleg Barenboim - ManageIQ Design Summit 2016
Keynote - Oleg Barenboim - ManageIQ Design Summit 2016
 
Express node js
Express node jsExpress node js
Express node js
 
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SKHTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
 

Último

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
VictorSzoltysek
 
%+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
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
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
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 
+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
 

Último (20)

Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
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
 
%+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...
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
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 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
 
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
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
+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...
 
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
 
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?
 
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 🔝✔️✔️
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
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
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT  - Elevating Productivity in Today's Agile EnvironmentHarnessing ChatGPT  - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
 
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...
 

Elastic search adaptto2014

  • 1. APACHE SLING & FRIENDS TECH MEETUP BERLIN, 22-24 SEPTEMBER 2014 Integrating ElasticSearch with AEM Vivek Sachdeva, Intelligrape Software @vivek_sach
  • 2. Agenda  Introduction to ElasticSearch  Analyzing Data  Integration with AEM  Approaches Considered  Features Integrated  Extension Points adaptTo() 2014 2
  • 3. About Me :)  Started career as Java Developer in 2010  Worked on Groovy and Grails  Currently working as AEM(plus Groovy) Developer  Intelligrape Software  vivek.sachdeva@intelligrape.com  in.linkedin.com/pub/vivek-sachdeva/20/192/934/ adaptTo() 2014 3
  • 4. Elastic Search – An Introduction adaptTo() 2014 4
  • 5. What & Why??  ElasticSearch is a distributed, RESTful, free/open source search server  Based on Apache Lucene  Developed by Shay Banon  Latest Version – 1.2  Rich support for Perl, Java, Javascript, Ruby, Node and a lot more clients adaptTo() 2014 5
  • 6. What & Why??  Document Oriented and Schema free  Support for multi-tenancy  Support for dynamic schema update  High Performance  Just like JCR  Support for complex(nested) documents that can go to any level adaptTo() 2014 6
  • 7. ElasticSearch Server View adaptTo() 2014 7
  • 11. How to Index??  First step is to identify the relevant data  Every novel is a mystery novel.  Strangely I have not read any. adaptTo() 2014 11
  • 12. Bad Indexing  Every novel is a mystery novel.  Strangely I have not read any. adaptTo() 2014 12
  • 14. Integrating with AEM adaptTo() 2014 14
  • 15. What All is Needed??  ElasticSearch Server  CQ instance.. :)  Front end for browsing and interacting with an Elastic Search cluster. (Optional) http://mobz.github.io/elasticsearch-head/ Thats it... adaptTo() 2014 15
  • 16. ElasticSearch dependency  Available in Maven repository <dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch</artifactId> <version>1.2.0</version> </dependency> adaptTo() 2014 16
  • 18. Push & Pull Indexing  Push Indexing  CQ Server pushes data to Elastic Server whenever needed  Pull Indexing  ElasticSearch Server pulls data at regular intervals and indexes it adaptTo() 2014 18
  • 19. Push Indexing.. Using Replication Agent adaptTo() 2014 19
  • 20. Push Indexing... Using Replication Agent  Create Serialization Type and setup a replication agent. @Component(label = "Elastic Replication Content Builder", description = "This servlet replicates data to Elastic", immediate = true, enabled = true, metatype = true) @Service(ContentBuilder.class) class ElasticReplicationContentBuilderImpl implements ContentBuilder{ //Override create method } adaptTo() 2014 20
  • 21. Push Indexing... Using Replication Agent Pros:  Data can be pushed as and when needed. adaptTo() 2014 21
  • 24. Features Integrated  Basic Aggregation  Tag based faceting  Free Text Search  Finding all pages in order of relevancy based on some text adaptTo() 2014 24
  • 27. More Cool Features/Extension Points... adaptTo() 2014 27
  • 28. Geo Facet Lets say we need to find all restaurants that are within 1 mile adaptTo() 2014 28
  • 29. Advanced Aggregation aggregations: { group_by_state: { buckets: [ { key: wv doc_count: 1 average_age: { value: 22 } } { key: al doc_count: 2 average_age: { value: 22 } } ] …............... Group all the employees of an MNC by project location and find average age of each group. adaptTo() 2014 29
  • 30. Percolator – Search.... Reversed..... Tag all mails from Finance as important adaptTo() 2014 30
  • 31. Ease of Clustering adaptTo() 2014 31
  • 34. Appendix  http://www.elasticsearch.com/  http://www.elasticsearch.org/guide/  https://forums.adobe.com  Google :) adaptTo() 2014 34
  • 35. Where is the code?? ● https://github.com/viveksachdeva /elasticsearch-cq.git adaptTo() 2014 35