diff options
Diffstat (limited to 'streamingvisitors')
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 { |