Riak search performance FUD
Jeroen van Dijk
jeroentjevandijk at gmail.com
Wed Nov 30 05:01:28 EST 2011
I'm currently evaluating the search functionality of Riak. This involves
porting an application from Postgres/Sphinx to possibly only Riak. The
application I'm porting doesn't need advanced search, but it does need a
level of search I have come to believe this isn't provided in a feasible
way by Riak Search out of the box. I've also seen some sources that make me
worry about the performance of search [1, 2]. I hope to be proved wrong
here or get some advice how to work around this so I can just use Riak
Search and without an external search facility. As a disclaimer, I haven't
done any benchmarks yet and this is just based on what I have read so far.
The use case I'm talking about is when you are looking for a term that is
very common and thus will yield many results. My understanding of the
implementation of Riak  is that the search is divided into
a few phases. The first one is collecting results for each term. After that
comes merging, sorting and limiting the result set. So for this particular
case collecting all results would be infeasible and would kill performance.
Even when a limit is set because limiting comes in a phase after collecting
and the merging of results.
The first question is, can the above be confirmed? I've read about Riak
Search performance optimization here , but that seems to be for a
I've read here  that one can use search_fold to interrupt the collecting
phase when enough results are fetched. I would like to know if this a
best/official practice and if it really solves the issue?
I guess what I'm missing is a wiki page of "when and when not to use Riak
Search" or "how and how not to use Riak search". If this already exists I
completely missed it.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the riak-users