aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArne H Juul <arnej27959@users.noreply.github.com>2022-04-07 16:24:32 +0200
committerGitHub <noreply@github.com>2022-04-07 16:24:32 +0200
commit1f82fabd6e6a14590bacfd0b27a0df6c28e28808 (patch)
tree52fb618e8d71a10b596ddfdcd4c41cf6a17468b5
parentf8e244359f677c8ec5a11685f3e6b00ffac50caa (diff)
parent1550a72ec2fc0f9691bd3682e9e4ecd4dc14e757 (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.java12
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 {