SlideShare a Scribd company logo
Better Search UX
         Using a
No-frills Search Engine




  Ravi Mynampaty
    @ravimynampaty
Approach

• Tactical

• Baker Library site being redesigned

• So, redesigned search function
     – including Search Engine Results Page
       (SERP)

• Iterative
Motivation
• Merge Baker and HBS search results
     – Allow users to easily switch context
     – Allow views by category / department

• Provide mechanisms to resubmit query to other
  search systems

• Implement common look & feel for Baker Website
  and SERP

• Increase search usage
Background

• Set up at HBS
     – Ultraseek 5
     – Load balanced environment
     – Development instance

• Ultraseek
      – Results display UI based on Python
      – Built-in HTTP server
      – Web admin interface
Old SERP
New SERP
Ultraseek SERP Customization: Some Options
•   Use Java API or RPC Interface

•   HTTP GET results as XML (saquery.xml) or plain text
    (saquery.spy)
       – parse, format & serve

•   HTTP GET results as Python data structure
    (pyquery.spy)
       – eval, format & serve

•   Modify the Ultraseek results display code (query.html)
      – use Python API calls therein
First Steps

• Backed up default display code
     – esp. query.html

• Created our version of query.html

• Started with…

<!--$self.write ('Hello World!')-->
Customized query.html


• Pulled in headers/footers from Baker Website
header =
  urllib.urlopen(header_url).read()

• Mapped collections to tabs
    Baker Library           +url:"library.hbs.edu"
    HBS WK                  +url:"hbswk.hbs.edu“
Built the SERP


• In query.html used Ultraseek Python API to
      – submit query
      – retrieve results

• Displayed results with HTML markup & CSS
Added Analytics Component

• Tracked usage of tabs, query resubmits, etc.

• Logged everything to the Ultraseek logs using
  Ultraseek’s logging mechanisms

• Tracked everything (even Search Tips page!)
13,956 Total Searches
                       (Sept – Dec)




3%   11%    10%


           3%




                                8%
Search Resubmits: Popularity



          256

          167

          151

          423
  ***
          71



“Next Page” usage: Page 1 (94%), Page 2 (4%)
Extended to Other HBS Sites


• Alumni, Exec Ed, HBS Working Knowledge
     – with different sets of tabs, resubmits

• Modifed query.html to be driven off config files
config[‘library'][‘tabs']
  = [‘Baker Website’, ‘HBSWK’, ...]

config[‘alumni'][‘tabs']
  = [‘Alumni Website’, ‘Bulletin’,...]
Better Search UX
Moved on to Main HBS Search

• Horizontal tab paradigm didn’t fit

• Used a vertical tab / right-hand nav model

• Allow result refinement…
      – to slices within HBS

• …and expansion
    – to the rest of Harvard University
Old SERP
New SERP
Other Harvard Web Refinement Option
Pulled In Other Harvard Web Content Results
• Defined the external Ultraseek URL
url =
  ‘http://...:8765/pyquery.spy?qt=term’

• Executed search and downloaded results
results = urllib.urlopen(url).read()

• Built and accessed data structure
results_hash = eval(results)
num_hits = results_hash['nhits']
Conclusion
• Tactical, iterative approach worked

• Fine-grain control over:
     – Display (tabs, hit counts)
     – Behavior (collections, default AND)
     – Clean URLs

• No additional software component

• Customization met business needs

More Related Content

