Frequently Asked Questions
What is Solandra?
Solandra is a free-text search engine built on Cassandra and Solr.
Why is it named Solandra?
Solr + Cassandra = Solandra.
Why would I want to use Solandra over Solr by itself?
You should consider using Solandra if:
– You find you struggle with managing Solr on more than one box.
– You already use Cassandra and want to add free-text search to your application.
– You need to maintain a huge number of distinct indexes.
– You need to scale a massive index (many millions of documents).
– You want better real-time search semantics.
Are all things supported?
Checkout the distributed limitations of solr (where e.g. date faceting is listed). Another limitation of solandra is that spellcheck indices are currently not supported.
‘Committing’ is still necessary, right?
Committing happens automatically though writes are slightly buffered. If you want to force consistency commit will do this.
Optimize is no longer necessary as Cassandra will do this.
All configs except schema.xml should reside in solandra-app/solr/ conf, correct?
Yes. However, pay special attention if you are migrating configs from a solr instance, since you will need to replace in solrconfig.xml the LuceneIndexReader/Writer with the Solandra equivalents:
<indexReaderFactory name="IndexReaderFactory" class="solandra.SolandraIndexReaderFactory"/>
Will normal delete queries work?
Would it be faster (and recommended) to directly access cassandra when I just need to access/update some docs by id?
I’ve not tested this but I think it may be, The nice thing is you can store the payload of the document in cassandra and just index the interesting parts in solandra without storing the fields. The only difference is the speed of the SOLR binary transport and http overhead.
I’m using the solrJ api to feed via a streaming server. Is using more than one writing thread recommended?
Sure, especially if you have many nodes and are using SHARDS_AT_ONCE > 1 (I usually set this to 4)