diff options
author | Tor Egge <Tor.Egge@online.no> | 2024-03-18 17:24:35 +0100 |
---|---|---|
committer | Tor Egge <Tor.Egge@online.no> | 2024-03-18 17:24:35 +0100 |
commit | b700eeb73d8de490cdafbc3d004ed091e71e3c9e (patch) | |
tree | 62c710558ace31723020bf73e48d917a9d95ec3f /streamingvisitors/src/vespa/vsm/searcher/fieldsearcher.cpp | |
parent | 4b5012817431e6cb91a2d19235ffa768cf6cf88f (diff) |
Use multi_index_terms() returning boolean to differentiate between
multi term nodes that all searches the same index (e.g. Phrase)
and multi term nodes that searches multiple indexes (e.g. Equiv,
SameElement).
Diffstat (limited to 'streamingvisitors/src/vespa/vsm/searcher/fieldsearcher.cpp')
-rw-r--r-- | streamingvisitors/src/vespa/vsm/searcher/fieldsearcher.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/streamingvisitors/src/vespa/vsm/searcher/fieldsearcher.cpp b/streamingvisitors/src/vespa/vsm/searcher/fieldsearcher.cpp index b03ae07c910..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 mimt = qt->as_multi_index_multi_term(); - if (mimt != nullptr) { - for (auto& subterm : mimt->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()); |