diff options
author | Arne H Juul <arnej27959@users.noreply.github.com> | 2022-04-07 16:24:32 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-07 16:24:32 +0200 |
commit | 1f82fabd6e6a14590bacfd0b27a0df6c28e28808 (patch) | |
tree | 52fb618e8d71a10b596ddfdcd4c41cf6a17468b5 | |
parent | f8e244359f677c8ec5a11685f3e6b00ffac50caa (diff) | |
parent | 1550a72ec2fc0f9691bd3682e9e4ecd4dc14e757 (diff) |
Merge pull request #22037 from vespa-engine/arnej/allow-index-names-with-more-words
handle index names with > 2 dot-separated "words"
-rw-r--r-- | container-search/src/main/java/com/yahoo/prelude/query/parser/StructuredParser.java | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/container-search/src/main/java/com/yahoo/prelude/query/parser/StructuredParser.java b/container-search/src/main/java/com/yahoo/prelude/query/parser/StructuredParser.java index a35ad91acbd..54a6e5b6e90 100644 --- a/container-search/src/main/java/com/yahoo/prelude/query/parser/StructuredParser.java +++ b/container-search/src/main/java/com/yahoo/prelude/query/parser/StructuredParser.java @@ -160,8 +160,8 @@ abstract class StructuredParser extends AbstractParser { firstWord.add(tokens.next()); } - if (tokens.currentIsNoIgnore(DOT)) { - tokens.skip(); + while (tokens.currentIsNoIgnore(DOT)) { + secondWord.add(tokens.next()); if (tokens.currentIsNoIgnore(WORD) || tokens.currentIsNoIgnore(NUMBER)) { secondWord.add(tokens.next()); } else { @@ -177,11 +177,7 @@ abstract class StructuredParser extends AbstractParser { if ( ! tokens.skipNoIgnore(COLON)) return null; - if (secondWord.size() == 0) { - item = concatenate(firstWord); - } else { - item = concatenate(firstWord) + "." + concatenate(secondWord); - } + item = concatenate(firstWord) + concatenate(secondWord); item = indexFacts.getCanonicName(item); @@ -395,7 +391,7 @@ abstract class StructuredParser extends AbstractParser { if ( ! tokens.currentIs(NUMBER)) return null; item = new IntItem(">" + (negative ? "-" : "") + tokens.next() + decimalPart(), true); - item.setOrigin(new Substring(initial.substring.start, tokens.currentNoIgnore().substring.start, + item.setOrigin(new Substring(initial.substring.start, tokens.currentNoIgnore().substring.start, initial.getSubstring().getSuperstring())); // XXX: Unsafe end? return item; } finally { |