aboutsummaryrefslogtreecommitdiffstats
path: root/streamingvisitors
diff options
context:
space:
mode:
Diffstat (limited to 'streamingvisitors')
-rw-r--r--streamingvisitors/src/vespa/searchvisitor/rankprocessor.cpp4
-rw-r--r--streamingvisitors/src/vespa/searchvisitor/rankprocessor.h4
-rw-r--r--streamingvisitors/src/vespa/vsm/searcher/fieldsearcher.cpp7
-rw-r--r--streamingvisitors/src/vespa/vsm/vsm/fieldsearchspec.cpp6
4 files changed, 10 insertions, 11 deletions
diff --git a/streamingvisitors/src/vespa/searchvisitor/rankprocessor.cpp b/streamingvisitors/src/vespa/searchvisitor/rankprocessor.cpp
index 2a95bf8251b..cfaaac8b197 100644
--- a/streamingvisitors/src/vespa/searchvisitor/rankprocessor.cpp
+++ b/streamingvisitors/src/vespa/searchvisitor/rankprocessor.cpp
@@ -56,7 +56,7 @@ getFeature(const RankProgram &rankProgram) {
}
void
-RankProcessor::resolve_fields_from_children(QueryTermData& qtd, MultiTerm& mt)
+RankProcessor::resolve_fields_from_children(QueryTermData& qtd, const MultiTerm& mt)
{
vespalib::hash_set<uint32_t> field_ids;
for (auto& subterm : mt.get_terms()) {
@@ -83,7 +83,7 @@ RankProcessor::resolve_fields_from_children(QueryTermData& qtd, MultiTerm& mt)
}
void
-RankProcessor::resolve_fields_from_term(QueryTermData& qtd, search::streaming::QueryTerm& term)
+RankProcessor::resolve_fields_from_term(QueryTermData& qtd, const search::streaming::QueryTerm& term)
{
vespalib::string expandedIndexName = vsm::FieldSearchSpecMap::stripNonFields(term.index());
const RankManager::View *view = _rankManagerSnapshot->getView(expandedIndexName);
diff --git a/streamingvisitors/src/vespa/searchvisitor/rankprocessor.h b/streamingvisitors/src/vespa/searchvisitor/rankprocessor.h
index f384f7d7acf..9cb3e49fc32 100644
--- a/streamingvisitors/src/vespa/searchvisitor/rankprocessor.h
+++ b/streamingvisitors/src/vespa/searchvisitor/rankprocessor.h
@@ -45,8 +45,8 @@ private:
HitCollector::UP _hitCollector;
std::unique_ptr<RankProgram> _match_features_program;
- void resolve_fields_from_children(QueryTermData& qtd, search::streaming::MultiTerm& mt);
- void resolve_fields_from_term(QueryTermData& qtd, search::streaming::QueryTerm& term);
+ void resolve_fields_from_children(QueryTermData& qtd, const search::streaming::MultiTerm& mt);
+ void resolve_fields_from_term(QueryTermData& qtd, const search::streaming::QueryTerm& term);
void initQueryEnvironment();
void initHitCollector(size_t wantedHitCount, bool use_sort_blob);
void setupRankProgram(search::fef::RankProgram &program);
diff --git a/streamingvisitors/src/vespa/vsm/searcher/fieldsearcher.cpp b/streamingvisitors/src/vespa/vsm/searcher/fieldsearcher.cpp
index 72807bc6c34..38e12a3054d 100644
--- a/streamingvisitors/src/vespa/vsm/searcher/fieldsearcher.cpp
+++ b/streamingvisitors/src/vespa/vsm/searcher/fieldsearcher.cpp
@@ -192,9 +192,9 @@ FieldSearcher::init()
void
FieldIdTSearcherMap::prepare_term(const DocumentTypeIndexFieldMapT& difm, QueryTerm* qt, FieldIdT fid, vespalib::hash_set<const void*>& seen, QueryTermList& onlyInIndex)
{
- auto equiv = qt->as_equiv_query_node();
- if (equiv != nullptr) {
- for (auto& subterm : equiv->get_terms()) {
+ auto multi_term = qt->as_multi_term();
+ if (multi_term != nullptr && multi_term->multi_index_terms()) {
+ for (auto& subterm : multi_term->get_terms()) {
prepare_term(difm, subterm.get(), fid, seen, onlyInIndex);
}
return;
@@ -206,7 +206,6 @@ FieldIdTSearcherMap::prepare_term(const DocumentTypeIndexFieldMapT& difm, QueryT
const FieldIdTList & index = found->second;
if ((find(index.begin(), index.end(), fid) != index.end()) && !seen.contains(qt)) {
seen.insert(qt);
- auto multi_term = qt->as_multi_term();
if (multi_term != nullptr) {
for (auto& subterm : multi_term->get_terms()) {
onlyInIndex.emplace_back(subterm.get());
diff --git a/streamingvisitors/src/vespa/vsm/vsm/fieldsearchspec.cpp b/streamingvisitors/src/vespa/vsm/vsm/fieldsearchspec.cpp
index c596b46a774..1dbac859262 100644
--- a/streamingvisitors/src/vespa/vsm/vsm/fieldsearchspec.cpp
+++ b/streamingvisitors/src/vespa/vsm/vsm/fieldsearchspec.cpp
@@ -223,9 +223,9 @@ FieldSearchSpecMap::buildFieldsInQuery(const Query & query) const
query.getLeaves(qtl);
for (const auto & term : qtl) {
- auto equiv = term->as_equiv_query_node();
- if (equiv != nullptr) {
- for (const auto& subterm : equiv->get_terms()) {
+ auto multi_term = term->as_multi_term();
+ if (multi_term != nullptr && multi_term->multi_index_terms()) {
+ for (const auto& subterm : multi_term->get_terms()) {
addFieldsFromIndex(subterm->index(), fieldsInQuery);
}
} else {