summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@yahooinc.com>2023-01-27 16:16:45 +0100
committerGitHub <noreply@github.com>2023-01-27 16:16:45 +0100
commit8a006bc9ca202713ec54c7961a9256790c87d10d (patch)
treec038915beb4f15040a874eeedffe55aea5fefce3
parent23d9dbf2469063b5af3c28b247994272eb770fc8 (diff)
parent2a61d8747c98e3b712034c839cb980ec085959c1 (diff)
Merge pull request #25768 from vespa-engine/toregge/enable-stricter-query-term-filter
Enable stricter query term filter.
-rw-r--r--searchcore/src/vespa/searchcore/proton/docsummary/summarymanager.cpp5
-rw-r--r--streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.cpp13
2 files changed, 4 insertions, 14 deletions
diff --git a/searchcore/src/vespa/searchcore/proton/docsummary/summarymanager.cpp b/searchcore/src/vespa/searchcore/proton/docsummary/summarymanager.cpp
index 16545058d67..543af05db45 100644
--- a/searchcore/src/vespa/searchcore/proton/docsummary/summarymanager.cpp
+++ b/searchcore/src/vespa/searchcore/proton/docsummary/summarymanager.cpp
@@ -11,7 +11,7 @@
#include <vespa/vespalib/util/lambdatask.h>
#include <vespa/searchsummary/docsummary/docsum_field_writer_factory.h>
#include <vespa/searchsummary/docsummary/i_query_term_filter.h>
-#include <vespa/searchsummary/docsummary/legacy_query_term_filter_factory.h>
+#include <vespa/searchsummary/docsummary/query_term_filter_factory.h>
#include <vespa/vespalib/util/exceptions.h>
#include <vespa/fastlib/text/normwordfolder.h>
#include <vespa/config-summary.h>
@@ -95,8 +95,7 @@ SummarySetup(const vespalib::string & baseDir, const SummaryConfig & summaryCfg,
{
_juniperConfig = std::make_unique<juniper::Juniper>(&_juniperProps, _wordFolder.get());
auto resultConfig = std::make_unique<ResultConfig>();
- (void) schema;
- std::unique_ptr<IQueryTermFilterFactory> query_term_filter_factory = std::make_unique<LegacyQueryTermFilterFactory>(std::shared_ptr<IQueryTermFilter>());
+ std::unique_ptr<IQueryTermFilterFactory> query_term_filter_factory = std::make_unique<QueryTermFilterFactory>(schema);
auto docsum_field_writer_factory = std::make_unique<DocsumFieldWriterFactory>(summaryCfg.usev8geopositions, *this, *query_term_filter_factory);
if (!resultConfig->readConfig(summaryCfg, make_string("SummaryManager(%s)", baseDir.c_str()).c_str(),
*docsum_field_writer_factory)) {
diff --git a/streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.cpp b/streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.cpp
index 8e5c5cfd8f1..8f3fa8d0d54 100644
--- a/streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.cpp
+++ b/streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.cpp
@@ -3,9 +3,8 @@
#include "vsm-adapter.hpp"
#include "docsum_field_writer_factory.h"
#include "i_matching_elements_filler.h"
+#include "query_term_filter_factory.h"
#include <vespa/searchlib/common/matching_elements.h>
-#include <vespa/searchsummary/docsummary/legacy_query_term_filter.h>
-#include <vespa/searchsummary/docsummary/legacy_query_term_filter_factory.h>
#include <vespa/searchsummary/config/config-juniperrc.h>
#include <vespa/log/log.h>
@@ -13,8 +12,6 @@ LOG_SETUP(".vsm.vsm-adapter");
using search::docsummary::IQueryTermFilterFactory;
using search::docsummary::ResConfigEntry;
-using search::docsummary::LegacyQueryTermFilter;
-using search::docsummary::LegacyQueryTermFilterFactory;
using search::MatchingElements;
using config::ConfigSnapshot;
using vespa::config::search::SummaryConfig;
@@ -147,15 +144,9 @@ VSMAdapter::configure(const VSMConfigSnapshot & snapshot)
auto juniper = std::make_unique<juniper::Juniper>(_juniperProps.get(), &_wordFolder);
docsumTools->setJuniper(std::move(juniper));
- // init keyword extractor
- auto query_term_filter = std::make_unique<LegacyQueryTermFilter>();
- query_term_filter->addLegalIndexSpec(_highlightindexes.c_str());
- vespalib::string spec = query_term_filter->getLegalIndexSpec();
- LOG(debug, "index highlight spec: '%s'", spec.c_str());
-
// init result config
auto resCfg = std::make_unique<ResultConfig>();
- std::unique_ptr<IQueryTermFilterFactory> query_term_filter_factory = std::make_unique<LegacyQueryTermFilterFactory>(std::move(query_term_filter));
+ std::unique_ptr<IQueryTermFilterFactory> query_term_filter_factory = std::make_unique<QueryTermFilterFactory>(*_fieldsCfg.get(), *vsmSummary);
auto docsum_field_writer_factory = std::make_unique<DocsumFieldWriterFactory>(summary.get()->usev8geopositions, *docsumTools, *query_term_filter_factory, *_fieldsCfg.get());
if ( !resCfg->readConfig(*summary.get(), _configId.c_str(), *docsum_field_writer_factory)) {
throw std::runtime_error("(re-)configuration of VSM (docsum tools) failed due to bad summary config");