The Fifth Elephant 2014

A conference on big data and analytics

Saumitra Srivastav

@saumitra

Building distributed search applications using Apache SOLR

Submitted Apr 29, 2014

The objective of this workshop is to introduce attendees with most common features of a search application and how to implement them using Apache Solr. The workshop will also cover how to scale the application by leveraging SolrCloud.

We will see the performance factors which should be kept in mind while desinging your application using Solr and if time permits, without going into ElasticSearch details, I will share the differences between Solr and ElasticSearch.

Outline

For the workshop, we will index and search data from ‘StackExchange’ sites using dumps available here and build backend for following demo application: saumitra.me/solrdemo/. (Tested only on Chrome and Firefox).

Agenda:

  1. What is Solr? Use cases and architecture
  2. Solr schema, config, tokenizers and filters
  3. Indexing data:
    • From disk using SolrJ
    • Importing from database(MySQL) with DataImport Handler
  4. Querying Solr (Filters, Faceting, highlighting, sorting, grouping, boosting, range, function and fuzzy queries)
  5. Adding ‘Auto Suggest’ component to auto complete user queries
  6. Using ‘Clustering’ component to cluster similar results.
  7. SolrCloud
    • Architecture
    • Setting up a multinode cluster with Zookeeper
    • Creating a distributed index
    • Collections API
  8. Solr Admin UI

Requirements

Workshop will be delivered using a virtual image. You need to have VirtualBox installed to import the image. Download OS specific version of VirtualBox from https://www.virtualbox.org/wiki/Downloads.

Try to bring laptop with at least 4 GB RAM. Operating system MUST be 64 bit. Participant should have basic Java knowledge.

Speaker bio

Links

Slides

http://www.slideshare.net/saumitra121/apache-solr-workshop

Comments

{{ gettext('Login to leave a comment') }}

{{ gettext('Post a comment…') }}
{{ gettext('New comment') }}
{{ formTitle }}

{{ errorMsg }}

{{ gettext('No comments posted yet') }}