SlideShare una empresa de Scribd logo
1 de 34
Descargar para leer sin conexión
1
ADOBE EXPERIENCE MANAGER
& EXTERNAL SEARCH PLATFORMS
Matthias Wermund, Senior Application Architect
2
WHY EXTERNAL SEARCH
Search is part of most implementation projects
• Most of today’s web sites offer any type of search feature
• Search exists in various flavors and mixtures
• Site search
• Typed search
• Search as navigation
• Relevance search
• Location based search
• AEM comes with its own search implementation
• “External search” in context of AEM means leveraging another platform,
hosted outside of the AEM Author/Publish environments
3
WHY EXTERNAL SEARCH
Publish search vs. Author search
• Publish search
• End user accessible
• Indexed content is in published state
• High frequency access
• Author search
• Internal AEM author search
• Index must include unpublished content
• Criteria can include additional content metadata
• Both are fundamentally different use cases with different index lifecycle
4
WHY EXTERNAL SEARCH
AEM standard search
• Part of AEM Java Content Repository (JCR) implementation
• AEM adds Predicate API layer
• Features
• Automatic index generation in all environments
• Full-text, facetted search
• Access restrictions based on repository access control lists (ACL)
• Used behind the scenes for many AEM features
So, why not always use JCR search? Here are some reasons.
5
WHY EXTERNAL SEARCH
Performance issues of standard search with growing result size
0
2
4
6
8
10
12
14
1 4 7 10 13 16 19 22 25 28
Time(s)
Results (x1000)
AEM query performance*
JCR Query Facet Generation
• Facet generation time
increases linear with
growing result size
• JCR query time not
impacted the same,
but increase is
noticeable
• Search results are
often impossible to
cache due to high
number of variations
* Synthetic content, full-text search, one facet, single requests
6
WHY EXTERNAL SEARCH
Scale independently of AEM
• External search platforms
decouple the search
infrastructure from AEM
• Search platform can scale
independently from AEM, both
horizontally and vertically
• Some platforms support cloud
deployments, e.g. ZooKeeper
for Apache Solr
• Client-side integration can fully
eliminate query impact on AEM
7
WHY EXTERNAL SEARCH
Extended feature offering
• External platforms provide functionality which AEM currently doesn’t bring
out-of-box
• A few examples:
• Geospatial search
• Dynamic relevance control
• Index-based type-ahead
• Index maintenance UI
• More about various possible uses of external index data later.
8
WHY EXTERNAL SEARCH
Search multiple data sources at once
• Search can span multiple
data sources besides AEM
• External platforms can join
data from any number and
type of source systems
• Users can query all data at
once, with combined
pagination, filters and
relevance calculation
9
• Created initially by CNET, since 2006 open source
• Incorporates and extends Apache Lucene
• Supports distributed indexing and searching
• Rich search capabilities
• HTTP interface, JSON/XML/BIN formats
• Integration clients
• Standalone Java web application
• Administration UI
• Widely used on prominent sites
wiki.apache.org/solr/PublicServers
APACHE SOLR
Lucene-powered Open Source Search Platform
10
• Schema fields
• Dynamic fields
• Custom field types
APACHE SOLR
Index schema configuration
11
• The main challenge is data extraction
• When should the extraction process get initiated?
• How to convert the AEM content tree structure into the index format?
• And how to transfer the converted data to the external platform?
• Once the external index is generated, data querying is a relatively easy step
• Query generation is highly specific to the use case
• Most search platforms offer standard interfaces or Java libraries to integrate
INDEXING AEM CONTENT
Steps to create an external index
12
• Pull
• Content downloaded by external search platform
• Platform needs trigger, e.g. scheduler
• Data generation can use same rendering as for user requests
• Push
• Data uploaded from AEM to external platform
• Can happened immediately on modification
• Requires to generate data standalone
• Combination is possible – Example:
• On modification, AEM notifies search platform (Push)
• Platform loads the modified content from AEM (Pull)
INDEXING AEM CONTENT
Integration patterns : Pull vs. Push
13
• Unstructured
• No index-specific format
• Metadata is extracted after loading
• Least effort, end user rendering can be used
• Structured
• Source data formatted to match search index structure
• Leaner
• Can carry different data than end user view
• Requires structure generation in AEM
• The typical unstructured pull data extraction is crawling
INDEXING AEM CONTENT
Integration patterns (II) : Unstructured vs. Structured
14
• EASE = External AEM Search Extension
• Primary goal of the framework is to reduce the complexity of integrating search
platforms with AEM
• The indexing approach is structured push triggered by content replication
• Open source, available starting today
• For documentation, API, Maven dependencies & more
see github.com/mwmd/ease
INDEXING AEM CONTENT
Introducing the EASE framework
15
• Supports generation of structured index data
• Binary asset indexing
• Integrates in AEM Author environment
• Incremental index updates triggered by AEM replication (push)
• Indexing of versioned content for scheduled replication
• Full index generation
• Generic integration with search platforms
• Apache Solr integration
INDEXING AEM CONTENT
(Current) EASE framework features
16
INDEXING AEM CONTENT
EASE Maven modules
17
INDEXING AEM CONTENT
EASE index generation approach
18
INDEXING AEM CONTENT
Basic sample project: ease/example
• Prerequisites
• AEM 5.6 Author
• Apache Solr 4.4
• Demonstrates use of
EASE framework
• No configuration
needed
• Uses Facets, full text
search, relevance
• Available on GitHub
19
INDEXING AEM CONTENT
Steps to integrate EASE and Solr into project
1. Include ease-core and ease-scr as Maven dependencies
2. Implement indexers matching your content
3. Create OSGi configurations:
• IndexService
• SolrIndexServer
4. Deploy to AEM Author:
• ease-core
• ease-solr & dependencies
When this is done, activated content will get automatically indexed.
20
INDEXING AEM CONTENT
Generation of index data with EASE
21
INDEXING AEM CONTENT
Resolving content structure with EASE
22
INDEXING AEM CONTENT
Encapsulate handling of proprietary requests
• IndexServer handles all communication with
search platform
• ease-core bundle doesn’t provide platform
specific implementation
• Implementation of IndexServer for Apache Solr in
ease-solr bundle
• New connectors to additional platforms are only
required to implement this interface
23
• When the data is indexed, it can get queried from custom components
• Leveraging platform specific features with proprietary clients
• While EASE currently focuses on simplifying the indexing, it helps with queries too
• EASE connector bundle per external search platform
• Proprietary clients are provided by the bundle (SolrJ for Apache Solr)
• In the following, an example implementation will walk through some use cases
USING THE EXTERNAL INDEX
24
USING THE EXTERNAL INDEX
Example implementation: AEM Know-How Database
• Central search for AEM
related information
• Uses EASE framework
• Server- and client-side
queries
• 50,000 pages in AEM
• stackoverflow
• Adobe offices
• 3,000 external pages
• Adobe AEM doc
• Adobe CRX doc
• Marketing Cloud doc
25
USING THE EXTERNAL INDEX
Example implementation: AEM Know-How Database
26
• User-input text query
• Query-based ranking
• Generation of extracts
and term highlighting
• Sorting on different
fields
USING THE EXTERNAL INDEX
Full-text search
Sorting
options
Pagination
Extract &
Highlighting
27
• Manipulation of
relevance calculation
• Boosting possible on
• Terms
• Fields
• Implementation can
leverage user data to
generate personalized
result (Client Context)
USING THE EXTERNAL INDEX
Boost manipulation / Personalization
Personalization
Same result
count…
…but different
ranking
28
USING THE EXTERNAL INDEX
Faceted search
• Navigation via facets
• AND combination of
multiple facet values
• Facet hit counts
calculated based on
current search resultFacet hits
29
• Offer search term
suggestions based on
user input
• Highly configurable
• Index data
• Dictionary
• Query parsing
• Client-side call to
Apache Solr
• Can use a standard
query or dedicated
feature
USING THE EXTERNAL INDEX
Type-ahead / Auto-complete / Auto-suggest
30
• Proximity search
• Distance calculation
• Sorting by distance
• Center of search is
dynamic, can be
based on user’s
location
(Client Context)
USING THE EXTERNAL INDEX
Geospatial search
Distance
calculation
Distance
sorting
Location-
based query
31
• Component rendering can include content maintained on other pages
• Aggregation logic could be easily mirrored in ResourceIndexer
• But: If the page-external content is modified, its activation won’t trigger re-
indexing of the aggregating page
• Use case:
• Inherited paragraph system
• Reference component
• Mitigation options:
• Content strategy: Index only standalone, unique page content
• Use WCM ReferenceSearch to find and re-index references
• Dangerous: reference loops, cascading re-indexing
REAL WORLD SEARCH IMPLEMENTATIONS
Handling aggregated page content
32
• External platforms have no information about AEM roles and permissions
• All index items are visible to everyone by default
• In some use cases, access to parts of the index must be restricted
• Use case:
• Closed User Groups
• Mitigation options:
• Check access rights for all items on the current result page at runtime
• Will break pagination information, type-ahead suggestions
• Performance hit
• Export effective role permissions as part of index item metadata
• Add filter for current user’s role to all queries or into search platform
• Requires re-indexing of content on ACL changes
• Only practical with a limited number of roles
REAL WORLD SEARCH IMPLEMENTATIONS
Permission Sensitive Search
33
REAL WORLD SEARCH IMPLEMENTATIONS
Index tuning
• Interpretation of raw index data dependent on
search technology and configuration
• Powerful platforms offer deep level of index
configuration
• Tuning of search behavior means significant effort
• Use case:
• Full text query and content parsing
• Type-ahead suggestions
• Result relevance calculation
List of available text
processors for Solr
34
Questions?
matthias.wermund@acquitygroup.com
Thank you!
ADOBE EXPERIENCE MANAGER
& EXTERNAL SEARCH PLATFORMS

