lucene-solr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Yonik Seeley <yo...@lucidimagination.com>
Subject Re: priority queue in query component
Date Sat, 06 Feb 2010 16:33:19 GMT
It seems like changing an element in a priority queue breaks the
invariants, and hence it's not doable with a priority queue and with
the current strategy of adding sub-responses as they are received.

One way to continue using a priority queue would be to add
sub-responses to the queue in the preferred order... so if we received
the response from shard2 before shard1, we would just queue it up and
wait for the response to shard1.

-Yonik
http://www.lucidimagination.com


On Sat, Feb 6, 2010 at 10:35 AM, mike anderson <saidtherobot@gmail.com> wrote:
> I have a need to favor documents from one shard over another when duplicates
> occur. I found this code in the query component:
>
>          String prevShard = uniqueDoc.put(id, srsp.getShard());
>          if (prevShard != null) {
>            // duplicate detected
>            numFound--;
>
>            // For now, just always use the first encountered since we can't
> currently
>            // remove the previous one added to the priority queue.  If we
> switched
>            // to the Java5 PriorityQueue, this would be easier.
>            continue;
>            // make which duplicate is used deterministic based on shard
>            // if (prevShard.compareTo(srsp.shard) >= 0) {
>            //  TODO: remove previous from priority queue
>            //  continue;
>            // }
>          }
>
>
> Is there a ticket open for this issue? What would it take to fix?
>
> Thanks,
> Mike
>

Mime
View raw message