diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2018-05-24 14:10:27 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2018-05-24 14:10:27 +0200 |
commit | b4dad6a90992b7122a6367a0ab0206cb7091a155 (patch) | |
tree | 829300c449b9f7bf47bf6b34dce482322aac2a27 /container-search | |
parent | 8365add7b94a88eec13e38c473f1b688e1f2d28a (diff) |
Add a more sane toString and minor followup after PR comments
Diffstat (limited to 'container-search')
3 files changed, 19 insertions, 7 deletions
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 44555d19cc5..c3689805dd7 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 @@ -205,8 +205,7 @@ public class PhraseItem extends CompositeIndexedItem { } /** Phrase items uses a empty heading instead of "PHRASE " */ - protected void appendHeadingString(StringBuilder buffer) { - } + protected void appendHeadingString(StringBuilder buffer) { } protected void appendBodyString(StringBuilder buffer) { appendIndexString(buffer); diff --git a/container-search/src/main/java/com/yahoo/prelude/query/SameElementItem.java b/container-search/src/main/java/com/yahoo/prelude/query/SameElementItem.java index a52d4dd3db3..5015ea063b4 100644 --- a/container-search/src/main/java/com/yahoo/prelude/query/SameElementItem.java +++ b/container-search/src/main/java/com/yahoo/prelude/query/SameElementItem.java @@ -7,7 +7,7 @@ import com.yahoo.protect.Validator; import java.util.Iterator; /** - * This represents a query where all terms are required to match in the sma element id. + * This represents a query where all terms are required to match in the same element id. * The primary usecase is to allow efficient search in arrays and maps of struct. * The common path is the field name containing the struct. * @author baldersheim @@ -30,7 +30,22 @@ public class SameElementItem extends CompositeIndexedItem { buf.append(' '); } } - return buf.toString(); } + return buf.toString(); + } + + protected void appendHeadingString(StringBuilder buffer) { } + protected void appendBodyString(StringBuilder buffer) { + appendIndexString(buffer); + buffer.append('{'); + for (Iterator<Item> i = getItemIterator(); i.hasNext();) { + TermItem term = (TermItem) i.next(); + buffer.append(term.getIndexName()).append(':').append(term.getIndexedString()); + if (i.hasNext()) { + buffer.append(' '); + } + } + buffer.append('}'); + } @Override public int getNumWords() { @@ -41,8 +56,6 @@ public class SameElementItem extends CompositeIndexedItem { protected void adding(Item item) { Validator.ensureInstanceOf("Child item", item, TermItem.class); TermItem asTerm = (TermItem) item; - Validator.ensureNotNull("Struct fieldname", asTerm.getIndexName()); - Validator.ensureNotNull("Query term", asTerm.getIndexedString()); Validator.ensureNonEmpty("Struct fieldname", asTerm.getIndexName()); Validator.ensureNonEmpty("Query term", asTerm.getIndexedString()); } diff --git a/container-search/src/test/java/com/yahoo/prelude/query/test/SameElementItemTestCase.java b/container-search/src/test/java/com/yahoo/prelude/query/test/SameElementItemTestCase.java index 83c525565ba..ff3ca53319f 100644 --- a/container-search/src/test/java/com/yahoo/prelude/query/test/SameElementItemTestCase.java +++ b/container-search/src/test/java/com/yahoo/prelude/query/test/SameElementItemTestCase.java @@ -14,7 +14,7 @@ public class SameElementItemTestCase { s.addItem(new WordItem("b", "f1")); s.addItem(new WordItem("c", "f2")); s.addItem(new WordItem("d", "f3")); - assertEquals("SAME_ELEMENT f1:b f2:c f3:d", s.toString()); + assertEquals("structa:{f1:b f2:c f3:d}", s.toString()); } @Test(expected = IllegalArgumentException.class) public void requireAllChildrenHaveStructMemberNameSet() { |