Más contenido relacionado

La actualidad más candente

Introduction to Apache Lucene/Solr
Introduction to Apache Lucene/SolrIntroduction to Apache Lucene/Solr
Introduction to Apache Lucene/Solr
Rahul Jain
 
Solr Application Development Tutorial
Solr Application Development TutorialSolr Application Development Tutorial
Solr Application Development Tutorial
Erik Hatcher
 
Solr Recipes Workshop
Solr Recipes WorkshopSolr Recipes Workshop
Solr Recipes Workshop
Erik Hatcher
 
Introduction to Solr
Introduction to SolrIntroduction to Solr
Introduction to Solr
Erik Hatcher
 
Apache Solr crash course
Apache Solr crash courseApache Solr crash course
Apache Solr crash course
Tommaso Teofili
 

La actualidad más candente (20)

Introduction to Apache Lucene/Solr
Introduction to Apache Lucene/SolrIntroduction to Apache Lucene/Solr
Introduction to Apache Lucene/Solr
 
Apache Solr
Apache SolrApache Solr
Apache Solr
 
Solr Recipes
Solr RecipesSolr Recipes
Solr Recipes
 
Introduction to Solr
Introduction to SolrIntroduction to Solr
Introduction to Solr
 
Tips for Tuning Solr Search: No Coding Required
Tips for Tuning Solr Search: No Coding RequiredTips for Tuning Solr Search: No Coding Required
Tips for Tuning Solr Search: No Coding Required
 
