balaji.a wrote: > Hi All, > I am aware that Solr internally uses Lucene for search and indexing. But > it would be helpful if anybody explains about Solr features that is not > provided by Lucene. > > Thanks, > Balaji. > Any advanced Lucene application generally goes down the same path:
Build a system to manage IndexReaders and IndexWriters and concurrency and index view refreshing. This is very hard for beginners to get right - though many have tried. Figure out how you want to manage (or not) some kind of schema. Write something that *basically* does the job. Write something so that none java programmers can setup the schema so you don't have to. Add niceties on top, like support for efficient autocomplete and spellchecking and faceting and plugins. Figure out a scheme to replicate and distribute indexes so that you can scale. Add support for other APIs. REST, perl, whatever else your crazy superiors are pulling from your crazy coworkers. Add support for parsing rich documents, like pdfs, ms word, and dozens of other formats. Do it a short time with a small team. Spend a lot of time fixing bugs and whacking at performance issues. Get most of it wrong because you will the first time you do this. If your lucky: get a lot of it right too and feel great about your large complicated system as you hurry to fix all of its many imperfections - and then spend lots of time keeping up with the latest changes, features, and improvements added to Lucene. Or sit on the old features frozen in time. You won't have done it all either - its too much work to do it all well in a reasonable amount of time for a dev team that is not actually supposed to be building a search server. You will cut stuff, you will skimp on stuff, and you will make tradeoffs left and right. I've gone down that path - I started *just* before Solr got rolling in 06. Lots of people have gone down that path or are on that path. Solr does all of that for you, and it does it well. Many of those that work on Lucene work on Solr. New Lucene features automatically go into Solr. Solr will be maintained and developed by a team of people that are not you, while your homegrown system (which does only <60% of what Solr does and does it worse) will likely cobweb over 95% of the code. I love developing with Lucene, and I bet you will too - but most people should be using Solr. Certain, target applications can still benefit using Lucene. Some Lucene features don't move to Solr for a while. If you want near real-time, thats only in Lucene right now. If you want everything done per segment, that just Lucene right now (Solr still does some thing not per segment). There are other little pros as well. Its a tradeoff, that for the general guy looking for search, heavily favors using Solr. -- - Mark http://www.lucidimagination.com