diff options
Diffstat (limited to 'container-search/src/main/java/com/yahoo/prelude/query')
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; } |