Introduction to Apache Solr
Introduction to Apache SolrIntroduction to Apache Solr
Introduction to Apache Solr
 
New-Age Search through Apache Solr
New-Age Search through Apache SolrNew-Age Search through Apache Solr
New-Age Search through Apache Solr
 
Introduction to Apache Solr
Introduction to Apache SolrIntroduction to Apache Solr
Introduction to Apache Solr
 
Integrating the Solr search engine
Integrating the Solr search engineIntegrating the Solr search engine
Integrating the Solr search engine
 
Introduction to Apache Solr.
Introduction to Apache Solr.Introduction to Apache Solr.
Introduction to Apache Solr.
 
Introduction to Lucene & Solr and Usecases
Introduction to Lucene & Solr and UsecasesIntroduction to Lucene & Solr and Usecases
Introduction to Lucene & Solr and Usecases
 
Solr Application Development Tutorial
Solr Application Development TutorialSolr Application Development Tutorial
Solr Application Development Tutorial
 
Rapid Prototyping with Solr
Rapid Prototyping with SolrRapid Prototyping with Solr
Rapid Prototyping with Solr
 
Solr Recipes Workshop
Solr Recipes WorkshopSolr Recipes Workshop
Solr Recipes Workshop
 
Battle of the giants: Apache Solr vs ElasticSearch
Battle of the giants: Apache Solr vs ElasticSearchBattle of the giants: Apache Solr vs ElasticSearch
Battle of the giants: Apache Solr vs ElasticSearch
 
Solr Presentation
Solr PresentationSolr Presentation
Solr Presentation
 
Apache Solr Search Course Drupal 7 Acquia
Apache Solr Search Course Drupal 7 AcquiaApache Solr Search Course Drupal 7 Acquia
Apache Solr Search Course Drupal 7 Acquia
 
