]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
fts-sorl: Skip returned duplicate results.
authorTimo Sirainen <tss@iki.fi>
Sat, 29 Mar 2014 20:45:16 +0000 (22:45 +0200)
committerTimo Sirainen <tss@iki.fi>
Sat, 29 Mar 2014 20:45:16 +0000 (22:45 +0200)
Similar to bugfix d63b209737be in fts-lucene.

This caused assert-crash at least when searching from virtual mailbox
because the score array was larger than the actual number of results.

src/plugins/fts-solr/solr-connection.c

index 15cb1b6d5b8315e69076f3585c3ec656fc92e7c0..85ae6f4be5ec919f08aa074a8f368bb53f562275 100644 (file)
@@ -260,8 +260,9 @@ static void solr_lookup_add_doc(struct solr_lookup_xml_context *ctx)
        }
        result = solr_result_get(ctx, box_id);
 
-       seq_range_array_add(&result->uids, ctx->uid);
-       if (ctx->score != 0) {
+       if (seq_range_array_add(&result->uids, ctx->uid)) {
+               /* duplicate result */
+       } else if (ctx->score != 0) {
                score = array_append_space(&result->scores);
                score->uid = ctx->uid;
                score->score = ctx->score;