Folks:

We are building a search capability into our web and plan to use Solr.  While 
we have the initial prototype version up and running on Solr 1.2,  we are now 
turning our attention to sizing/scalability.  

Our app in brief:  We get merchant sku files (in either xml/csv) which we 
process and index and make available to our site visitors to search.   Our 
current plan calls for us to support approx 10,000 merchants each with an 
average of 50,000 sku's.   This will make a total of approx 500 Million SKUs.  
In addition,  we assume that on a daily basis approx 5-10% of the SKUs need to 
be updated (either added/deleted/modified).   (Assume each sku will be approx 
4K)

Here are a few questions that we are thinking about and would value any 
insights you all may have:

a) Should we have just one giant master index (containing all the sku's) and 
then have multiple slaves to handle the search queries?    In this case, the 
master index will be approx 2 TB in size.  Not being an expert in solr/lucene,  
I am thinking that this may be a bad idea to let one index become so large.   
What size limit should we assume for each index?

b) Or, should we partition the 10,000 merchants into N buckets and have a 
master index for each of the N buckets?   We could partition the merchants 
depending on their type or some other simple algorithm.   Then,  we could have 
slaves setup for each of the N masters.  The trick here will be to partition 
the merchants carefully.  Ideally we would like a search for any product type 
to hit only one index but this may not be possible always.   For example, a 
search for "Harry Potter" may result in hits in "books", "dvds", "memorabilia", 
etc etc.  

With N masters we will have to plan for having a distributed search across the 
N indices (and then some mechanism for weighting the results across the results 
that come back).   Any recommendations for a distributed search solution?   I 
saw some references to Katta.  Is this viable?

In the extreme case, we could have one master for each of the merchants (if 
there are 10000 merchants there will be 10,000 master indices).   The advantage 
here is that indices will have to be updated only for every merchant who 
submits a new data file.  The others remain unchanged.

c) By the way,  for those of you who have deployed solr on a production 
environment can you give me your hardware configuration and the rough number of 
search queries that can be handled per second by a single solr instance -- 
assuming a dedicated box?

d) Our plan is to release a beta version Spring 2009.  Should we plan on using 
Solr 1.2 or else move to solr 1.3 now?

Any insights/thoughts/whitepapers will be greatly appreciated!

Cheers,

Bill



Reply via email to