summaryrefslogtreecommitdiffstats
path: root/container-search/src/main
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2019-06-27 20:21:21 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2019-06-27 20:21:21 +0200
commitaeb03fa326aafd0f92f3a18e4b04846823af3d4f (patch)
treed378013688f7751f65234953cee3524a8d91a87d /container-search/src/main
parent59707e415eedbf630d5eda986545909e36ceb404 (diff)
A single element under sameElement operator can be pulled out to avoid the sameElement operator.
Diffstat (limited to 'container-search/src/main')
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/query/QueryCanonicalizer.java11
1 files changed, 9 insertions, 2 deletions
diff --git a/container-search/src/main/java/com/yahoo/prelude/query/QueryCanonicalizer.java b/container-search/src/main/java/com/yahoo/prelude/query/QueryCanonicalizer.java
index 31e69e5b7cd..2fbda1a9c32 100644
--- a/container-search/src/main/java/com/yahoo/prelude/query/QueryCanonicalizer.java
+++ b/container-search/src/main/java/com/yahoo/prelude/query/QueryCanonicalizer.java
@@ -83,9 +83,16 @@ public class QueryCanonicalizer {
parentIterator.remove();
if (composite.getItemCount() == 1 && ! (composite instanceof NonReducibleCompositeItem)) {
+ Item child = composite.getItem(0);
if (composite instanceof PhraseItem || composite instanceof PhraseSegmentItem)
- composite.getItem(0).setWeight(composite.getWeight());
- parentIterator.set(composite.getItem(0));
+ child.setWeight(composite.getWeight());
+ parentIterator.set(child);
+ }
+ if ((composite.getItemCount() == 1) && (composite instanceof SameElementItem)) {
+ SameElementItem sameElement = (SameElementItem) composite;
+ WordItem child = (WordItem) sameElement.getItem(0);
+ child.setIndexName(sameElement.getFieldName() + "." + child.getIndexName());
+ parentIterator.set(child);
}
return CanonicalizationResult.success();