Hi Sanne,<br><br>Thank you for the feedback! I will see this ParallelMultiSearcher today and all you other comments.<br><br>I have a little doubt, about the development environment that you use. I&#39;m using Eclipse, but since the migration to Git, I&#39;m having some troubles. The Git plugin is not so good... <br>

<br>Are you using Eclipse or another IDE? If you using Eclipse, are you using another GUI (outside Eclipse) to synchronize and see all changes?<br><br>thanks!<br><br>Israel<br><br><div class="gmail_quote">On Mon, Jan 10, 2011 at 10:53 AM, Sanne Grinovero <span dir="ltr">&lt;<a href="mailto:sanne.grinovero@gmail.com">sanne.grinovero@gmail.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">Hi Israel,<br>
thank you very much, I&#39;ve been very eager to read some code on this.<br>
<br>
I&#39;ve started to add some very minor comments to github; it would<br>
greatly help if you could add some<br>
heading javadoc to each class you created, for example what&#39;s the<br>
purpose and role of QueryBox?<br>
<br>
About sorting, it&#39;s good to have a starter, but I don&#39;t think we can<br>
use reflection so massively, nor<br>
rely on Comparator.<br>
<br>
Sort fields aren&#39;t mandated to be stored, so it&#39;s not an option to<br>
pre-extract them from the index either;<br>
bottom line, it&#39;s not enough to retrieve only the matching objects<br>
from the remote node, you have to fetch<br>
also some index lowlevel metadata to be able to properly merge the<br>
results using the appropriate sorting.<br>
<br>
I just found this code which might be very useful as inspiration, it&#39;s<br>
designed to merge results<br>
from searches performed in different threads, but if you re-think the<br>
executor as remote node executors,<br>
you should be set:<br>
org.apache.lucene.search.ParallelMultiSearcher.search(Weight, Filter, int, Sort)<br>
<br>
So you have each node perform a Query on his local index, but then the<br>
final sort is performed on the requesting<br>
node again processing the same TopFieldDocs which each remote node created.<br>
When returning the matching value objects, return the TopFieldDocs<br>
too. Actually I&#39;d say it should be fine to retrieve<br>
the values at a later (second phase) step, as it&#39;s quite possible<br>
people want to retrieve only the &quot;top 100&quot; or similar queries.<br>
<br>
Finally, it would be great to see some test. We don&#39;t need extreme<br>
code coverage at this point, but it would greatly help to<br>
have at least a two nodes scenario with a simple sort being performed,<br>
it&#39;s also nice for people<br>
wanting to look into it, as an example of how to use your code and<br>
what are the entry points.<br>
<br>
thank you, great job.<br>
Feel free to ask anything, by email or on IRC.<br>
<br>
Sanne<br>
<br>
<br>
2011/1/7 Israel Lacerra &lt;<a href="mailto:israeldl@gmail.com">israeldl@gmail.com</a>&gt;:<br>
<div><div></div><div class="h5">&gt; I&#39;ve pushed some code in <a href="https://github.com/israeldl/infinispan/" target="_blank">https://github.com/israeldl/infinispan/</a><br>
&gt;<br>
&gt; This is not the final version. Is just to you take a look and tell me what<br>
&gt; you think. This commit have some problems (I&#39;m fighting with Git yet).<br>
&gt; Ignore the changes in demos/*.<br>
&gt;<br>
&gt; To use the distributed query, we have to call<br>
&gt; QueryFactory.getDistributedQuery.<br>
&gt;<br>
&gt; There must be a lot things that I have to improve in the code, but I hope it<br>
&gt; is not in a totally wrong way!<br>
&gt;<br>
&gt; Some thoughts:<br>
&gt; - In the QueryBox, I made a simple eviction policy, and probably not the<br>
&gt; best. I maintain up to 300 lazyIterators. What you think is a good policy??<br>
&gt; - To make the sort, I had to force the fields used in that sort to implement<br>
&gt; Comparable. I could not use comparator methods behind the Sort class of<br>
&gt; Lucene. One option would be to create another way to user create the sort<br>
&gt; method and then from there we would create the lucene Sort. What you think?<br>
&gt; - I created a ClusteredQueryFacade on org.infinispan.commands, because I<br>
&gt; initialize this command in CommandsFactoryImpl.initializeReplicableCommand.<br>
&gt; There is a better way??<br>
&gt; - The sort is made in a naive way. If we have too many nodes, probably we<br>
&gt; will have problems. Should I improve this? In a real case, the number of<br>
&gt; nodes will be too big?<br>
&gt;<br>
&gt;<br>
&gt; thanks!<br>
&gt;<br>
&gt; Israel<br>
&gt;<br>
&gt; On Tue, Jan 4, 2011 at 2:49 PM, Manik Surtani &lt;<a href="mailto:manik@jboss.org">manik@jboss.org</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; On 30 Dec 2010, at 18:34, Israel Lacerra wrote:<br>
&gt;&gt;<br>
&gt;&gt; &gt; Manik,<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I&#39;m gonna need a few more days. I&#39;ll probably send you the code on the<br>
&gt;&gt; &gt; middle of the next week (about jan/6).<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Guys,<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; About the way I&#39;ll send the code, I think the best is to make a fork on<br>
&gt;&gt; &gt; github and then I push my changes on this fork and send you the url of the<br>
&gt;&gt; &gt; fork. Right?<br>
&gt;&gt;<br>
&gt;&gt; Yes.  Pls post the link to this mail list so others can take a look as<br>
&gt;&gt; well.<br>
&gt;&gt;<br>
&gt;&gt; Cheers<br>
&gt;&gt; Manik<br>
&gt;&gt;<br>
&gt;&gt; --<br>
&gt;&gt; Manik Surtani<br>
&gt;&gt; <a href="mailto:manik@jboss.org">manik@jboss.org</a><br>
&gt;&gt; <a href="http://twitter.com/maniksurtani" target="_blank">twitter.com/maniksurtani</a><br>
&gt;&gt;<br>
&gt;&gt; Lead, Infinispan<br>
&gt;&gt; <a href="http://www.infinispan.org" target="_blank">http://www.infinispan.org</a><br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;<br>
&gt;<br>
</div></div><div><div></div><div class="h5">&gt; _______________________________________________<br>
&gt; infinispan-dev mailing list<br>
&gt; <a href="mailto:infinispan-dev@lists.jboss.org">infinispan-dev@lists.jboss.org</a><br>
&gt; <a href="https://lists.jboss.org/mailman/listinfo/infinispan-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/infinispan-dev</a><br>
&gt;<br>
<br>
_______________________________________________<br>
infinispan-dev mailing list<br>
<a href="mailto:infinispan-dev@lists.jboss.org">infinispan-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/infinispan-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/infinispan-dev</a></div></div></blockquote></div><br>