SlideShare a Scribd company logo
1 of 16
Download to read offline
we help search engines
understand humans
Pavel Penchev
Guten Tag Damen und Herren
Damenmotorradlederhandschuhe
Warmduscher
Turnbeutelvergesser
Damenetuikleid
Weinkühlschrank
TM
10+ years at Fredhopper
Seen Search from different perspectives
Now part of SearchHub@CXP
1
2
3
About me
Search is about helping people
find what they need. It‘s not
judged by some abstract
definitions of accuracy. It‘s
jugded by how much it helps
people.
couple of references
Queries
Products
Search
Collector
Search QueryUser Query
SEARCH|HUB helps search engines understand humans
Why no Search Analytics off-the-shelf?
NO REAL OFF-
THE-SHELF
OPTIONS
REQUIRES CUSTOMER
INVESTMENT
DISCONNECTED
FROM SEARCH
Different expressivity
Always requires post-processing
Lacks search-specific capabilities
Site changes & Communication
Access and setup
Alignment
GA / Econda / PIWIK are great
but lack important features
How to get multivariate query
analytics?
How to cluster, normalise and
aggregate query dependent
KPIs
SEARCH COLLECTOR
JavaScript SDK for Search Event collection
Open sourced under MIT license at https://github.com/searchhub/search-collector
Basic Architecture - Assemble Your Own Solution
Collect search specific events from search & navigation pages based on query selectors,
events and human interaction with the page
A search is not an isolated event, it happens within a context that carries a lot of useful data
points
COLLECTORS
CONTEXT RESOLVERS
Components for assembling pipelines for writing data in the desired format and endpoint
type
WRITERS
Sample integration code
var c = new SearchCollector.Collector({
“resolver” : new SearchCollector.SessionCookieResolver(),
“endpoint” : “https://sqs.aws…….amazonws.com"
}
c.add(new ProductClickCollector(“.product-item”, e => e.get(“id”));
c.add(new ImpressionCollector(“.product-item”, e => e.get(“id”));
c.start();
SearchResultCollector
Collectors
InstantSearchCollector
ProductClickCollector
FilterClickCollector
ImpressionCollector
SearchEventCollector
BrowserCollector
QueryResolver
Resolvers
SessionCookieResolver
PositionResolver
RestEventWriter
Writers
SQSEventWriter
JSONEnvelopeWriter
BufferedWriter
Base64EncodingWriter
Behind the scenes
Buffer the events and group them before sending, necessary for
things like impressions, data is kept across page reloads
DELAYED WRITING
An impression consist of a product rendering entering the
viewport
IMPRESSION DETECTION
Handle not only the elements that are currently rendered on the
page but also dynamically inserted elements
DOM INSERTION DETECTION
The context of the search is of great importance, we resolve the
search and the filtering and attach it to each event
QUERY RESOLVING
Writing supported for REST interfaces, SQS and compatible
queues
SQS SUPPORT
Unit testing of event collection via Puppeteer headless browser
testing framework
HEADLESS TESTS
DEMO TIME
RESOURCES
The Search Collector source code, published under MIT license
https://github.com/searchhub/search-collector
Learn more about SearchHub
https://searchhub.io
Search Engine
Application
(Ecommerce Platform)
User
Analytics
THANK YOU
CXP Commerce Experts GmbH
Am Schoßgatter 3 / 75172 Pforzheim
info@commerce-experts.com
+49 (0)7231 203 676 5

More Related Content

Similar to Mices 2018 cxp pavel_penchev_searchhub-searchcollector

OSGi and Spring Data for simple (Web) Application Development - Christian Bar...
OSGi and Spring Data for simple (Web) Application Development - Christian Bar...OSGi and Spring Data for simple (Web) Application Development - Christian Bar...
OSGi and Spring Data for simple (Web) Application Development - Christian Bar...
mfrancis
 
Summer '16 Realease notes
Summer '16 Realease notesSummer '16 Realease notes
Summer '16 Realease notes
aggopal1011
 

Similar to Mices 2018 cxp pavel_penchev_searchhub-searchcollector (20)

Freeing Yourself from an RDBMS Architecture
Freeing Yourself from an RDBMS ArchitectureFreeing Yourself from an RDBMS Architecture
Freeing Yourself from an RDBMS Architecture
 
Optimizing Code Reusability for SharePoint using Linq to SharePoint & the MVP...
Optimizing Code Reusability for SharePoint using Linq to SharePoint & the MVP...Optimizing Code Reusability for SharePoint using Linq to SharePoint & the MVP...
Optimizing Code Reusability for SharePoint using Linq to SharePoint & the MVP...
 
Lab EPiServer Find - Advanced developer scenarios
Lab EPiServer Find - Advanced developer scenariosLab EPiServer Find - Advanced developer scenarios
Lab EPiServer Find - Advanced developer scenarios
 
Elasticsearch
ElasticsearchElasticsearch
Elasticsearch
 
Integrate MongoDB & SQL data with a single REST API
Integrate MongoDB & SQL data with a single REST APIIntegrate MongoDB & SQL data with a single REST API
Integrate MongoDB & SQL data with a single REST API
 
Big Data Analytics in the Cloud with Microsoft Azure
Big Data Analytics in the Cloud with Microsoft AzureBig Data Analytics in the Cloud with Microsoft Azure
Big Data Analytics in the Cloud with Microsoft Azure
 
OSGi and Spring Data for simple (Web) Application Development - Christian Bar...
OSGi and Spring Data for simple (Web) Application Development - Christian Bar...OSGi and Spring Data for simple (Web) Application Development - Christian Bar...
OSGi and Spring Data for simple (Web) Application Development - Christian Bar...
 
OSGi and Spring Data for simple (Web) Application Development
OSGi and Spring Data  for simple (Web) Application DevelopmentOSGi and Spring Data  for simple (Web) Application Development
OSGi and Spring Data for simple (Web) Application Development
 
Apache Calcite Tutorial - BOSS 21
Apache Calcite Tutorial - BOSS 21Apache Calcite Tutorial - BOSS 21
Apache Calcite Tutorial - BOSS 21
 
Tweak Geeks #FOS15
Tweak Geeks #FOS15Tweak Geeks #FOS15
Tweak Geeks #FOS15
 
EpiServer find Macaw
EpiServer find MacawEpiServer find Macaw
EpiServer find Macaw
 
You Don't Know SEO
You Don't Know SEOYou Don't Know SEO
You Don't Know SEO
 
Summer '16 Realease notes
Summer '16 Realease notesSummer '16 Realease notes
Summer '16 Realease notes
 
CQRS and Event Sourcing
CQRS and Event Sourcing CQRS and Event Sourcing
CQRS and Event Sourcing
 
[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습
[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습
[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습
 
Mvc summary
Mvc summaryMvc summary
Mvc summary
 
RedisConf17 - Redis Powers Next-gen Ambient Intelligence Platform
RedisConf17 - Redis Powers Next-gen Ambient Intelligence PlatformRedisConf17 - Redis Powers Next-gen Ambient Intelligence Platform
RedisConf17 - Redis Powers Next-gen Ambient Intelligence Platform
 
Data driven search
Data driven searchData driven search
Data driven search
 
Relevance trilogy may dream be with you! (dec17)
Relevance trilogy  may dream be with you! (dec17)Relevance trilogy  may dream be with you! (dec17)
Relevance trilogy may dream be with you! (dec17)
 
Splunk Ninjas: New Features, Pivot, and Search Dojo
Splunk Ninjas: New Features, Pivot, and Search DojoSplunk Ninjas: New Features, Pivot, and Search Dojo
Splunk Ninjas: New Features, Pivot, and Search Dojo
 

Recently uploaded

Recently uploaded (20)

Microsoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdfMicrosoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdf
 
Your Ultimate Web Studio for Streaming Anywhere | Evmux
Your Ultimate Web Studio for Streaming Anywhere | EvmuxYour Ultimate Web Studio for Streaming Anywhere | Evmux
Your Ultimate Web Studio for Streaming Anywhere | Evmux
 
Rapidoform for Modern Form Building and Insights
Rapidoform for Modern Form Building and InsightsRapidoform for Modern Form Building and Insights
Rapidoform for Modern Form Building and Insights
 
Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?
 
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
 
OpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCAOpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCA
 
CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...
CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...
CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...
 
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
 
Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...
Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...
Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...
 
Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...
Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...
Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...
 
Abortion Pill Prices Mthatha (@](+27832195400*)[ 🏥 Women's Abortion Clinic In...
Abortion Pill Prices Mthatha (@](+27832195400*)[ 🏥 Women's Abortion Clinic In...Abortion Pill Prices Mthatha (@](+27832195400*)[ 🏥 Women's Abortion Clinic In...
Abortion Pill Prices Mthatha (@](+27832195400*)[ 🏥 Women's Abortion Clinic In...
 
A Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdfA Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdf
 
Abortion Clinic In Stanger ](+27832195400*)[ 🏥 Safe Abortion Pills In Stanger...
Abortion Clinic In Stanger ](+27832195400*)[ 🏥 Safe Abortion Pills In Stanger...Abortion Clinic In Stanger ](+27832195400*)[ 🏥 Safe Abortion Pills In Stanger...
Abortion Clinic In Stanger ](+27832195400*)[ 🏥 Safe Abortion Pills In Stanger...
 
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdfAzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
 
The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)
 
Encryption Recap: A Refresher on Key Concepts
Encryption Recap: A Refresher on Key ConceptsEncryption Recap: A Refresher on Key Concepts
Encryption Recap: A Refresher on Key Concepts
 
Evolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI EraEvolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI Era
 
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit MilanWorkshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
 
Abortion Pill Prices Jozini ](+27832195400*)[ 🏥 Women's Abortion Clinic in Jo...
Abortion Pill Prices Jozini ](+27832195400*)[ 🏥 Women's Abortion Clinic in Jo...Abortion Pill Prices Jozini ](+27832195400*)[ 🏥 Women's Abortion Clinic in Jo...
Abortion Pill Prices Jozini ](+27832195400*)[ 🏥 Women's Abortion Clinic in Jo...
 
[GRCPP] Introduction to concepts (C++20)
[GRCPP] Introduction to concepts (C++20)[GRCPP] Introduction to concepts (C++20)
[GRCPP] Introduction to concepts (C++20)
 

Mices 2018 cxp pavel_penchev_searchhub-searchcollector

  • 1. we help search engines understand humans Pavel Penchev
  • 2. Guten Tag Damen und Herren Damenmotorradlederhandschuhe Warmduscher Turnbeutelvergesser Damenetuikleid Weinkühlschrank TM
  • 3. 10+ years at Fredhopper Seen Search from different perspectives Now part of SearchHub@CXP 1 2 3 About me
  • 4. Search is about helping people find what they need. It‘s not judged by some abstract definitions of accuracy. It‘s jugded by how much it helps people.
  • 7. Why no Search Analytics off-the-shelf? NO REAL OFF- THE-SHELF OPTIONS REQUIRES CUSTOMER INVESTMENT DISCONNECTED FROM SEARCH Different expressivity Always requires post-processing Lacks search-specific capabilities Site changes & Communication Access and setup Alignment GA / Econda / PIWIK are great but lack important features How to get multivariate query analytics? How to cluster, normalise and aggregate query dependent KPIs
  • 8. SEARCH COLLECTOR JavaScript SDK for Search Event collection Open sourced under MIT license at https://github.com/searchhub/search-collector
  • 9. Basic Architecture - Assemble Your Own Solution Collect search specific events from search & navigation pages based on query selectors, events and human interaction with the page A search is not an isolated event, it happens within a context that carries a lot of useful data points COLLECTORS CONTEXT RESOLVERS Components for assembling pipelines for writing data in the desired format and endpoint type WRITERS
  • 10. Sample integration code var c = new SearchCollector.Collector({ “resolver” : new SearchCollector.SessionCookieResolver(), “endpoint” : “https://sqs.aws…….amazonws.com" } c.add(new ProductClickCollector(“.product-item”, e => e.get(“id”)); c.add(new ImpressionCollector(“.product-item”, e => e.get(“id”)); c.start();
  • 13. Behind the scenes Buffer the events and group them before sending, necessary for things like impressions, data is kept across page reloads DELAYED WRITING An impression consist of a product rendering entering the viewport IMPRESSION DETECTION Handle not only the elements that are currently rendered on the page but also dynamically inserted elements DOM INSERTION DETECTION The context of the search is of great importance, we resolve the search and the filtering and attach it to each event QUERY RESOLVING Writing supported for REST interfaces, SQS and compatible queues SQS SUPPORT Unit testing of event collection via Puppeteer headless browser testing framework HEADLESS TESTS
  • 15. RESOURCES The Search Collector source code, published under MIT license https://github.com/searchhub/search-collector Learn more about SearchHub https://searchhub.io Search Engine Application (Ecommerce Platform) User Analytics
  • 16. THANK YOU CXP Commerce Experts GmbH Am Schoßgatter 3 / 75172 Pforzheim info@commerce-experts.com +49 (0)7231 203 676 5