diff --git a/src/Plugin/views/field/SearchApiFieldTrait.php b/src/Plugin/views/field/SearchApiFieldTrait.php
index 6f6fb0ff..75d3b2c5 100644
--- a/src/Plugin/views/field/SearchApiFieldTrait.php
+++ b/src/Plugin/views/field/SearchApiFieldTrait.php
@@ -379,6 +379,7 @@ public function getValue(ResultRow $values, $field = NULL) {
    */
   public function preRender(&$values) {
     $index = $this->getIndex();
+    $definitions = [];
     // We deal with the properties one by one, always loading the necessary
     // values for any nested properties coming afterwards.
     // @todo This works quite well, but will load each item/entity individually.
@@ -449,9 +450,11 @@ public function preRender(&$values) {
               }
               // Check whether this is a processor-generated property and use
               // special code to retrieve it in this case.
-              $definitions = $index->getPropertyDefinitions($datasource_id);
-              if (!$parent_path && isset($definitions[$name])) {
-                $definition = $definitions[$name];
+              if (!isset($definitions[$datasource_id])) {
+                $definitions[$datasource_id] = $index->getPropertyDefinitions($datasource_id);
+              }
+              if (!$parent_path && isset($definitions[$datasource_id][$name])) {
+                $definition = $definitions[$datasource_id][$name];
                 if ($definition instanceof ProcessorPropertyInterface) {
                   $processor = $index->getProcessor($definition->getProcessorId());
                   if (!$processor) {