Introduction to Solr
Introduction to SolrIntroduction to Solr
Introduction to Solr
 
Apache Solr crash course
Apache Solr crash courseApache Solr crash course
Apache Solr crash course
 
Solr: 4 big features
Solr: 4 big featuresSolr: 4 big features
Solr: 4 big features
 

Similar a EVOLVE'13 | Enhance | External Search | Matthias Wermund

Similar a EVOLVE'13 | Enhance | External Search | Matthias Wermund (20)

Apereo OAE - Bootcamp
Apereo OAE - BootcampApereo OAE - Bootcamp
Apereo OAE - Bootcamp
 
Software design with Domain-driven design
Software design with Domain-driven design Software design with Domain-driven design
Software design with Domain-driven design
 
Cross Site Collection Navigation using SPFx, Powershell PnP & PnP-JS
Cross Site Collection Navigation using SPFx, Powershell PnP & PnP-JSCross Site Collection Navigation using SPFx, Powershell PnP & PnP-JS
Cross Site Collection Navigation using SPFx, Powershell PnP & PnP-JS
 
Cross Site Collection Navigation
Cross Site Collection NavigationCross Site Collection Navigation
Cross Site Collection Navigation
 
SharePoint 2013 Search Operations
SharePoint 2013 Search OperationsSharePoint 2013 Search Operations
SharePoint 2013 Search Operations
 
Wikipedia Cloud Search Webinar
Wikipedia Cloud Search WebinarWikipedia Cloud Search Webinar
Wikipedia Cloud Search Webinar
 
Alfresco Summit 2014 - Crafter CMS - Case European Bank
Alfresco Summit 2014 - Crafter CMS - Case European BankAlfresco Summit 2014 - Crafter CMS - Case European Bank
Alfresco Summit 2014 - Crafter CMS - Case European Bank
 
Cross Site Collection Navigation with SPFX, PowerShell PnP, PnP-JS, Office UI
Cross Site Collection Navigation with SPFX, PowerShell PnP, PnP-JS, Office UICross Site Collection Navigation with SPFX, PowerShell PnP, PnP-JS, Office UI
Cross Site Collection Navigation with SPFX, PowerShell PnP, PnP-JS, Office UI
 
Deep-Dive to Azure Search
Deep-Dive to Azure SearchDeep-Dive to Azure Search
Deep-Dive to Azure Search
 
SharePoint Apps model overview
SharePoint Apps model overviewSharePoint Apps model overview
SharePoint Apps model overview
 
Implementing Site Search in CQ5 / AEM
Implementing Site Search in CQ5 / AEMImplementing Site Search in CQ5 / AEM
Implementing Site Search in CQ5 / AEM
 
SharePoint 2013 - What's New
SharePoint 2013 - What's NewSharePoint 2013 - What's New
SharePoint 2013 - What's New
 
SharePoint 2013 Search Based Solutions
SharePoint 2013 Search Based SolutionsSharePoint 2013 Search Based Solutions
SharePoint 2013 Search Based Solutions
 
Developing Search-driven application in SharePoint 2013
 Developing Search-driven application in SharePoint 2013  Developing Search-driven application in SharePoint 2013
Developing Search-driven application in SharePoint 2013
 
Introduction to SharePoint 2013
Introduction to SharePoint 2013Introduction to SharePoint 2013
Introduction to SharePoint 2013
 
Meson: Heterogeneous Workflows with Spark at Netflix
Meson: Heterogeneous Workflows with Spark at NetflixMeson: Heterogeneous Workflows with Spark at Netflix
Meson: Heterogeneous Workflows with Spark at Netflix
 
Top 10 web application development frameworks 2016
Top 10 web application development frameworks 2016Top 10 web application development frameworks 2016
Top 10 web application development frameworks 2016
 
SharePoint 2013 Search Driven Sites - SPSHOU
SharePoint 2013 Search Driven Sites - SPSHOUSharePoint 2013 Search Driven Sites - SPSHOU
SharePoint 2013 Search Driven Sites - SPSHOU
 
Aem offline content
Aem offline contentAem offline content
Aem offline content
 
Boost the Performance of SharePoint Today!
Boost the Performance of SharePoint Today!Boost the Performance of SharePoint Today!
Boost the Performance of SharePoint Today!
 

Más de Evolve The Adobe Digital Marketing Community

Más de Evolve The Adobe Digital Marketing Community (20)

