diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2021-11-16 09:05:17 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-16 09:05:17 +0100 |
commit | 0f87c9a8ac7cfbaad828c4d7dad3620c520220c9 (patch) | |
tree | 96e9ca1166a78384af96a69c9072b0dac11e8410 /searchlib | |
parent | 3382dafd239b298012b06ae28dcdb520d2a64fe8 (diff) | |
parent | 97f8b1ee1c817bf7ca38cc4b8119fc66b14cfc65 (diff) |
Merge pull request #20024 from vespa-engine/toregge/get-executor-id-from-field-name
Get ExecutorId from field name.
Diffstat (limited to 'searchlib')
-rw-r--r-- | searchlib/src/vespa/searchlib/memoryindex/document_inverter_context.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/searchlib/src/vespa/searchlib/memoryindex/document_inverter_context.cpp b/searchlib/src/vespa/searchlib/memoryindex/document_inverter_context.cpp index 20fd333442b..8183cb005fe 100644 --- a/searchlib/src/vespa/searchlib/memoryindex/document_inverter_context.cpp +++ b/searchlib/src/vespa/searchlib/memoryindex/document_inverter_context.cpp @@ -12,19 +12,23 @@ using index::SchemaIndexFields; namespace { template <typename Context> -void make_contexts(const SchemaIndexFields& schema_index_fields, ISequencedTaskExecutor& executor, std::vector<Context>& contexts) +void make_contexts(const index::Schema& schema, const SchemaIndexFields& schema_index_fields, ISequencedTaskExecutor& executor, std::vector<Context>& contexts) { using ExecutorId = ISequencedTaskExecutor::ExecutorId; using IdMapping = std::vector<std::tuple<ExecutorId, bool, uint32_t>>; IdMapping map; for (uint32_t field_id : schema_index_fields._textFields) { // TODO: Add bias when sharing sequenced task executor between document types - map.emplace_back(executor.getExecutorId(field_id), false, field_id); + auto& name = schema.getIndexField(field_id).getName(); + auto id = executor.getExecutorIdFromName(name); + map.emplace_back(id, false, field_id); } uint32_t uri_field_id = 0; for (auto& uri_field : schema_index_fields._uriFields) { // TODO: Add bias when sharing sequenced task executor between document types - map.emplace_back(executor.getExecutorId(uri_field._all), true, uri_field_id); + auto& name = schema.getIndexField(uri_field._all).getName(); + auto id = executor.getExecutorIdFromName(name); + map.emplace_back(id, true, uri_field_id); ++uri_field_id; } std::sort(map.begin(), map.end()); @@ -140,8 +144,8 @@ DocumentInverterContext::~DocumentInverterContext() = default; void DocumentInverterContext::setup_contexts() { - make_contexts(_schema_index_fields, _invert_threads, _invert_contexts); - make_contexts(_schema_index_fields, _push_threads, _push_contexts); + make_contexts(_schema, _schema_index_fields, _invert_threads, _invert_contexts); + make_contexts(_schema, _schema_index_fields, _push_threads, _push_contexts); if (&_invert_threads == &_push_threads) { uint32_t bias = _schema_index_fields._textFields.size() + _schema_index_fields._uriFields.size(); switch_to_alternate_ids(_push_threads, _push_contexts, bias); |