diff options
author | Geir Storli <geirst@yahooinc.com> | 2022-09-21 10:35:32 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-21 10:35:32 +0200 |
commit | 79e303da0f7e7d2a4716601bd384745d504be98a (patch) | |
tree | f3d60e7389da653ed6b61e612ebdba7665df536d /searchcore | |
parent | 222e46fbd5e0d69b3166a09d712ce3466d29d7b9 (diff) | |
parent | b8d3ab8c0ad28c5cedbe414eb9c7c55a4e0bd6ae (diff) |
Merge pull request #24142 from vespa-engine/geirst/optimize-summary-class-resolving
Optimize resolving and usage of summary result class.
Diffstat (limited to 'searchcore')
-rw-r--r-- | searchcore/src/vespa/searchcore/proton/docsummary/docsumcontext.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/searchcore/src/vespa/searchcore/proton/docsummary/docsumcontext.cpp b/searchcore/src/vespa/searchcore/proton/docsummary/docsumcontext.cpp index 576b8f5bbd4..6c7f23166a7 100644 --- a/searchcore/src/vespa/searchcore/proton/docsummary/docsumcontext.cpp +++ b/searchcore/src/vespa/searchcore/proton/docsummary/docsumcontext.cpp @@ -71,20 +71,21 @@ makeSlimeParams(size_t chunkSize) { vespalib::Slime::UP DocsumContext::createSlimeReply() { - IDocsumWriter::ResolveClassInfo rci = _docsumWriter.resolveClassInfo(_docsumState._args.getResultClassName()); + IDocsumWriter::ResolveClassInfo rci = _docsumWriter.resolveClassInfo(_docsumState._args.getResultClassName(), + _docsumState._args.get_fields()); _docsumWriter.InitState(_attrMgr, _docsumState, rci); 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); - _docsumState._omit_summary_features = (rci.outputClass != nullptr) ? rci.outputClass->omit_summary_features() : true; + _docsumState._omit_summary_features = (rci.res_class != nullptr) ? rci.res_class->omit_summary_features() : true; uint32_t num_ok(0); for (uint32_t docId : _docsumState._docsumbuf) { if (_request.expired() ) { break; } Cursor &docSumC = array.addObject(); ObjectSymbolInserter inserter(docSumC, docsumSym); - if ((docId != search::endDocId) && rci.outputClass != nullptr) { + if ((docId != search::endDocId) && rci.res_class != nullptr) { _docsumWriter.insertDocsum(rci, docId, _docsumState, &_docsumStore, inserter); } num_ok++; |