summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@online.no>2021-11-16 00:13:00 +0100
committerTor Egge <Tor.Egge@online.no>2021-11-16 00:13:00 +0100
commit97f8b1ee1c817bf7ca38cc4b8119fc66b14cfc65 (patch)
tree3b83244f1b54ebc8ec86e48b24857e4fec140a00 /searchlib
parent9cd877af1097ad0da25036eb1fb9212c7fafc4a2 (diff)
Get ExecutorId from field name.
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/vespa/searchlib/memoryindex/document_inverter_context.cpp14
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);