You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@lucene.apache.org by "Tomoko Uchida (Jira)" <ji...@apache.org> on 2022/05/23 12:33:00 UTC

[jira] [Created] (LUCENE-10589) Fix corner case in TestKnnVectorQuery.testRandomWithFilter

Tomoko Uchida created LUCENE-10589:
--------------------------------------

             Summary: Fix corner case in TestKnnVectorQuery.testRandomWithFilter
                 Key: LUCENE-10589
                 URL: https://issues.apache.org/jira/browse/LUCENE-10589
             Project: Lucene - Core
          Issue Type: Improvement
            Reporter: Tomoko Uchida


{{TestKnnVectorQuery.testRandomWithFilter}} can fail with java.lang.UnsupportedOperationException.

Reproducible command
{code:java}
./gradlew test --tests TestKnnVectorQuery.testRandomWithFilter -Dtests.seed=1DA39B92702DAC45 -Dtests.multiplier=3
{code}
{code:java}
org.apache.lucene.search.TestKnnVectorQuery > testRandomWithFilter FAILED
    java.lang.UnsupportedOperationException: exact search is not supported
        at __randomizedtesting.SeedInfo.seed([1DA39B92702DAC45:6BEAC2197AD96AE0]:0)
        at org.apache.lucene.search.TestKnnVectorQuery$ThrowingKnnVectorQuery.exactSearch(TestKnnVectorQuery.java:715)
        at org.apache.lucene.search.KnnVectorQuery.searchLeaf(KnnVectorQuery.java:151)
        at org.apache.lucene.search.KnnVectorQuery.rewrite(KnnVectorQuery.java:108)
        at org.apache.lucene.search.ConstantScoreQuery.rewrite(ConstantScoreQuery.java:44)
        at org.apache.lucene.search.IndexSearcher.rewrite(IndexSearcher.java:789)
        at org.apache.lucene.tests.search.AssertingIndexSearcher.rewrite(AssertingIndexSearcher.java:69)
        at org.apache.lucene.search.IndexSearcher.rewrite(IndexSearcher.java:803)
        at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:685)
        at org.apache.lucene.search.IndexSearcher.searchAfter(IndexSearcher.java:667)
        at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:584)
        at org.apache.lucene.search.TestKnnVectorQuery.testRandomWithFilter(TestKnnVectorQuery.java:556)
{code}
In some edge cases (depending on the random seed), [KnnVectorQuery.java#147|https://github.com/apache/lucene/blob/fe9d26178d033f585c08a5e86708063ac0ec0c9e/lucene/core/src/java/org/apache/lucene/search/KnnVectorQuery.java#L147] becomes false, and then `exactSearch()` is called.

The upper bound of [the test range query (filter)|https://github.com/apache/lucene/blob/fe9d26178d033f585c08a5e86708063ac0ec0c9e/lucene/core/src/test/org/apache/lucene/search/TestKnnVectorQuery.java#L554] could be 200 (the max value of "tag" field + 1) instead of lower + 150 to make it "unrestrictive"?



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org