summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2021-11-16 09:05:17 +0100
committerGitHub <noreply@github.com>2021-11-16 09:05:17 +0100
commit0f87c9a8ac7cfbaad828c4d7dad3620c520220c9 (patch)
tree96e9ca1166a78384af96a69c9072b0dac11e8410 /searchlib
parent3382dafd239b298012b06ae28dcdb520d2a64fe8 (diff)
parent97f8b1ee1c817bf7ca38cc4b8119fc66b14cfc65 (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.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);