summaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo/prelude/query
diff options
context:
space:
mode:
Diffstat (limited to 'container-search/src/main/java/com/yahoo/prelude/query')
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/query/HasIndexItem.java1
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/query/PhraseItem.java5
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/query/SegmentItem.java1
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/query/WordAlternativesItem.java10
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/query/WordItem.java1
5 files changed, 14 insertions, 4 deletions
diff --git a/container-search/src/main/java/com/yahoo/prelude/query/HasIndexItem.java b/container-search/src/main/java/com/yahoo/prelude/query/HasIndexItem.java
index d5d193f54b4..8a91587daa2 100644
--- a/container-search/src/main/java/com/yahoo/prelude/query/HasIndexItem.java
+++ b/container-search/src/main/java/com/yahoo/prelude/query/HasIndexItem.java
@@ -15,6 +15,7 @@ public interface HasIndexItem {
@NonNull
public String getIndexName();
+ /** @return how many phrase words does this item contain */
public int getNumWords();
}
diff --git a/container-search/src/main/java/com/yahoo/prelude/query/PhraseItem.java b/container-search/src/main/java/com/yahoo/prelude/query/PhraseItem.java
index c3689805dd7..e44a86ddd2d 100644
--- a/container-search/src/main/java/com/yahoo/prelude/query/PhraseItem.java
+++ b/container-search/src/main/java/com/yahoo/prelude/query/PhraseItem.java
@@ -218,10 +218,12 @@ public class PhraseItem extends CompositeIndexedItem {
WordItem wordItem = (WordItem) item;
buffer.append(wordItem.getWord());
- } else {
+ } else if (item instanceof PhraseSegmentItem) {
PhraseSegmentItem seg = (PhraseSegmentItem) item;
seg.appendContentsString(buffer);
+ } else {
+ buffer.append(item.toString());
}
if (i.hasNext()) {
buffer.append(" ");
@@ -250,7 +252,6 @@ public class PhraseItem extends CompositeIndexedItem {
public int getNumWords() {
int numWords = 0;
-
for (Iterator<Item> j = getItemIterator(); j.hasNext();) {
numWords += ((IndexedItem) j.next()).getNumWords();
}
diff --git a/container-search/src/main/java/com/yahoo/prelude/query/SegmentItem.java b/container-search/src/main/java/com/yahoo/prelude/query/SegmentItem.java
index 3d2e437d34c..1227a7f80cf 100644
--- a/container-search/src/main/java/com/yahoo/prelude/query/SegmentItem.java
+++ b/container-search/src/main/java/com/yahoo/prelude/query/SegmentItem.java
@@ -82,6 +82,7 @@ public abstract class SegmentItem extends CompositeItem implements BlockItem {
return locked;
}
+ @Override
public int getNumWords() {
return getItemCount();
}
diff --git a/container-search/src/main/java/com/yahoo/prelude/query/WordAlternativesItem.java b/container-search/src/main/java/com/yahoo/prelude/query/WordAlternativesItem.java
index 1157d2763e0..9815bfafc82 100644
--- a/container-search/src/main/java/com/yahoo/prelude/query/WordAlternativesItem.java
+++ b/container-search/src/main/java/com/yahoo/prelude/query/WordAlternativesItem.java
@@ -91,7 +91,13 @@ public class WordAlternativesItem extends TermItem {
@Override
public String stringValue() {
- return alternatives.get(maxIndex).word;
+ StringBuilder builder = new StringBuilder();
+ builder.append("[ ");
+ for (Alternative a : alternatives) {
+ builder.append(a.word).append("(").append(a.exactness).append(") ");
+ }
+ builder.append("]");
+ return builder.toString();
}
@Override
@@ -101,7 +107,7 @@ public class WordAlternativesItem extends TermItem {
@Override
public int getNumWords() {
- return alternatives.size();
+ return 1;
}
@Override
diff --git a/container-search/src/main/java/com/yahoo/prelude/query/WordItem.java b/container-search/src/main/java/com/yahoo/prelude/query/WordItem.java
index 0b3d11158f1..39573e4d71f 100644
--- a/container-search/src/main/java/com/yahoo/prelude/query/WordItem.java
+++ b/container-search/src/main/java/com/yahoo/prelude/query/WordItem.java
@@ -157,6 +157,7 @@ public class WordItem extends TermItem {
return this.word.equals(other.word);
}
+ @Override
public int getNumWords() {
return 1;
}