Evolve 19 | Sarah Xu & Kanika Gera | Adobe I/O - Why You Need it to Execute o...
Evolve 19 | Sarah Xu & Kanika Gera | Adobe I/O - Why You Need it to Execute o...Evolve 19 | Sarah Xu & Kanika Gera | Adobe I/O - Why You Need it to Execute o...
Evolve 19 | Sarah Xu & Kanika Gera | Adobe I/O - Why You Need it to Execute o...
 
Evolve 19 | Upen Manickam & Amanda Gray | Adventures in SPA with AEM 6.5
Evolve 19 | Upen Manickam & Amanda Gray | Adventures in SPA with AEM 6.5Evolve 19 | Upen Manickam & Amanda Gray | Adventures in SPA with AEM 6.5
Evolve 19 | Upen Manickam & Amanda Gray | Adventures in SPA with AEM 6.5
 
Evolve 19 | Ameeth Palla | Adobe Asset Link - Use Cases and Pitfalls to Avoid
Evolve 19 | Ameeth Palla | Adobe Asset Link - Use Cases and Pitfalls to AvoidEvolve 19 | Ameeth Palla | Adobe Asset Link - Use Cases and Pitfalls to Avoid
Evolve 19 | Ameeth Palla | Adobe Asset Link - Use Cases and Pitfalls to Avoid
 
Evolve 19 | Giancarlo Berner | JECIS 2 - The Beginning of a New Era in Buildi...
Evolve 19 | Giancarlo Berner | JECIS 2 - The Beginning of a New Era in Buildi...Evolve 19 | Giancarlo Berner | JECIS 2 - The Beginning of a New Era in Buildi...
Evolve 19 | Giancarlo Berner | JECIS 2 - The Beginning of a New Era in Buildi...
 
Evolve 19 | Paul Legan & Kristin Jones | Anatomy of a Solid AEM Implementatio...
Evolve 19 | Paul Legan & Kristin Jones | Anatomy of a Solid AEM Implementatio...Evolve 19 | Paul Legan & Kristin Jones | Anatomy of a Solid AEM Implementatio...
Evolve 19 | Paul Legan & Kristin Jones | Anatomy of a Solid AEM Implementatio...
 
Evolve 19 | Rabiah Coon & Rebecca Blaha | Rockstar Kickoffs for AEM Projects
Evolve 19 | Rabiah Coon & Rebecca Blaha | Rockstar Kickoffs for AEM ProjectsEvolve 19 | Rabiah Coon & Rebecca Blaha | Rockstar Kickoffs for AEM Projects
Evolve 19 | Rabiah Coon & Rebecca Blaha | Rockstar Kickoffs for AEM Projects
 
Evolve19 | Nick Panagopoulos | World Focus: Translation Tips and Trends
Evolve19 | Nick Panagopoulos | World Focus: Translation Tips and TrendsEvolve19 | Nick Panagopoulos | World Focus: Translation Tips and Trends
Evolve19 | Nick Panagopoulos | World Focus: Translation Tips and Trends
 
Evolve 19 | Rabiah Coon, Sabrina Schmidt & Noah Linge | Industry Focus | Furn...
Evolve 19 | Rabiah Coon, Sabrina Schmidt & Noah Linge | Industry Focus | Furn...Evolve 19 | Rabiah Coon, Sabrina Schmidt & Noah Linge | Industry Focus | Furn...
Evolve 19 | Rabiah Coon, Sabrina Schmidt & Noah Linge | Industry Focus | Furn...
 
Evolve 19 | Carl Madaffari | Best Practices | From Customer Data to Customer ...
Evolve 19 | Carl Madaffari | Best Practices | From Customer Data to Customer ...Evolve 19 | Carl Madaffari | Best Practices | From Customer Data to Customer ...
Evolve 19 | Carl Madaffari | Best Practices | From Customer Data to Customer ...
 
Evolve 19 | Kevin Campton & Sharat Radhakrishnan | Industry Focus | Autodesk ...
Evolve 19 | Kevin Campton & Sharat Radhakrishnan | Industry Focus | Autodesk ...Evolve 19 | Kevin Campton & Sharat Radhakrishnan | Industry Focus | Autodesk ...
Evolve 19 | Kevin Campton & Sharat Radhakrishnan | Industry Focus | Autodesk ...
 
Evolve 19 | Gina Petruccelli | Let’s Dig Into Requirements
Evolve 19 | Gina Petruccelli | Let’s Dig Into RequirementsEvolve 19 | Gina Petruccelli | Let’s Dig Into Requirements
Evolve 19 | Gina Petruccelli | Let’s Dig Into Requirements
 
