From 91c58af8e992d028eb325707904debb58ae80438 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Sat, 29 Mar 2014 22:45:16 +0200 Subject: [PATCH] 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. --- src/plugins/fts-solr/solr-connection.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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; -- 2.47.3