PPTX
RestfulDesignRules
PPTX
SharePoint Framework, React, and Office UI Fabric spc adriatics 2016
PPTX
Rev Your Engines: SharePoint Performance Best Practices
PDF
SharePoint Saturday The Conference 2011 - SP2010 Performance
PDF
Kako pravilno konfigurisati SharePoint on-premises za SharePoint Add-ins (Sha...
PDF
Office 365 Groups and Tasks API - Getting Started
PPTX
Cross Site Collection Navigation with SPFX, PowerShell PnP, PnP-JS, Office UI
PDF
Implementing Site Search in CQ5 / AEM
RestfulDesignRules
SharePoint Framework, React, and Office UI Fabric spc adriatics 2016
Rev Your Engines: SharePoint Performance Best Practices
SharePoint Saturday The Conference 2011 - SP2010 Performance
Kako pravilno konfigurisati SharePoint on-premises za SharePoint Add-ins (Sha...
Office 365 Groups and Tasks API - Getting Started
Cross Site Collection Navigation with SPFX, PowerShell PnP, PnP-JS, Office UI
Implementing Site Search in CQ5 / AEM

What's hot (20)

PDF
(Almost) All About Apps for SharePoint 2013
PPTX
Share point 2016
PPTX
Cross Site Collection Navigation
PPTX
Cross Site Collection Navigation using SPFx, Powershell PnP & PnP-JS
PDF
ECS19 - Laura Kokkarinen - Everything you need to know about SharePoint site ...
PPTX
Kaseya Connect 2012 - WHAT'S NEW IN KASEYA 6.3
PPT
Chef - managing yours servers with Code
PDF
(ATS6-PLAT04) Query service
PDF
SharePoint 2013 – the upgrade story
PPTX
SharePoint 2010 upgrades!
PDF
(ATS6-PLAT02) Accelrys Catalog and Protocol Validation
PPT
TERMINALFOUR t44u 2009 - University of York Case Study
PPTX
Installing and tweaking FASTSearch
PPTX
10 Things I Like in SharePoint 2013 Search
PDF
OASIS - Data Analysis Platform for Multi-tenant Hadoop Cluster
PDF
Scaling SharePoint 2016 Farms with MinRole & Other Tools
PDF
5 Reasons Your Site Needs Acquia Search
PDF
(ATS6-PLAT07) Managing AEP in an enterprise environment
PDF
SharePoint 2010 best practices for infrastructure deployments SharePoint Sat...
PPTX
Technical Overview of FAST Search Server 2010 for SharePoint - SharePoint Sat...
(Almost) All About Apps for SharePoint 2013
Share point 2016
Cross Site Collection Navigation
Cross Site Collection Navigation using SPFx, Powershell PnP & PnP-JS
ECS19 - Laura Kokkarinen - Everything you need to know about SharePoint site ...
Kaseya Connect 2012 - WHAT'S NEW IN KASEYA 6.3
Chef - managing yours servers with Code
(ATS6-PLAT04) Query service
SharePoint 2013 – the upgrade story
SharePoint 2010 upgrades!
(ATS6-PLAT02) Accelrys Catalog and Protocol Validation
TERMINALFOUR t44u 2009 - University of York Case Study
Installing and tweaking FASTSearch
10 Things I Like in SharePoint 2013 Search
OASIS - Data Analysis Platform for Multi-tenant Hadoop Cluster
Scaling SharePoint 2016 Farms with MinRole & Other Tools
5 Reasons Your Site Needs Acquia Search
(ATS6-PLAT07) Managing AEP in an enterprise environment
SharePoint 2010 best practices for infrastructure deployments SharePoint Sat...
Technical Overview of FAST Search Server 2010 for SharePoint - SharePoint Sat...
Ad

Similar to Better Search UX (20)

PDF
How We Incrementally Improved Search
KEY
Google
PDF
Custom Search 85x11
PDF
Custom Search 85x11
PDF
IRJET - Review on Search Engine Optimization
PPT
Google
PPT
Google Search Engine
PPT
Google Search Engine
PDF
Custom Search
PDF
Web Search Engine
PDF
UProRevs-User Profile Relevant Results
PPTX
Search Engine working, Crawlers working, Search Engine mechanism
PPT
Web Crawler
PPTX
Discovery bookmarklet - Metro Science Librarians SIG
PDF
Big Data Web applications for Interactive Hadoop by ENRICO BERTI at Big Data...
PDF
javascript_service_tutorial
PDF
javascript_service_tutorial
PDF
Quest Trail: An Effective Approach for Construction of Personalized Search En...
PPTX
Introduction to google hacking database
PPTX
CSCI 494 - Lect. 3. Anatomy of Search Engines/Building a Crawler
How We Incrementally Improved Search
Google
Custom Search 85x11
Custom Search 85x11
IRJET - Review on Search Engine Optimization
Google
Google Search Engine
Google Search Engine
Custom Search
Web Search Engine
UProRevs-User Profile Relevant Results
Search Engine working, Crawlers working, Search Engine mechanism
Web Crawler
Discovery bookmarklet - Metro Science Librarians SIG
Big Data Web applications for Interactive Hadoop by ENRICO BERTI at Big Data...
javascript_service_tutorial
javascript_service_tutorial
Quest Trail: An Effective Approach for Construction of Personalized Search En...
Introduction to google hacking database
CSCI 494 - Lect. 3. Anatomy of Search Engines/Building a Crawler
Ad

More from Ravi Mynampaty (12)

PDF
Build Your Own World Class Directory Search From Alpha to Omega
PDF
Let Search Power Your Intranet!
PDF
How we spiked the HBS water supply with Solr
PDF
Building a Solr-driven Web Portal
PDF
Developing a Search & Findability Practice for the Enterprise
PDF
Clustering as presented at UX Poland 2013
PDF
Unix for Librarians
PDF
Clustering Search Log Data
PDF
Findability Standards
PDF
What to Feed Your Search Engine: The Evolution of Search Analytics at HBS
PDF
Business owner findability interview questions
PDF
Developing & Implementing Findability Standards
Build Your Own World Class Directory Search From Alpha to Omega
Let Search Power Your Intranet!
How we spiked the HBS water supply with Solr
Building a Solr-driven Web Portal
Developing a Search & Findability Practice for the Enterprise
Clustering as presented at UX Poland 2013
Unix for Librarians
Clustering Search Log Data
Findability Standards
What to Feed Your Search Engine: The Evolution of Search Analytics at HBS
Business owner findability interview questions
Developing & Implementing Findability Standards

Recently uploaded (20)

PPTX
MYSQL Presentation for SQL database connectivity
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Approach and Philosophy of On baking technology
PDF
Machine learning based COVID-19 study performance prediction
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
Cloud computing and distributed systems.
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
DOCX
The AUB Centre for AI in Media Proposal.docx
MYSQL Presentation for SQL database connectivity
Reach Out and Touch Someone: Haptics and Empathic Computing
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
NewMind AI Weekly Chronicles - August'25 Week I
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Approach and Philosophy of On baking technology
Machine learning based COVID-19 study performance prediction
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Programs and apps: productivity, graphics, security and other tools
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Cloud computing and distributed systems.
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Understanding_Digital_Forensics_Presentation.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
sap open course for s4hana steps from ECC to s4
Advanced methodologies resolving dimensionality complications for autism neur...
Per capita expenditure prediction using model stacking based on satellite ima...
The AUB Centre for AI in Media Proposal.docx

Better Search UX

  • 1. Better Search UX Using a No-frills Search Engine Ravi Mynampaty @ravimynampaty
  • 2. Approach • Tactical • Baker Library site being redesigned • So, redesigned search function – including Search Engine Results Page (SERP) • Iterative
  • 3. Motivation • Merge Baker and HBS search results – Allow users to easily switch context – Allow views by category / department • Provide mechanisms to resubmit query to other search systems • Implement common look & feel for Baker Website and SERP • Increase search usage
  • 4. Background • Set up at HBS – Ultraseek 5 – Load balanced environment – Development instance • Ultraseek – Results display UI based on Python – Built-in HTTP server – Web admin interface
  • 7. Ultraseek SERP Customization: Some Options • Use Java API or RPC Interface • HTTP GET results as XML (saquery.xml) or plain text (saquery.spy) – parse, format & serve • HTTP GET results as Python data structure (pyquery.spy) – eval, format & serve • Modify the Ultraseek results display code (query.html) – use Python API calls therein
  • 8. First Steps • Backed up default display code – esp. query.html • Created our version of query.html • Started with… <!--$self.write ('Hello World!')-->
  • 9. Customized query.html • Pulled in headers/footers from Baker Website header = urllib.urlopen(header_url).read() • Mapped collections to tabs Baker Library  +url:"library.hbs.edu" HBS WK  +url:"hbswk.hbs.edu“
  • 10. Built the SERP • In query.html used Ultraseek Python API to – submit query – retrieve results • Displayed results with HTML markup & CSS
  • 11. Added Analytics Component • Tracked usage of tabs, query resubmits, etc. • Logged everything to the Ultraseek logs using Ultraseek’s logging mechanisms • Tracked everything (even Search Tips page!)
  • 12. 13,956 Total Searches (Sept – Dec) 3% 11% 10% 3% 8%
  • 13. Search Resubmits: Popularity 256 167 151 423 *** 71 “Next Page” usage: Page 1 (94%), Page 2 (4%)
  • 14. Extended to Other HBS Sites • Alumni, Exec Ed, HBS Working Knowledge – with different sets of tabs, resubmits • Modifed query.html to be driven off config files config[‘library'][‘tabs'] = [‘Baker Website’, ‘HBSWK’, ...] config[‘alumni'][‘tabs'] = [‘Alumni Website’, ‘Bulletin’,...]
  • 16. Moved on to Main HBS Search • Horizontal tab paradigm didn’t fit • Used a vertical tab / right-hand nav model • Allow result refinement… – to slices within HBS • …and expansion – to the rest of Harvard University
  • 19. Other Harvard Web Refinement Option
  • 20. Pulled In Other Harvard Web Content Results • Defined the external Ultraseek URL url = ‘http://...:8765/pyquery.spy?qt=term’ • Executed search and downloaded results results = urllib.urlopen(url).read() • Built and accessed data structure results_hash = eval(results) num_hits = results_hash['nhits']
  • 21. Conclusion • Tactical, iterative approach worked • Fine-grain control over: – Display (tabs, hit counts) – Behavior (collections, default AND) – Clean URLs • No additional software component • Customization met business needs