aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2022-08-12 15:53:21 +0200
committerGitHub <noreply@github.com>2022-08-12 15:53:21 +0200
commit43830a7f7975080dbc4c25804a2506ab102c7868 (patch)
tree81a54c966a81b70f811856a1486ed5889524c65a
parent4b0f85b8cd3c9a2a498930eeee3205e92b435703 (diff)
parent36b70fc6681a80d8debcefb4e50aa8fd9d33bb46 (diff)
Merge pull request #23646 from vespa-engine/balder/unify-with-CompoundName
- Use CompoundName where possible.
-rw-r--r--container-search/src/main/java/com/yahoo/search/querytransform/WeakAndReplacementSearcher.java13
-rw-r--r--container-search/src/test/java/com/yahoo/search/querytransform/WeakAndReplacementSearcherTestCase.java21
2 files changed, 23 insertions, 11 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/querytransform/WeakAndReplacementSearcher.java b/container-search/src/main/java/com/yahoo/search/querytransform/WeakAndReplacementSearcher.java
index b47b54bc362..898e348db92 100644
--- a/container-search/src/main/java/com/yahoo/search/querytransform/WeakAndReplacementSearcher.java
+++ b/container-search/src/main/java/com/yahoo/search/querytransform/WeakAndReplacementSearcher.java
@@ -1,7 +1,10 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.search.querytransform;
-import com.yahoo.prelude.query.*;
+import com.yahoo.prelude.query.CompositeItem;
+import com.yahoo.prelude.query.Item;
+import com.yahoo.prelude.query.OrItem;
+import com.yahoo.prelude.query.WeakAndItem;
import com.yahoo.processing.request.CompoundName;
import com.yahoo.search.Query;
import com.yahoo.search.Result;
@@ -15,7 +18,8 @@ import com.yahoo.search.searchchain.Execution;
* @author karowan
*/
public class WeakAndReplacementSearcher extends Searcher {
- private static final CompoundName WEAKAND_REPLACE = new CompoundName("weakAnd.replace");
+ static final CompoundName WEAKAND_REPLACE = new CompoundName("weakAnd.replace");
+ static final CompoundName WAND_HITS = new CompoundName("wand.hits");
@Override public Result search(Query query, Execution execution) {
if (!query.properties().getBoolean(WEAKAND_REPLACE)) {
@@ -31,7 +35,7 @@ public class WeakAndReplacementSearcher extends Searcher {
*/
private void replaceOrItems(Query query) {
Item root = query.getModel().getQueryTree().getRoot();
- int hits = query.properties().getInteger("wand.hits", WeakAndItem.defaultN);
+ int hits = query.properties().getInteger(WAND_HITS, WeakAndItem.defaultN);
query.getModel().getQueryTree().setRoot(replaceOrItems(root, hits));
if (root != query.getModel().getQueryTree().getRoot())
query.trace("Replaced OR by WeakAnd", true, 2);
@@ -45,10 +49,9 @@ public class WeakAndReplacementSearcher extends Searcher {
* @return the original item or a WeakAndItem replacement of an OrItem
*/
private Item replaceOrItems(Item item, int hits) {
- if (!(item instanceof CompositeItem)) {
+ if (!(item instanceof CompositeItem compositeItem)) {
return item;
}
- CompositeItem compositeItem = (CompositeItem) item;
if (compositeItem instanceof OrItem) {
WeakAndItem newItem = new WeakAndItem(hits);
newItem.setWeight(compositeItem.getWeight());
diff --git a/container-search/src/test/java/com/yahoo/search/querytransform/WeakAndReplacementSearcherTestCase.java b/container-search/src/test/java/com/yahoo/search/querytransform/WeakAndReplacementSearcherTestCase.java
index 30d06510409..97e37c2f40c 100644
--- a/container-search/src/test/java/com/yahoo/search/querytransform/WeakAndReplacementSearcherTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/querytransform/WeakAndReplacementSearcherTestCase.java
@@ -2,8 +2,14 @@
package com.yahoo.search.querytransform;
import com.yahoo.component.chain.Chain;
-import com.yahoo.prelude.query.*;
-import com.yahoo.processing.request.CompoundName;
+import com.yahoo.prelude.query.AndItem;
+import com.yahoo.prelude.query.CompositeItem;
+import com.yahoo.prelude.query.IntItem;
+import com.yahoo.prelude.query.Item;
+import com.yahoo.prelude.query.NotItem;
+import com.yahoo.prelude.query.OrItem;
+import com.yahoo.prelude.query.WeakAndItem;
+import com.yahoo.prelude.query.WordItem;
import com.yahoo.search.Query;
import com.yahoo.search.Result;
import com.yahoo.search.Searcher;
@@ -12,11 +18,14 @@ import org.junit.jupiter.api.Test;
import java.util.stream.IntStream;
-import static org.junit.jupiter.api.Assertions.*;
+import static com.yahoo.search.querytransform.WeakAndReplacementSearcher.WEAKAND_REPLACE;
+import static com.yahoo.search.querytransform.WeakAndReplacementSearcher.WAND_HITS;
-public class WeakAndReplacementSearcherTestCase {
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
- private static final CompoundName WEAKAND_REPLACE = new CompoundName("weakAnd.replace");
+public class WeakAndReplacementSearcherTestCase {
private static final int N = 99;
@@ -27,7 +36,7 @@ public class WeakAndReplacementSearcherTestCase {
private Query buildDefaultQuery(boolean searcherEnabled) {
Query query = new Query();
- query.properties().set("wand.hits", N);
+ query.properties().set(WAND_HITS, N);
query.properties().set(WEAKAND_REPLACE, searcherEnabled);
OrItem root = new OrItem();
root.addItem(new WordItem("text"));