Olaf Zschiedrich on Solr at eBay's German Classifieds Site

DZone 's Guide to

Olaf Zschiedrich on Solr at eBay's German Classifieds Site

· Java Zone ·
Free Resource
Olaf Zschiedrich leads development for eBay Kleinanzeigen, Germany’s number one classifieds ad site. Before that he was part of the core architecture team at the mobile.international GmbH. He also worked for Siemens TS where he was involved in building the Customer Information System for the MTA New York City Transit subway system. He has a passion for high-traffic web applications, search technologies, agile development methods and is a believer in open source.

Attendees will learn how eBay Germany has implemented Solr, why Solr was selected, which Solr features are utilized. and how Solr is configured and used in production. Recommended best practices will be profiled alomng with eBay Kleinanzeigen plans for future deployment of Solr.

DZone:  What will be the topic of your Lucene Revolution 2011 talk?

Olaf Zschiedrich:  It is a case study about our usage of Solr. I will explain why Solr was chosen, what features are utilized, how we run Solr in production and recommend some best practices.

DZone:  What are the main challenges for searching within eBay's classifieds?

Olaf:  An excellent search experience is the key functionality for a good classifieds site. Users must be able to explore inventory in multiple ways. One way is faceted browsing which allows users to look around by following a faceted navigation. For users that know exactly what they are looking for, a great freetext/keyword search is needed that delivers highly relevant results.

DZone:  What made eBay Kleinanzeigen decide to use Solr for their search platform?  What search challenges did Solr help eBay Kleinanzeigen's overcome?

Olaf:  eBay Kleinanzeigen was developed from scratch in 2009. The timeframe was only 4 months. We needed a feature-rich, scalable search engine and we did not have much time for research. Required key functionalities have been excellent freetext search, facets, stemming, spellchecking, auto-suggestions, finding similar items and support for synonyms as well as none-functional requirements like performance, scalability or easy application integration.

Solr was the perfect fit as most of the needed features are supported out of the box. Moreover it is based on Lucene, the de-facto standard for freetext search in Java. Lucene at that time was already very proven and robust. Another plus was that Solr is written in Java. We do use Java for our platform development as well, which makes it easy for us to extend our debug Solr in case it is needed.

DZone:  Is eBay Kleinanzeigen anticipating heavy usage of the new features in Solr 3.1?  What are your plans for the future deployment of Solr?

Olaf:  Solr 3.1 is brand new. We plan to migrate to it as soon as possible after executing some load and performance tests. One feature we are going to look at is the new spatial/distance search that also offers sorting by distance. This  was a big problem in previous Solr versions. Another one is the new autosuggest component. We do have quite a good autosuggest solution based on the term component but it will be interesting to check what benefits the new component is adding.

We also plan the to move further applications over to Solr. Some of our applications are still searching against the database, which has limitations that we are going to solve by searching against Solr.

DZone:  Do you have a "wishlist" for new features in future versions of Solr and Lucene?

Olaf:  The feature we need the most is real-time updates. Currently you can only try to become as near real-time as possible even in cases where true real-time index updates are needed. This is a hard to implement feature,A but I really hope that it will become part of the Lucene/Solr core one day.

Check the Lucene Revolution site for conference agenda, pricing, some early bird discounts and training specials may still be available. Don't miss this once a year opportunity!

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}