summaryrefslogtreecommitdiffstats
path: root/searchcore/src
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@online.no>2022-09-02 17:43:55 +0200
committerGitHub <noreply@github.com>2022-09-02 17:43:55 +0200
commitd48dc47be7c68dbdb4efd2acdba9cb8563b80e98 (patch)
treeb31be0abecc81f672a8aca17ee19969a838895cf /searchcore/src
parente3ee4675463c373d699f6f31479d171868bcfc7e (diff)
Revert "Use commands from summary config to setup document field rewriters."
Diffstat (limited to 'searchcore/src')
-rw-r--r--searchcore/src/tests/proton/docsummary/docsummary.cpp17
-rw-r--r--searchcore/src/tests/proton/docsummary/summary.cfg33
-rw-r--r--searchcore/src/vespa/searchcore/proton/docsummary/docsumcontext.cpp4
-rw-r--r--searchcore/src/vespa/searchcore/proton/docsummary/summarymanager.cpp11
4 files changed, 8 insertions, 57 deletions
diff --git a/searchcore/src/tests/proton/docsummary/docsummary.cpp b/searchcore/src/tests/proton/docsummary/docsummary.cpp
index b034b77086c..93e8f3d248b 100644
--- a/searchcore/src/tests/proton/docsummary/docsummary.cpp
+++ b/searchcore/src/tests/proton/docsummary/docsummary.cpp
@@ -35,7 +35,6 @@
#include <vespa/searchlib/tensor/tensor_attribute.h>
#include <vespa/searchlib/transactionlog/nosyncproxy.h>
#include <vespa/searchlib/transactionlog/translogserver.h>
-#include <vespa/searchsummary/docsummary/i_docsum_field_writer_factory.h>
#include <vespa/searchsummary/docsummary/i_docsum_store_document.h>
#include <vespa/searchsummary/docsummary/summaryfieldconverter.h>
#include <vespa/vespalib/data/simple_buffer.h>
@@ -78,19 +77,6 @@ using namespace vespalib::slime;
namespace proton {
-class MockDocsumFieldWriterFactory : public search::docsummary::IDocsumFieldWriterFactory
-{
-public:
- std::unique_ptr<DocsumFieldWriter> create_docsum_field_writer(const vespalib::string& fieldName, const vespalib::string& overrideName, const vespalib::string& argument, bool& rc) override {
- (void) fieldName;
- (void) overrideName;
- (void) argument;
- (void) rc;
- return {};
- }
-
-};
-
class DirMaker
{
public:
@@ -1135,8 +1121,7 @@ Fixture::Fixture()
std::string cfgId("summary");
_summaryCfg = ConfigGetter<vespa::config::search::SummaryConfig>::getConfig(
cfgId, ::config::FileSpec(TEST_PATH("summary.cfg")));
- auto docsum_field_writer_factory = std::make_unique<MockDocsumFieldWriterFactory>();
- _resultCfg.ReadConfig(*_summaryCfg, cfgId.c_str(), *docsum_field_writer_factory);
+ _resultCfg.ReadConfig(*_summaryCfg, cfgId.c_str());
}
Fixture::~Fixture() = default;
diff --git a/searchcore/src/tests/proton/docsummary/summary.cfg b/searchcore/src/tests/proton/docsummary/summary.cfg
index 33641351c02..cceb15c8fd2 100644
--- a/searchcore/src/tests/proton/docsummary/summary.cfg
+++ b/searchcore/src/tests/proton/docsummary/summary.cfg
@@ -61,54 +61,31 @@ classes[2].id 2
classes[2].fields[2]
classes[2].fields[0].name "aa"
classes[2].fields[0].type "integer"
-classes[2].fields[0].command "copy"
-classes[2].fields[0].source "ab"
classes[2].fields[1].name "ab"
classes[2].fields[1].type "integer"
-classes[2].fields[1].command "empty"
classes[3].name "class3"
classes[3].id 3
classes[3].fields[10]
classes[3].fields[0].name "ba"
classes[3].fields[0].type "integer"
-classes[3].fields[0].command "attribute"
-classes[3].fields[0].source "ba"
classes[3].fields[1].name "bb"
classes[3].fields[1].type "float"
-classes[3].fields[1].command "attribute"
-classes[3].fields[1].source "bb"
classes[3].fields[2].name "bc"
classes[3].fields[2].type "longstring"
-classes[3].fields[2].command "attribute"
-classes[3].fields[2].source "bc"
classes[3].fields[3].name "bd"
classes[3].fields[3].type "jsonstring"
-classes[3].fields[3].command "attribute"
-classes[3].fields[3].source "bd"
classes[3].fields[4].name "be"
classes[3].fields[4].type "jsonstring"
-classes[3].fields[4].command "attribute"
-classes[3].fields[4].source "be"
classes[3].fields[5].name "bf"
classes[3].fields[5].type "jsonstring"
-classes[3].fields[5].command "attribute"
-classes[3].fields[5].source "bf"
classes[3].fields[6].name "bg"
classes[3].fields[6].type "jsonstring"
-classes[3].fields[6].command "attribute"
-classes[3].fields[6].source "bg"
classes[3].fields[7].name "bh"
classes[3].fields[7].type "jsonstring"
-classes[3].fields[7].command "attribute"
-classes[3].fields[7].source "bh"
classes[3].fields[8].name "bi"
classes[3].fields[8].type "jsonstring"
-classes[3].fields[8].command "attribute"
-classes[3].fields[8].source "bi"
classes[3].fields[9].name "bj"
classes[3].fields[9].type "tensor"
-classes[3].fields[9].command "attribute"
-classes[3].fields[9].source "bj"
classes[4].name "class4"
classes[4].id 4
classes[4].fields[1]
@@ -121,28 +98,18 @@ classes[5].fields[0].name "sp2"
classes[5].fields[0].type "int64"
classes[5].fields[1].name "sp2x"
classes[5].fields[1].type "xmlstring"
-classes[5].fields[1].command "positions"
-classes[5].fields[1].source "sp2"
classes[5].fields[2].name "ap2"
classes[5].fields[2].type "jsonstring"
classes[5].fields[3].name "ap2x"
classes[5].fields[3].type "xmlstring"
-classes[5].fields[3].command "positions"
-classes[5].fields[3].source "ap2"
classes[5].fields[4].name "wp2"
classes[5].fields[4].type "jsonstring"
classes[5].fields[5].name "wp2x"
classes[5].fields[5].type "xmlstring"
-classes[5].fields[5].command "positions"
-classes[5].fields[5].source "wp2"
classes[6].name "class6"
classes[6].id 6
classes[6].fields[6]
classes[6].fields[0].name "ba"
classes[6].fields[0].type "integer"
-classes[6].fields[0].command "attribute"
-classes[6].fields[0].source "ba"
classes[6].fields[1].name "bb"
classes[6].fields[1].type "float"
-classes[6].fields[1].command "attribute"
-classes[6].fields[1].source "bb"
diff --git a/searchcore/src/vespa/searchcore/proton/docsummary/docsumcontext.cpp b/searchcore/src/vespa/searchcore/proton/docsummary/docsumcontext.cpp
index 9a4ec121d3b..942dac63955 100644
--- a/searchcore/src/vespa/searchcore/proton/docsummary/docsumcontext.cpp
+++ b/searchcore/src/vespa/searchcore/proton/docsummary/docsumcontext.cpp
@@ -71,13 +71,13 @@ makeSlimeParams(size_t chunkSize) {
vespalib::Slime::UP
DocsumContext::createSlimeReply()
{
- IDocsumWriter::ResolveClassInfo rci = _docsumWriter.resolveClassInfo(_docsumState._args.getResultClassName());
- _docsumWriter.InitState(_attrMgr, _docsumState, rci);
+ _docsumWriter.InitState(_attrMgr, &_docsumState);
const size_t estimatedChunkSize(std::min(0x200000ul, _docsumState._docsumbuf.size()*0x400ul));
vespalib::Slime::UP response(std::make_unique<vespalib::Slime>(makeSlimeParams(estimatedChunkSize)));
Cursor & root = response->setObject();
Cursor & array = root.setArray(DOCSUMS);
const Symbol docsumSym = response->insert(DOCSUM);
+ IDocsumWriter::ResolveClassInfo rci = _docsumWriter.resolveClassInfo(_docsumState._args.getResultClassName());
_docsumState._omit_summary_features = (rci.outputClass != nullptr) ? rci.outputClass->omit_summary_features() : true;
uint32_t num_ok(0);
for (uint32_t docId : _docsumState._docsumbuf) {
diff --git a/searchcore/src/vespa/searchcore/proton/docsummary/summarymanager.cpp b/searchcore/src/vespa/searchcore/proton/docsummary/summarymanager.cpp
index 6a0133e913d..3e3a3529e46 100644
--- a/searchcore/src/vespa/searchcore/proton/docsummary/summarymanager.cpp
+++ b/searchcore/src/vespa/searchcore/proton/docsummary/summarymanager.cpp
@@ -9,7 +9,7 @@
#include <vespa/juniper/rpinterface.h>
#include <vespa/searchcore/proton/flushengine/shrink_lid_space_flush_target.h>
#include <vespa/vespalib/util/lambdatask.h>
-#include <vespa/searchsummary/docsummary/docsum_field_writer_factory.h>
+#include <vespa/searchsummary/docsummary/docsumconfig.h>
#include <vespa/searchsummary/docsummary/keywordextractor.h>
#include <vespa/vespalib/util/exceptions.h>
#include <vespa/fastlib/text/normwordfolder.h>
@@ -92,10 +92,8 @@ SummarySetup(const vespalib::string & baseDir, const SummaryConfig & summaryCfg,
_docStore(std::move(docStore)),
_repo(std::move(repo))
{
- _juniperConfig = std::make_unique<juniper::Juniper>(&_juniperProps, _wordFolder.get());
auto resultConfig = std::make_unique<ResultConfig>();
- auto docsum_field_writer_factory = std::make_unique<DocsumFieldWriterFactory>(summaryCfg.usev8geopositions, *this);
- if (!resultConfig->ReadConfig(summaryCfg, make_string("SummaryManager(%s)", baseDir.c_str()).c_str(), *docsum_field_writer_factory)) {
+ if (!resultConfig->ReadConfig(summaryCfg, make_string("SummaryManager(%s)", baseDir.c_str()).c_str())) {
std::ostringstream oss;
::config::OstreamConfigWriter writer(oss);
writer.write(summaryCfg);
@@ -103,10 +101,11 @@ SummarySetup(const vespalib::string & baseDir, const SummaryConfig & summaryCfg,
(make_string("Could not initialize summary result config for directory '%s' based on summary config '%s'",
baseDir.c_str(), oss.str().c_str()));
}
- docsum_field_writer_factory.reset();
+ _juniperConfig = std::make_unique<juniper::Juniper>(&_juniperProps, _wordFolder.get());
_docsumWriter = std::make_unique<DynamicDocsumWriter>(std::move(resultConfig), std::unique_ptr<KeywordExtractor>());
- (void) summarymapCfg;
+ DynamicDocsumConfig dynCfg(*this, _docsumWriter.get());
+ dynCfg.configure(summarymapCfg);
}
IDocsumStore::UP