<div dir="ltr">I believe I have found the problem.  The comparison half way through this method in VerseRange.java should be &#39;&gt;=&#39; not &#39;&lt;=&#39;.<div><br></div><div><div>   public static VerseRange intersection(VerseRange a, VerseRange b) {</div>
<div>        Versification v11n = a.getVersification();</div><div>        Verse new_start = v11n.max(a.getStart(), b.getStart());</div><div>        Verse new_end = v11n.min(a.getEnd(), b.getEnd());</div><div><br></div><div>
        if (v11n.distance(new_start, new_end) &lt;= 0) {</div><div>            return new VerseRange(a.getVersification(), new_start, new_end);</div><div>        }</div><div><br></div><div>        return null;</div><div>    }</div>
</div><div><br></div><div>This would affect search results that were adjacent when using RangedPassage.</div><div><br></div><div>I will do a few tests and make a pull request tomorrow or soon after.</div><div><br></div><div>
Martin</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On 17 July 2014 23:10, Martin Denham <span dir="ltr">&lt;<a href="mailto:mjdenham@gmail.com" target="_blank">mjdenham@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I have noticed that occasionally some search results are missing when a filter is applied e.g find &#39;light&#39; in Gospel of John only.<div>
<br></div><div>E.g. search text: &#39;+[John] +light&#39; returns only 4 results. It should return 16 results.</div>
<div><br></div><div>I have done a bit of analysis and narrowed the problem down to And Bible using RangedPassage via PassageKeyFactory.setDefaultType(PassageType.MIX).  If I switch back to the default passage type I get the correct results.</div>

<div><br></div><div>The JSword search classes eventually calls: AndQuery.find() </div><div>which has: left.retainAll(right);</div><div>which calls: RangedPassage.retainAll</div><div><br></div><div>I think the error might have already occurred in the left value above or in retainAll.  I need to do some more debugging but if anybody has any suggestions as to what might be wrong I would be grateful.</div>
<span class="HOEnZb"><font color="#888888">
<div><br></div><div>Martin<br></div></font></span></div>
</blockquote></div><br></div>