From: Timo Sirainen Date: Sat, 29 Mar 2014 20:45:16 +0000 (+0200) Subject: fts-sorl: Skip returned duplicate results. X-Git-Tag: 2.2.13.rc1~181 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=91c58af8e992d028eb325707904debb58ae80438;p=thirdparty%2Fdovecot%2Fcore.git fts-sorl: Skip returned duplicate results. 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. --- diff --git a/src/plugins/fts-solr/solr-connection.c b/src/plugins/fts-solr/solr-connection.c index 15cb1b6d5b..85ae6f4be5 100644 --- a/src/plugins/fts-solr/solr-connection.c +++ b/src/plugins/fts-solr/solr-connection.c @@ -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;