Evolve 19 | Dave Fox | Retaining Niche Talent in a Highly Competitive Environ...
Evolve 19 | Dave Fox | Retaining Niche Talent in a Highly Competitive Environ...Evolve 19 | Dave Fox | Retaining Niche Talent in a Highly Competitive Environ...
Evolve 19 | Dave Fox | Retaining Niche Talent in a Highly Competitive Environ...
 
Evolve 19 | Paul Legan | Going Beyond Metadata: Extracting Meaningful Informa...
Evolve 19 | Paul Legan | Going Beyond Metadata: Extracting Meaningful Informa...Evolve 19 | Paul Legan | Going Beyond Metadata: Extracting Meaningful Informa...
Evolve 19 | Paul Legan | Going Beyond Metadata: Extracting Meaningful Informa...
 
Evolve19 | Giancarlo Berner & Brett Butterfield | AI & Adobe Sensei
Evolve19 | Giancarlo Berner & Brett Butterfield | AI & Adobe SenseiEvolve19 | Giancarlo Berner & Brett Butterfield | AI & Adobe Sensei
Evolve19 | Giancarlo Berner & Brett Butterfield | AI & Adobe Sensei
 
Evolve 19 | Gordon Pike | Prepping for Tomorrow - Creating a Flexible AEM Arc...
Evolve 19 | Gordon Pike | Prepping for Tomorrow - Creating a Flexible AEM Arc...Evolve 19 | Gordon Pike | Prepping for Tomorrow - Creating a Flexible AEM Arc...
Evolve 19 | Gordon Pike | Prepping for Tomorrow - Creating a Flexible AEM Arc...
 
Evolve 19 | Jayan Kandathil | Running AEM Workloads on Microsoft Azure
Evolve 19 | Jayan Kandathil | Running AEM Workloads on Microsoft AzureEvolve 19 | Jayan Kandathil | Running AEM Workloads on Microsoft Azure
Evolve 19 | Jayan Kandathil | Running AEM Workloads on Microsoft Azure
 
Evolve 19 | Amol Anand & Daniel Gordon | Author in AEM Once - Deliver Everywhere
Evolve 19 | Amol Anand & Daniel Gordon | Author in AEM Once - Deliver EverywhereEvolve 19 | Amol Anand & Daniel Gordon | Author in AEM Once - Deliver Everywhere
Evolve 19 | Amol Anand & Daniel Gordon | Author in AEM Once - Deliver Everywhere
 
Evolve 19 | Benjie Wheeler | Intro to Adobe Experience Manager 6.5
Evolve 19 | Benjie Wheeler | Intro to Adobe Experience Manager 6.5Evolve 19 | Benjie Wheeler | Intro to Adobe Experience Manager 6.5
Evolve 19 | Benjie Wheeler | Intro to Adobe Experience Manager 6.5
 
Evolve 19 | Bruce Swann | Adobe Campaign - Capabilities, Roadmap, and Fit wit...
Evolve 19 | Bruce Swann | Adobe Campaign - Capabilities, Roadmap, and Fit wit...Evolve 19 | Bruce Swann | Adobe Campaign - Capabilities, Roadmap, and Fit wit...
Evolve 19 | Bruce Swann | Adobe Campaign - Capabilities, Roadmap, and Fit wit...
 
Evolve 19 | Pete Hoback & Francisco Fagalde | AEM QA, UAT, & Go Live
Evolve 19 | Pete Hoback & Francisco Fagalde | AEM QA, UAT, & Go LiveEvolve 19 | Pete Hoback & Francisco Fagalde | AEM QA, UAT, & Go Live
Evolve 19 | Pete Hoback & Francisco Fagalde | AEM QA, UAT, & Go Live
 

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Último (20)

presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 

