summaryrefslogtreecommitdiffstats
path: root/searchsummary
diff options
context:
space:
mode:
authorGeir Storli <geirst@yahoo-inc.com>2016-08-23 13:31:55 +0200
committerGeir Storli <geirst@yahoo-inc.com>2016-08-23 13:31:55 +0200
commita28d76069c86ec5e1e02075f96b314f3947b8f2f (patch)
tree91c5d54508117a0cd2a6fa73e45957c8cd25cb62 /searchsummary
parent7cf5e0d341d3de4a87fd83275e5bca6adefdcc26 (diff)
Make sure unhandled query items are ignored by juniper instead of making bolding fail.
Diffstat (limited to 'searchsummary')
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/dynamicteaserdfw.cpp23
1 files changed, 12 insertions, 11 deletions
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/dynamicteaserdfw.cpp b/searchsummary/src/vespa/searchsummary/docsummary/dynamicteaserdfw.cpp
index 8c2c0b2e65c..9a9041ea295 100644
--- a/searchsummary/src/vespa/searchsummary/docsummary/dynamicteaserdfw.cpp
+++ b/searchsummary/src/vespa/searchsummary/docsummary/dynamicteaserdfw.cpp
@@ -216,10 +216,6 @@ JuniperQueryAdapter::Traverse(juniper::IQueryVisitor *v) const
case search::ParseItem::ITEM_WEAK_AND:
case search::ParseItem::ITEM_EQUIV:
case search::ParseItem::ITEM_WORD_ALTERNATIVES:
- // XXX unhandled
- // case search::ParseItem::ITEM_WAND:
- // case search::ParseItem::ITEM_WEIGHTED_SET:
- // case search::ParseItem::ITEM_DOT_PRODUCT:
if (!v->VisitOR(&item, iterator.getArity()))
rc = SkipItem(&iterator);
break;
@@ -238,8 +234,6 @@ JuniperQueryAdapter::Traverse(juniper::IQueryVisitor *v) const
case search::ParseItem::ITEM_TERM:
case search::ParseItem::ITEM_EXACTSTRINGTERM:
case search::ParseItem::ITEM_PURE_WEIGHTED_STRING:
- // XXX unhandled
- // case search::ParseItem::ITEM_PURE_WEIGHTED_LONG:
iterator.getTerm(&buf, &buflen);
v->VisitKeyword(&item, buf, buflen, false, isSpecialToken);
break;
@@ -275,8 +269,6 @@ JuniperQueryAdapter::Traverse(juniper::IQueryVisitor *v) const
break;
case search::ParseItem::ITEM_PREFIXTERM:
case search::ParseItem::ITEM_SUBSTRINGTERM:
- // XXX unhandled
- // case search::ParseItem::ITEM_SUFFIXTERM:
iterator.getTerm(&buf, &buflen);
v->VisitKeyword(&item, buf, buflen, true, isSpecialToken);
break;
@@ -296,9 +288,18 @@ JuniperQueryAdapter::Traverse(juniper::IQueryVisitor *v) const
if (!v->VisitWITHIN(&item, iterator.getArity(),iterator.getArg1()))
rc = SkipItem(&iterator);
break;
- // XXX unhandled
- // case search::ParseItem::ITEM_REGEXP:
- // case search::ParseItem::ITEM_PREDICATE_QUERY:
+ // Unhandled items are just ignored by juniper
+ case search::ParseItem::ITEM_WAND:
+ case search::ParseItem::ITEM_WEIGHTED_SET:
+ case search::ParseItem::ITEM_DOT_PRODUCT:
+ case search::ParseItem::ITEM_PURE_WEIGHTED_LONG:
+ case search::ParseItem::ITEM_SUFFIXTERM:
+ case search::ParseItem::ITEM_REGEXP:
+ case search::ParseItem::ITEM_PREDICATE_QUERY:
+ if (!v->VisitOther(&item, iterator.getArity())) {
+ rc = SkipItem(&iterator);
+ }
+ break;
default:
rc = false;
}