[
https://issues.apache.org/jira/browse/LUCENE-1169?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Michael Busch updated LUCENE-1169:
----------------------------------
Attachment: lucene-1169.patch
The problem is that in IndexSearcher#search() scorer.skipTo() is called without
checking if the scorer is already at the same doc as the Filter's
docIdSetIterator. And scorer.skipTo(scorer.doc()) behaves as scorer.next():
{code:java}
/** Skips entries to the first beyond the current whose document number is
* greater than or equal to <i>target</i>. <p>Returns true iff there is such
* an entry. <p>Behaves as if written: <pre>
* boolean skipTo(int target) {
* do {
* if (!next())
* return false;
* } while (target > doc());
* return true;
* }
* </pre>
* Some implementations are considerably more efficient than that.
*/
public abstract boolean skipTo(int target) throws IOException;
{code}
which means that it is possible to miss the current doc (as Eks' testcase
shows).
All tests (including the new one) pass with this patch. I'll commit soon.
> Search with Filter does not work!
> ---------------------------------
>
> Key: LUCENE-1169
> URL: https://issues.apache.org/jira/browse/LUCENE-1169
> Project: Lucene - Java
> Issue Type: Bug
> Components: Search
> Reporter: Eks Dev
> Assignee: Michael Busch
> Priority: Blocker
> Attachments: lucene-1169.patch, TestFilteredSearch.java
>
>
> See attached JUnitTest, self-explanatory
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]