diff --git a/code/functions/search-query/java/nu/marginalia/functions/searchquery/query_parser/QueryParser.java b/code/functions/search-query/java/nu/marginalia/functions/searchquery/query_parser/QueryParser.java index 0cd358c2..f44bd115 100644 --- a/code/functions/search-query/java/nu/marginalia/functions/searchquery/query_parser/QueryParser.java +++ b/code/functions/search-query/java/nu/marginalia/functions/searchquery/query_parser/QueryParser.java @@ -83,8 +83,9 @@ public class QueryParser { // special case to deal with possible RPAREN token at the end, // but we don't want to break if it's likely part of the search term - if (c == '(' && prevC != ')' && parenDepth > 0) + if (c == ')' && prevC != '(' && parenDepth > 0) { break; + } } String displayStr = query.substring(i, end); diff --git a/code/functions/search-query/test/nu/marginalia/query/svc/QueryFactoryTest.java b/code/functions/search-query/test/nu/marginalia/query/svc/QueryFactoryTest.java index a07f9e72..0adb2f56 100644 --- a/code/functions/search-query/test/nu/marginalia/query/svc/QueryFactoryTest.java +++ b/code/functions/search-query/test/nu/marginalia/query/svc/QueryFactoryTest.java @@ -160,78 +160,65 @@ public class QueryFactoryTest { @Test public void testExpansion() { - - long start = System.currentTimeMillis(); var subquery = parseAndGetSpecs("elden ring mechanical keyboard slackware linux duke nukem 3d").query; - System.out.println("Time: " + (System.currentTimeMillis() - start)); System.out.println(subquery.compiledQuery); - } @Test public void testExpansion2() { - - long start = System.currentTimeMillis(); var subquery = parseAndGetSpecs("need for speed").query; - System.out.println("Time: " + (System.currentTimeMillis() - start)); System.out.println(subquery); } @Test public void testExpansion3() { - long start = System.currentTimeMillis(); var subquery = parseAndGetSpecs("buy rimonabant buy acomplia"); - System.out.println("Time: " + (System.currentTimeMillis() - start)); System.out.println(subquery); } @Test public void testExpansion4() { - long start = System.currentTimeMillis(); var subquery = parseAndGetSpecs("The Vietnam of computer science"); - System.out.println("Time: " + (System.currentTimeMillis() - start)); System.out.println(subquery); } @Test public void testExpansion5() { - long start = System.currentTimeMillis(); var subquery = parseAndGetSpecs("The"); - System.out.println("Time: " + (System.currentTimeMillis() - start)); System.out.println(subquery); } @Test public void testExpansion6() { - long start = System.currentTimeMillis(); var subquery = parseAndGetSpecs("burning the nerves in the neck"); - System.out.println("Time: " + (System.currentTimeMillis() - start)); System.out.println(subquery); } @Test public void testExpansion7() { - long start = System.currentTimeMillis(); var subquery = parseAndGetSpecs("amazing work being done"); - System.out.println("Time: " + (System.currentTimeMillis() - start)); System.out.println(subquery); } @Test public void testExpansion8() { - long start = System.currentTimeMillis(); var subquery = parseAndGetSpecs("success often consists of"); - System.out.println("Time: " + (System.currentTimeMillis() - start)); System.out.println(subquery); } @Test public void testParsing() { - long start = System.currentTimeMillis(); var subquery = parseAndGetSpecs("strlen()"); assertEquals("strlen", subquery.query.compiledQuery); - System.out.println("Time: " + (System.currentTimeMillis() - start)); + System.out.println(subquery); + } + + @Test + public void testAdvice() { + var subquery = parseAndGetSpecs("mmap (strlen)"); + assertEquals("mmap", subquery.query.compiledQuery); + assertEquals(List.of("strlen"), subquery.query.searchTermsAdvice); System.out.println(subquery); } } \ No newline at end of file