EVOLVE'13 | Enhance | External Search | Matthias Wermund

  • 1. 1 ADOBE EXPERIENCE MANAGER & EXTERNAL SEARCH PLATFORMS Matthias Wermund, Senior Application Architect
  • 2. 2 WHY EXTERNAL SEARCH Search is part of most implementation projects • Most of today’s web sites offer any type of search feature • Search exists in various flavors and mixtures • Site search • Typed search • Search as navigation • Relevance search • Location based search • AEM comes with its own search implementation • “External search” in context of AEM means leveraging another platform, hosted outside of the AEM Author/Publish environments
  • 3. 3 WHY EXTERNAL SEARCH Publish search vs. Author search • Publish search • End user accessible • Indexed content is in published state • High frequency access • Author search • Internal AEM author search • Index must include unpublished content • Criteria can include additional content metadata • Both are fundamentally different use cases with different index lifecycle
  • 4. 4 WHY EXTERNAL SEARCH AEM standard search • Part of AEM Java Content Repository (JCR) implementation • AEM adds Predicate API layer • Features • Automatic index generation in all environments • Full-text, facetted search • Access restrictions based on repository access control lists (ACL) • Used behind the scenes for many AEM features So, why not always use JCR search? Here are some reasons.
  • 5. 5 WHY EXTERNAL SEARCH Performance issues of standard search with growing result size 0 2 4 6 8 10 12 14 1 4 7 10 13 16 19 22 25 28 Time(s) Results (x1000) AEM query performance* JCR Query Facet Generation • Facet generation time increases linear with growing result size • JCR query time not impacted the same, but increase is noticeable • Search results are often impossible to cache due to high number of variations * Synthetic content, full-text search, one facet, single requests
  • 6. 6 WHY EXTERNAL SEARCH Scale independently of AEM • External search platforms decouple the search infrastructure from AEM • Search platform can scale independently from AEM, both horizontally and vertically • Some platforms support cloud deployments, e.g. ZooKeeper for Apache Solr • Client-side integration can fully eliminate query impact on AEM
  • 7. 7 WHY EXTERNAL SEARCH Extended feature offering • External platforms provide functionality which AEM currently doesn’t bring out-of-box • A few examples: • Geospatial search • Dynamic relevance control • Index-based type-ahead • Index maintenance UI • More about various possible uses of external index data later.
  • 8. 8 WHY EXTERNAL SEARCH Search multiple data sources at once • Search can span multiple data sources besides AEM • External platforms can join data from any number and type of source systems • Users can query all data at once, with combined pagination, filters and relevance calculation
  • 9. 9 • Created initially by CNET, since 2006 open source • Incorporates and extends Apache Lucene • Supports distributed indexing and searching • Rich search capabilities • HTTP interface, JSON/XML/BIN formats • Integration clients • Standalone Java web application • Administration UI • Widely used on prominent sites wiki.apache.org/solr/PublicServers APACHE SOLR Lucene-powered Open Source Search Platform
  • 10. 10 • Schema fields • Dynamic fields • Custom field types APACHE SOLR Index schema configuration
  • 11. 11 • The main challenge is data extraction • When should the extraction process get initiated? • How to convert the AEM content tree structure into the index format? • And how to transfer the converted data to the external platform? • Once the external index is generated, data querying is a relatively easy step • Query generation is highly specific to the use case • Most search platforms offer standard interfaces or Java libraries to integrate INDEXING AEM CONTENT Steps to create an external index
  • 12. 12 • Pull • Content downloaded by external search platform • Platform needs trigger, e.g. scheduler • Data generation can use same rendering as for user requests • Push • Data uploaded from AEM to external platform • Can happened immediately on modification • Requires to generate data standalone • Combination is possible – Example: • On modification, AEM notifies search platform (Push) • Platform loads the modified content from AEM (Pull) INDEXING AEM CONTENT Integration patterns : Pull vs. Push
  • 13. 13 • Unstructured • No index-specific format • Metadata is extracted after loading • Least effort, end user rendering can be used • Structured • Source data formatted to match search index structure • Leaner • Can carry different data than end user view • Requires structure generation in AEM • The typical unstructured pull data extraction is crawling INDEXING AEM CONTENT Integration patterns (II) : Unstructured vs. Structured
  • 14. 14 • EASE = External AEM Search Extension • Primary goal of the framework is to reduce the complexity of integrating search platforms with AEM • The indexing approach is structured push triggered by content replication • Open source, available starting today • For documentation, API, Maven dependencies & more see github.com/mwmd/ease INDEXING AEM CONTENT Introducing the EASE framework
  • 15. 15 • Supports generation of structured index data • Binary asset indexing • Integrates in AEM Author environment • Incremental index updates triggered by AEM replication (push) • Indexing of versioned content for scheduled replication • Full index generation • Generic integration with search platforms • Apache Solr integration INDEXING AEM CONTENT (Current) EASE framework features
  • 17. 17 INDEXING AEM CONTENT EASE index generation approach
  • 18. 18 INDEXING AEM CONTENT Basic sample project: ease/example • Prerequisites • AEM 5.6 Author • Apache Solr 4.4 • Demonstrates use of EASE framework • No configuration needed • Uses Facets, full text search, relevance • Available on GitHub
  • 19. 19 INDEXING AEM CONTENT Steps to integrate EASE and Solr into project 1. Include ease-core and ease-scr as Maven dependencies 2. Implement indexers matching your content 3. Create OSGi configurations: • IndexService • SolrIndexServer 4. Deploy to AEM Author: • ease-core • ease-solr & dependencies When this is done, activated content will get automatically indexed.
  • 20. 20 INDEXING AEM CONTENT Generation of index data with EASE
  • 21. 21 INDEXING AEM CONTENT Resolving content structure with EASE
  • 22. 22 INDEXING AEM CONTENT Encapsulate handling of proprietary requests • IndexServer handles all communication with search platform • ease-core bundle doesn’t provide platform specific implementation • Implementation of IndexServer for Apache Solr in ease-solr bundle • New connectors to additional platforms are only required to implement this interface
  • 23. 23 • When the data is indexed, it can get queried from custom components • Leveraging platform specific features with proprietary clients • While EASE currently focuses on simplifying the indexing, it helps with queries too • EASE connector bundle per external search platform • Proprietary clients are provided by the bundle (SolrJ for Apache Solr) • In the following, an example implementation will walk through some use cases USING THE EXTERNAL INDEX
  • 24. 24 USING THE EXTERNAL INDEX Example implementation: AEM Know-How Database • Central search for AEM related information • Uses EASE framework • Server- and client-side queries • 50,000 pages in AEM • stackoverflow • Adobe offices • 3,000 external pages • Adobe AEM doc • Adobe CRX doc • Marketing Cloud doc
  • 25. 25 USING THE EXTERNAL INDEX Example implementation: AEM Know-How Database
  • 26. 26 • User-input text query • Query-based ranking • Generation of extracts and term highlighting • Sorting on different fields USING THE EXTERNAL INDEX Full-text search Sorting options Pagination Extract & Highlighting
  • 27. 27 • Manipulation of relevance calculation • Boosting possible on • Terms • Fields • Implementation can leverage user data to generate personalized result (Client Context) USING THE EXTERNAL INDEX Boost manipulation / Personalization Personalization Same result count… …but different ranking
  • 28. 28 USING THE EXTERNAL INDEX Faceted search • Navigation via facets • AND combination of multiple facet values • Facet hit counts calculated based on current search resultFacet hits
  • 29. 29 • Offer search term suggestions based on user input • Highly configurable • Index data • Dictionary • Query parsing • Client-side call to Apache Solr • Can use a standard query or dedicated feature USING THE EXTERNAL INDEX Type-ahead / Auto-complete / Auto-suggest
  • 30. 30 • Proximity search • Distance calculation • Sorting by distance • Center of search is dynamic, can be based on user’s location (Client Context) USING THE EXTERNAL INDEX Geospatial search Distance calculation Distance sorting Location- based query
  • 31. 31 • Component rendering can include content maintained on other pages • Aggregation logic could be easily mirrored in ResourceIndexer • But: If the page-external content is modified, its activation won’t trigger re- indexing of the aggregating page • Use case: • Inherited paragraph system • Reference component • Mitigation options: • Content strategy: Index only standalone, unique page content • Use WCM ReferenceSearch to find and re-index references • Dangerous: reference loops, cascading re-indexing REAL WORLD SEARCH IMPLEMENTATIONS Handling aggregated page content
  • 32. 32 • External platforms have no information about AEM roles and permissions • All index items are visible to everyone by default • In some use cases, access to parts of the index must be restricted • Use case: • Closed User Groups • Mitigation options: • Check access rights for all items on the current result page at runtime • Will break pagination information, type-ahead suggestions • Performance hit • Export effective role permissions as part of index item metadata • Add filter for current user’s role to all queries or into search platform • Requires re-indexing of content on ACL changes • Only practical with a limited number of roles REAL WORLD SEARCH IMPLEMENTATIONS Permission Sensitive Search
  • 33. 33 REAL WORLD SEARCH IMPLEMENTATIONS Index tuning • Interpretation of raw index data dependent on search technology and configuration • Powerful platforms offer deep level of index configuration • Tuning of search behavior means significant effort • Use case: • Full text query and content parsing • Type-ahead suggestions • Result relevance calculation List of available text processors for Solr