Building Client-side Search Applications with Solr
Upcoming SlideShare
Loading in...5
×
 

Building Client-side Search Applications with Solr

on

  • 2,564 views

Presented by Daniel Beach, Search Application Developer, OpenSource Connections ...

Presented by Daniel Beach, Search Application Developer, OpenSource Connections

Solr is a powerful search engine, but creating a custom user interface can be daunting. In this fast paced session I will present an overview of how to implement a client-side search application using Solr. Using open-source frameworks like SpyGlass (to be released in September) can be a powerful way to jumpstart your development by giving you out-of-the box results views with support for faceting, autocomplete, and detail views. During this talk I will also demonstrate how we have built and deployed lightweight applications that are able to be performant under large user loads, with minimal server resources.

Statistics

Views

Total Views
2,564
Views on SlideShare
2,120
Embed Views
444

Actions

Likes
1
Downloads
21
Comments
0

5 Embeds 444

http://www.opensourceconnections.com 257
http://www.lucenerevolution.org 175
http://opensourceconnections.com 8
http://lucenerevolution.org 3
http://twimblr.appspot.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Building Client-side Search Applications with Solr Building Client-side Search Applications with Solr Presentation Transcript

  • CLIENT-SIDE SEARCH APPS @DanielBeach OpenSource Connections
  • World’s Data Doubling Annually
  • Data Discovery Increasingly Important
  • Client-Side Search Applications
  • Database Traditional Architecture Server Browser
  • Database Server Client-Side Architecture JS App and Assets Browser
  • Client-Side Benefits • • • • Less Architecture Overhead Smaller, Focused Teams Faster to Develop Application Speed
  • Speed Matters.
  • Case Study: Global Patent Search Network http://gpsn.uspto.gov/
  • The Challenge • • • • 4+ Million Patents Terabytes of Data Multiple Languages All within a ~3 Month Timeframe
  • Our Solution:
  • GPSN: Homepage
  • GPSN: Search Results
  • GPSN: Expanded Result
  • GPSN: Search Controls
  • GPSN: Patent Detail Page
  • See it live: http://gpsn.uspto.gov
  • Spyglass Simple search results with Solr + Ember JS http://github.com/o19s/spyglass
  • Spyglass Components Search Input Result Set Searcher Facet Group Infinite Scroll Facet Facet State
  • Setting up the Searcher app.js } App.searcher = SG.SolrSearcher.create({ url: "http://your-solr-url.com/solr/collection/select", params: { "fl": "title_field, description_field, link_field", "q": {}, "fq": [], "start": 0, "rows": 10, "wt": "json" } });
  • Adding Custom Fields to the Search Template index.html } {{#each results}} <li class="sr-item"> <h4><a href="{{link unbound}}">{{ title }}</a></h4> <div> {{{ description }}} </div> </li> {{/each}}
  • Spyglass Results
  • Setting up the Searcher app.js } App.searcher = SG.SolrSearcher.create({ url: "http://your-solr-url.com/solr/collection/select", params: { "fl": "title_field, description_field, link_field", "facet": true, "facet.field": ["facet_field1", "facet_field2"], "facet.limit": 5, "q": {}, "fq": [], "start": 0, "rows": 10, "wt": "json" } });
  • Adding a Facet Group: Step 1 } app.js App.facetGroup1 = SG.FacetGroup.extend({ searcher: App.searcher, fieldName: 'abstract_en', displayName: 'Abstract' });
  • Adding a Facet Group: Step 2 } index.html <div class="sf-module"> {{view App.facetGroup1}} </div>
  • Spyglass Facets
  • Spyglass Blank States index.html } {{#if searcher.isSearching}} <p>Loading Results &hellip;</p> {{/if}} {{#if searcher.noResults}} <p>No results were found. Try broadening your terms.</p> {{/if}} {{#if searcher.allResultsLoaded}} <p>All Results Loaded</p> {{/if}}
  • https://github.com/o19s/Spyglass
  • Avoiding the Pitfalls. (“OMG, Security!”)
  • Security.
  • Google Juice.
  • Solr Requests.
  • Minify All The Things.
  • Pick the Best Option for Your Project.
  • CLIENT-SIDE SEARCH APPS @DanielBeach OpenSource Connections