Better Search UX         Using aNo-frills Search Engine  Ravi Mynampaty    @ravimynampaty
Approach• Tactical• Baker Library site being redesigned• So, redesigned search function     – including Search Engine Resu...
Motivation• Merge Baker and HBS search results     – Allow users to easily switch context     – Allow views by category / ...
Background• Set up at HBS     – Ultraseek 5     – Load balanced environment     – Development instance• Ultraseek      – R...
Old SERP
New SERP
Ultraseek SERP Customization: Some Options•   Use Java API or RPC Interface•   HTTP GET results as XML (saquery.xml) or pl...
First Steps• Backed up default display code     – esp. query.html• Created our version of query.html• Started with…<!--$se...
Customized query.html• Pulled in headers/footers from Baker Websiteheader =  urllib.urlopen(header_url).read()• Mapped col...
Built the SERP• In query.html used Ultraseek Python API to      – submit query      – retrieve results• Displayed results ...
Added Analytics Component• Tracked usage of tabs, query resubmits, etc.• Logged everything to the Ultraseek logs using  Ul...
13,956 Total Searches                       (Sept – Dec)3%   11%    10%           3%                                8%
Search Resubmits: Popularity          256          167          151          423  ***          71“Next Page” usage: Page 1...
Extended to Other HBS Sites• Alumni, Exec Ed, HBS Working Knowledge     – with different sets of tabs, resubmits• Modifed ...
Moved on to Main HBS Search• Horizontal tab paradigm didn’t fit• Used a vertical tab / right-hand nav model• Allow result ...
Old SERP
New SERP
Other Harvard Web Refinement Option
Pulled In Other Harvard Web Content Results• Defined the external Ultraseek URLurl =  ‘http://...:8765/pyquery.spy?qt=term...
Conclusion• Tactical, iterative approach worked• Fine-grain control over:     – Display (tabs, hit counts)     – Behavior ...
Better Search UX
Upcoming SlideShare
Loading in …5
×

Better Search UX

2,469 views

Published on

Example of improving search using technology already in place. This approach worked well for us. Maybe worth trying in your oranization too before purchasing $$$$ software?

Published in: Technology
3 Comments
2 Likes
Statistics
Notes
No Downloads
Views
Total views
2,469
On SlideShare
0
From Embeds
0
Number of Embeds
62
Actions
Shares
0
Downloads
0
Comments
3
Likes
2
Embeds 0
No embeds

No notes for slide

Better Search UX

  1. 1. Better Search UX Using aNo-frills Search Engine Ravi Mynampaty @ravimynampaty
  2. 2. Approach• Tactical• Baker Library site being redesigned• So, redesigned search function – including Search Engine Results Page (SERP)• Iterative
  3. 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. 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
  5. 5. Old SERP
  6. 6. New SERP
  7. 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. 8. First Steps• Backed up default display code – esp. query.html• Created our version of query.html• Started with…<!--$self.write (Hello World!)-->
  9. 9. Customized query.html• Pulled in headers/footers from Baker Websiteheader = urllib.urlopen(header_url).read()• Mapped collections to tabs Baker Library  +url:"library.hbs.edu" HBS WK  +url:"hbswk.hbs.edu“
  10. 10. Built the SERP• In query.html used Ultraseek Python API to – submit query – retrieve results• Displayed results with HTML markup & CSS
  11. 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. 12. 13,956 Total Searches (Sept – Dec)3% 11% 10% 3% 8%
  13. 13. Search Resubmits: Popularity 256 167 151 423 *** 71“Next Page” usage: Page 1 (94%), Page 2 (4%)
  14. 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 filesconfig[‘library][‘tabs] = [‘Baker Website’, ‘HBSWK’, ...]config[‘alumni][‘tabs] = [‘Alumni Website’, ‘Bulletin’,...]
  15. 15. 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
  16. 16. Old SERP
  17. 17. New SERP
  18. 18. Other Harvard Web Refinement Option
  19. 19. Pulled In Other Harvard Web Content Results• Defined the external Ultraseek URLurl = ‘http://...:8765/pyquery.spy?qt=term’• Executed search and downloaded resultsresults = urllib.urlopen(url).read()• Built and accessed data structureresults_hash = eval(results)num_hits = results_hash[nhits]
  20. 20. 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

×