diff --git a/app/code/Magento/CatalogSearch/Model/ResourceModel/Setup/PropertyMapper.php b/app/code/Magento/CatalogSearch/Model/ResourceModel/Setup/PropertyMapper.php
new file mode 100644
index 0000000000000..f72e1536f4710
--- /dev/null
+++ b/app/code/Magento/CatalogSearch/Model/ResourceModel/Setup/PropertyMapper.php
@@ -0,0 +1,34 @@
+ $this->_getValue($input, 'search_weight', 1),
+ ];
+ }
+}
diff --git a/app/code/Magento/CatalogSearch/Test/Unit/Model/ResourceModel/Setup/PropertyMapperTest.php b/app/code/Magento/CatalogSearch/Test/Unit/Model/ResourceModel/Setup/PropertyMapperTest.php
new file mode 100644
index 0000000000000..5c917b360f147
--- /dev/null
+++ b/app/code/Magento/CatalogSearch/Test/Unit/Model/ResourceModel/Setup/PropertyMapperTest.php
@@ -0,0 +1,65 @@
+propertyMapper = new PropertyMapper();
+ }
+
+ /**
+ * @return array
+ */
+ public function caseProvider(): array
+ {
+ return [
+ [
+ ['search_weight' => 9, 'something_other' => '3'],
+ ['search_weight' => 9]
+ ],
+ [
+ ['something' => 3],
+ ['search_weight' => 1]
+ ]
+ ];
+ }
+
+ /**
+ * @dataProvider caseProvider
+ *
+ * @test
+ *
+ * @param array $input
+ * @param array $result
+ * @return void
+ */
+ public function testMapCorrectlyMapsValue(array $input, array $result): void
+ {
+ //Second parameter doesn't matter as it is not used
+ $this->assertSame($result, $this->propertyMapper->map($input, 4));
+ }
+}
diff --git a/app/code/Magento/CatalogSearch/etc/di.xml b/app/code/Magento/CatalogSearch/etc/di.xml
index cc07384d4c525..b3091cf9b9094 100644
--- a/app/code/Magento/CatalogSearch/etc/di.xml
+++ b/app/code/Magento/CatalogSearch/etc/di.xml
@@ -340,4 +340,11 @@
+
+
+
+ - Magento\CatalogSearch\Model\ResourceModel\Setup\PropertyMapper
+
+
+