Wasn't sure which mailing list to send this to. I'm writing an application that can be configured to run directly with lucene or with solr and I'm trying to figure out whether optimization of the index should be totally eliminated, eliminated in the lucene case only or what.
If I read the 3.5 lucene javadocs, optimize() has been deprecated because it is "rarely justified" with the current lucene index implementation (I started with lucene in the 1.42 days when I think it was pretty much a necessity). However, If I read the lucid imagination 3.4 manual (page 176), it talks about how optimizing will merge a lot of small blocks together making the index more efficient-which is exactly what I thought optimize did. Since solr is based on lucene, I'm wondering if the 3.4 manual is simply out-of-date on this point or whether there is something else going on. Our application is indexing content in "real time" and so the index changes frequently during the day. Some of our indexes only contain a few hundred thousand documents. However, in one of our applications there are over 50 million documents (using Solr with multiple shards). I thought optimization was a way to keep the index segments merged and thus make the searching more efficient. I thought it was especially needed if the index was being updated frequently. When should I optimize? Thanks in advance for any feedback. Scott