This is an automated email from the ASF dual-hosted git repository. hossman pushed a commit to branch SOLR-17335 in repository https://gitbox.apache.org/repos/asf/solr.git
commit 7fca0be147e4d159dff510455c091294290e57a9 Author: Chris Hostetter <[email protected]> AuthorDate: Tue Jun 18 12:38:29 2024 -0700 Tidy --- .../search/neural/VectorSimilarityQParserTest.java | 154 ++++++++++++++++----- 1 file changed, 121 insertions(+), 33 deletions(-) diff --git a/solr/core/src/test/org/apache/solr/search/neural/VectorSimilarityQParserTest.java b/solr/core/src/test/org/apache/solr/search/neural/VectorSimilarityQParserTest.java index ff6af589cc0..cf6aeb65973 100644 --- a/solr/core/src/test/org/apache/solr/search/neural/VectorSimilarityQParserTest.java +++ b/solr/core/src/test/org/apache/solr/search/neural/VectorSimilarityQParserTest.java @@ -151,7 +151,11 @@ public class VectorSimilarityQParserTest extends SolrTestCaseJ4 { String vectorToSearch = "[1.0, 2.0, 3.0, 4.0]"; assertQ( - req(CommonParams.Q, "{!vectorSimilarity f=vector2 minReturn=0.8}" + vectorToSearch, "fl", "id"), + req( + CommonParams.Q, + "{!vectorSimilarity f=vector2 minReturn=0.8}" + vectorToSearch, + "fl", + "id"), "//result[@numFound='3']", "//result/doc[1]/str[@name='id'][.='11']", "//result/doc[2]/str[@name='id'][.='13']", @@ -249,14 +253,22 @@ public class VectorSimilarityQParserTest extends SolrTestCaseJ4 { assertQEx( "missing vector to search should throw Exception", "incorrect vector dimension. The vector value has size 3 while it is expected a vector with size 4", - req(CommonParams.Q, "{!vectorSimilarity f=vector minReturn=0.0}" + vectorToSearch, "fl", "id"), + req( + CommonParams.Q, + "{!vectorSimilarity f=vector minReturn=0.0}" + vectorToSearch, + "fl", + "id"), SolrException.ErrorCode.BAD_REQUEST); vectorToSearch = "[2.0, 4.4,,]"; assertQEx( "incorrect vector to search should throw Exception", "incorrect vector dimension. The vector value has size 2 while it is expected a vector with size 4", - req(CommonParams.Q, "{!vectorSimilarity f=vector minReturn=0.0}" + vectorToSearch, "fl", "id"), + req( + CommonParams.Q, + "{!vectorSimilarity f=vector minReturn=0.0}" + vectorToSearch, + "fl", + "id"), SolrException.ErrorCode.BAD_REQUEST); } @@ -266,35 +278,55 @@ public class VectorSimilarityQParserTest extends SolrTestCaseJ4 { assertQEx( "incorrect vector to search should throw Exception", "incorrect vector format. The expected format is:'[f1,f2..f3]' where each element f is a float", - req(CommonParams.Q, "{!vectorSimilarity f=vector minReturn=0.0}" + vectorToSearch, "fl", "id"), + req( + CommonParams.Q, + "{!vectorSimilarity f=vector minReturn=0.0}" + vectorToSearch, + "fl", + "id"), SolrException.ErrorCode.BAD_REQUEST); vectorToSearch = "[2.0, 4.4, 3.5, 6.4"; assertQEx( "incorrect vector to search should throw Exception", "incorrect vector format. The expected format is:'[f1,f2..f3]' where each element f is a float", - req(CommonParams.Q, "{!vectorSimilarity f=vector minReturn=0.0}" + vectorToSearch, "fl", "id"), + req( + CommonParams.Q, + "{!vectorSimilarity f=vector minReturn=0.0}" + vectorToSearch, + "fl", + "id"), SolrException.ErrorCode.BAD_REQUEST); vectorToSearch = "2.0, 4.4, 3.5, 6.4]"; assertQEx( "incorrect vector to search should throw Exception", "incorrect vector format. The expected format is:'[f1,f2..f3]' where each element f is a float", - req(CommonParams.Q, "{!vectorSimilarity f=vector minReturn=0.0}" + vectorToSearch, "fl", "id"), + req( + CommonParams.Q, + "{!vectorSimilarity f=vector minReturn=0.0}" + vectorToSearch, + "fl", + "id"), SolrException.ErrorCode.BAD_REQUEST); vectorToSearch = "[2.0, 4.4, 3.5, stringElement]"; assertQEx( "incorrect vector to search should throw Exception", "incorrect vector element: ' stringElement'. The expected format is:'[f1,f2..f3]' where each element f is a float", - req(CommonParams.Q, "{!vectorSimilarity f=vector minReturn=0.0}" + vectorToSearch, "fl", "id"), + req( + CommonParams.Q, + "{!vectorSimilarity f=vector minReturn=0.0}" + vectorToSearch, + "fl", + "id"), SolrException.ErrorCode.BAD_REQUEST); vectorToSearch = "[2.0, 4.4, , ]"; assertQEx( "incorrect vector to search should throw Exception", "incorrect vector element: ' '. The expected format is:'[f1,f2..f3]' where each element f is a float", - req(CommonParams.Q, "{!vectorSimilarity f=vector minReturn=0.0}" + vectorToSearch, "fl", "id"), + req( + CommonParams.Q, + "{!vectorSimilarity f=vector minReturn=0.0}" + vectorToSearch, + "fl", + "id"), SolrException.ErrorCode.BAD_REQUEST); } @@ -303,7 +335,11 @@ public class VectorSimilarityQParserTest extends SolrTestCaseJ4 { String vectorToSearch = "[1.0, 2.0, 3.0, 4.0]"; assertQ( - req(CommonParams.Q, "{!vectorSimilarity f=vector minReturn=0.8}" + vectorToSearch, "fl", "id"), + req( + CommonParams.Q, + "{!vectorSimilarity f=vector minReturn=0.8}" + vectorToSearch, + "fl", + "id"), "//result[@numFound='8']", "//result/doc[1]/str[@name='id'][.='1']", "//result/doc[2]/str[@name='id'][.='4']", @@ -344,7 +380,8 @@ public class VectorSimilarityQParserTest extends SolrTestCaseJ4 { CommonParams.Q, "id:(3 4 7 2)", "fq", - "{!vectorSimilarity f=vector minReturn=0.8 preFilter='id:(1 4 7 8 9)'}" + vectorToSearch, + "{!vectorSimilarity f=vector minReturn=0.8 preFilter='id:(1 4 7 8 9)'}" + + vectorToSearch, "fq", "id:(4 20 7)", "fl", @@ -385,7 +422,12 @@ public class VectorSimilarityQParserTest extends SolrTestCaseJ4 { "//result/doc[3]/str[@name='id'][.='7']"); // minReturn -> 1,4,2,10,3,7,5,6 + '8' -> fq -> 4,2,7,8 assertQ( - req(common, "fq", filt, "q", "id:8^=0.01 OR {!vectorSimilarity f=vector minReturn=0.8 v=$vec}"), + req( + common, + "fq", + filt, + "q", + "id:8^=0.01 OR {!vectorSimilarity f=vector minReturn=0.8 v=$vec}"), "//result[@numFound='4']", "//result/doc[1]/str[@name='id'][.='4']", "//result/doc[2]/str[@name='id'][.='2']", @@ -430,7 +472,9 @@ public class VectorSimilarityQParserTest extends SolrTestCaseJ4 { "fq", "id:(1 9 20 3 5 7 8)", "q", - "id:8^=100 OR {!vectorSimilarity f=vector minReturn=0.8 preFilter='" + filt + "' v=$vec}"), + "id:8^=100 OR {!vectorSimilarity f=vector minReturn=0.8 preFilter='" + + filt + + "' v=$vec}"), "//result[@numFound='3']", "//result/doc[1]/str[@name='id'][.='8']", "//result/doc[2]/str[@name='id'][.='3']", @@ -462,11 +506,19 @@ public class VectorSimilarityQParserTest extends SolrTestCaseJ4 { final String filt = "id:(1 2 7 20)"; for (SolrQueryRequest req : Arrays.asList( - req(common, "q", "{!vectorSimilarity f=vector minReturn=0.8}" + vectorToSearch, "fq", filt), req( common, "q", - "{!vectorSimilarity f=vector preFilter=\"" + filt + "\" minReturn=0.8}" + vectorToSearch), + "{!vectorSimilarity f=vector minReturn=0.8}" + vectorToSearch, + "fq", + filt), + req( + common, + "q", + "{!vectorSimilarity f=vector preFilter=\"" + + filt + + "\" minReturn=0.8}" + + vectorToSearch), req( common, "q", @@ -515,7 +567,10 @@ public class VectorSimilarityQParserTest extends SolrTestCaseJ4 { req( common, "q", - "{!vectorSimilarity f=vector preFilter=$fx preFilter=$fy " + minR + "}" + vectorToSearch, + "{!vectorSimilarity f=vector preFilter=$fx preFilter=$fy " + + minR + + "}" + + vectorToSearch, "fx", fx, "fy", @@ -547,7 +602,8 @@ public class VectorSimilarityQParserTest extends SolrTestCaseJ4 { // shouldn't matter if global fq w/tag even exists, usage is an error req( "q", - "{!vectorSimilarity f=vector minReturn=0.8 preFilter='id:1' includeTags=xxx}" + vectorToSearch), + "{!vectorSimilarity f=vector minReturn=0.8 preFilter='id:1' includeTags=xxx}" + + vectorToSearch), SolrException.ErrorCode.BAD_REQUEST); assertQEx( "vecSim preFilter localparm incompatible with include/exclude localparams", @@ -555,7 +611,8 @@ public class VectorSimilarityQParserTest extends SolrTestCaseJ4 { // shouldn't matter if global fq w/tag even exists, usage is an error req( "q", - "{!vectorSimilarity f=vector minReturn=0.8 preFilter='id:1' excludeTags=xxx}" + vectorToSearch), + "{!vectorSimilarity f=vector minReturn=0.8 preFilter='id:1' excludeTags=xxx}" + + vectorToSearch), SolrException.ErrorCode.BAD_REQUEST); } @@ -578,7 +635,9 @@ public class VectorSimilarityQParserTest extends SolrTestCaseJ4 { // localparam prefiltering, global fqs applied independently assertQ( req( - "q", "{!vectorSimilarity f=vector preFilter='id:(3 4 9 2 7 8)' minReturn=0.8}" + vectorToSearch, + "q", + "{!vectorSimilarity f=vector preFilter='id:(3 4 9 2 7 8)' minReturn=0.8}" + + vectorToSearch, "fq", "-id:4", "fl", "id"), "//result[@numFound='3']", @@ -603,11 +662,15 @@ public class VectorSimilarityQParserTest extends SolrTestCaseJ4 { // default behavior is all fq's pre-filter, req(common, "q", "{!vectorSimilarity f=vector minReturn=0.8}" + vectorToSearch), // diff ways of explicitly requesting both fq params - req(common, "q", "{!vectorSimilarity f=vector includeTags=aa minReturn=0.8}" + vectorToSearch), req( common, "q", - "{!vectorSimilarity f=vector includeTags=aa excludeTags='' minReturn=0.8}" + vectorToSearch), + "{!vectorSimilarity f=vector includeTags=aa minReturn=0.8}" + vectorToSearch), + req( + common, + "q", + "{!vectorSimilarity f=vector includeTags=aa excludeTags='' minReturn=0.8}" + + vectorToSearch), req( common, "q", @@ -616,11 +679,13 @@ public class VectorSimilarityQParserTest extends SolrTestCaseJ4 { req( common, "q", - "{!vectorSimilarity f=vector includeTags=xx includeTags=yy minReturn=0.8}" + vectorToSearch), + "{!vectorSimilarity f=vector includeTags=xx includeTags=yy minReturn=0.8}" + + vectorToSearch), req( common, "q", - "{!vectorSimilarity f=vector includeTags=xx,yy,bogus minReturn=0.8}" + vectorToSearch))) { + "{!vectorSimilarity f=vector includeTags=xx,yy,bogus minReturn=0.8}" + + vectorToSearch))) { assertQ( req, "//result[@numFound='3']", @@ -645,16 +710,29 @@ public class VectorSimilarityQParserTest extends SolrTestCaseJ4 { for (SolrQueryRequest req : Arrays.asList( // explicit local empty preFilter - req(common, "q", "{!vectorSimilarity f=vector preFilter='' minReturn=0.8}" + vectorToSearch), + req( + common, + "q", + "{!vectorSimilarity f=vector preFilter='' minReturn=0.8}" + vectorToSearch), // diff ways of explicitly including none of the global fq params - req(common, "q", "{!vectorSimilarity f=vector includeTags='' minReturn=0.8}" + vectorToSearch), - req(common, "q", "{!vectorSimilarity f=vector includeTags=bogus minReturn=0.8}" + vectorToSearch), + req( + common, + "q", + "{!vectorSimilarity f=vector includeTags='' minReturn=0.8}" + vectorToSearch), + req( + common, + "q", + "{!vectorSimilarity f=vector includeTags=bogus minReturn=0.8}" + vectorToSearch), // diff ways of explicitly excluding all of the global fq params - req(common, "q", "{!vectorSimilarity f=vector excludeTags=aa minReturn=0.8}" + vectorToSearch), req( common, "q", - "{!vectorSimilarity f=vector includeTags=aa excludeTags=aa minReturn=0.8}" + vectorToSearch), + "{!vectorSimilarity f=vector excludeTags=aa minReturn=0.8}" + vectorToSearch), + req( + common, + "q", + "{!vectorSimilarity f=vector includeTags=aa excludeTags=aa minReturn=0.8}" + + vectorToSearch), req( common, "q", @@ -665,12 +743,19 @@ public class VectorSimilarityQParserTest extends SolrTestCaseJ4 { "q", "{!vectorSimilarity f=vector includeTags=xx,yy excludeTags=aa minReturn=0.8}" + vectorToSearch), - req(common, "q", "{!vectorSimilarity f=vector excludeTags=xx,yy minReturn=0.8}" + vectorToSearch), - req(common, "q", "{!vectorSimilarity f=vector excludeTags=aa minReturn=0.8}" + vectorToSearch), req( common, "q", - "{!vectorSimilarity f=vector excludeTags=xx excludeTags=yy minReturn=0.8}" + vectorToSearch), + "{!vectorSimilarity f=vector excludeTags=xx,yy minReturn=0.8}" + vectorToSearch), + req( + common, + "q", + "{!vectorSimilarity f=vector excludeTags=aa minReturn=0.8}" + vectorToSearch), + req( + common, + "q", + "{!vectorSimilarity f=vector excludeTags=xx excludeTags=yy minReturn=0.8}" + + vectorToSearch), req( common, "q", @@ -679,7 +764,8 @@ public class VectorSimilarityQParserTest extends SolrTestCaseJ4 { req( common, "q", - "{!vectorSimilarity f=vector excludeTags=xx,yy,bogus minReturn=0.8}" + vectorToSearch))) { + "{!vectorSimilarity f=vector excludeTags=xx,yy,bogus minReturn=0.8}" + + vectorToSearch))) { assertQ(req, "//result[@numFound='1']", "//result/doc[1]/str[@name='id'][.='7']"); } } @@ -706,7 +792,8 @@ public class VectorSimilarityQParserTest extends SolrTestCaseJ4 { req( common, "q", - "{!vectorSimilarity f=vector includeTags=yy excludeTags='' minReturn=0.8}" + vectorToSearch), + "{!vectorSimilarity f=vector includeTags=yy excludeTags='' minReturn=0.8}" + + vectorToSearch), req( common, "q", @@ -714,7 +801,8 @@ public class VectorSimilarityQParserTest extends SolrTestCaseJ4 { req( common, "q", - "{!vectorSimilarity f=vector includeTags=yy excludeTags=xx minReturn=0.8}" + vectorToSearch), + "{!vectorSimilarity f=vector includeTags=yy excludeTags=xx minReturn=0.8}" + + vectorToSearch), req( common, "q",
