Hi, First you need to investigate WHY faceting and querying is too slow. What exactly do you mean by slow? Can you please tell us more about your setup? * How large documents and how many fields? * What kind of queries? How many hits? How many facets? Have you studies &debugQuery=true output? * Do you use filter queries (fq) extensively? * What data do you facet on? Many unique values per field? Text or ranges? What facet.method? * What kind of hardware? RAM/CPU * How have you configured your JVM? How much memory? GC?
As you see, you will have to provide a lot more information on your use case and setup in order for us to judge correct action to take. You might need to adjust your config, or to optimize your queries or caches, slim your schema, buy some more RAM, or an SSD :) Normally, going multi core on one box will not necessarily help in itself, as there is overhead in sharding multi cores as well. However, it COULD be a solution since you say that most of the time you only need to consider 1/7 of your data. I would perhaps consider one "hot" core for last 24h, and one "archive" core for older data. You could then tune these differently regarding caches etc. Can you get back with some more details? -- Jan Høydahl, search solution architect Cominvent AS - www.cominvent.com Solr Training - www.solrtraining.com On 6. mai 2012, at 17:07, Yuval Dotan wrote: > Hi All > We have an index of ~2,000,000,000 Documents and the query and facet times > are too slow for us. > Before using the shards solution for improving performance, we thought > about using the multicore feature (our goal is to maximize performance for > a single machine). > Most of our queries will be limited by time, hence we want to partition the > data by date/time. > We want to partition the data because the index size is too big and doesn't > fit into memory (80 Gb's). > > 1. Is multi core the best way to implement my requirement? > 2. I noticed there are some LOAD / UNLOAD actions on a core - should i use > these action when managing my cores? if so how can i LOAD a core that i > have unloaded > for example: > I have 7 partitions / cores - one for each day of the week > In most cases I will search for documents only on the last day core. > Once every 10000 queries I need documents from all cores. > Question: Do I need to unload all of the old cores and then load them on > demand (when i see i need data from these cores)? > 3. If the question to the last answer is no, how do i ensure that only > cores that are loaded into memory are the ones I want? > > Thanks > Yuval