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-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org

Reply via email to