aboutsummaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo/prelude/query/PhraseSegmentItem.java
diff options
context:
space:
mode:
Diffstat (limited to 'container-search/src/main/java/com/yahoo/prelude/query/PhraseSegmentItem.java')
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/query/PhraseSegmentItem.java11
1 files changed, 11 insertions, 0 deletions
diff --git a/container-search/src/main/java/com/yahoo/prelude/query/PhraseSegmentItem.java b/container-search/src/main/java/com/yahoo/prelude/query/PhraseSegmentItem.java
index a19a6e53963..53a57a968f5 100644
--- a/container-search/src/main/java/com/yahoo/prelude/query/PhraseSegmentItem.java
+++ b/container-search/src/main/java/com/yahoo/prelude/query/PhraseSegmentItem.java
@@ -5,6 +5,7 @@ import com.yahoo.prelude.query.textualrepresentation.Discloser;
import java.nio.ByteBuffer;
import java.util.Iterator;
+import java.util.Optional;
/**
@@ -55,10 +56,12 @@ public class PhraseSegmentItem extends IndexedSegmentItem {
super(rawWord, current, isFromQuery, stemmed, substring);
}
+ @Override
public ItemType getItemType() {
return ItemType.PHRASE;
}
+ @Override
public String getName() {
return "SPHRASE";
}
@@ -87,6 +90,7 @@ public class PhraseSegmentItem extends IndexedSegmentItem {
*
* @throws IllegalArgumentException if the given item is not a WordItem or PhraseItem
*/
+ @Override
public void addItem(Item item) {
if (item instanceof WordItem) {
addWordItem((WordItem) item);
@@ -95,6 +99,13 @@ public class PhraseSegmentItem extends IndexedSegmentItem {
}
}
+ @Override
+ public Optional<Item> extractSingleChild() {
+ Optional<Item> extracted = super.extractSingleChild();
+ extracted.ifPresent(e -> e.setWeight(this.getWeight()));
+ return extracted;
+ }
+
private void addWordItem(WordItem word) {
word.setIndexName(this.getIndexName());
super.addItem(word);