![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-elasticsearch/SearchAdapter/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Elasticsearch\SearchAdapter; use Magento\Framework\Search\EntityMetadata; use Magento\Framework\Api\AttributeInterface; use Magento\Framework\Api\AttributeValue; use Magento\Framework\Api\CustomAttributesDataInterface; use Magento\Framework\Api\Search\Document; use Magento\Framework\Api\Search\DocumentInterface; /** * Document Factory to create Search Document instance * @api * @since 100.1.0 */ class DocumentFactory { /** * @var EntityMetadata */ private $entityMetadata; /** * @param EntityMetadata $entityMetadata */ public function __construct(EntityMetadata $entityMetadata) { $this->entityMetadata = $entityMetadata; } /** * Create Search Document instance * * @param array $rawDocument * @return Document * @since 100.1.0 */ public function create($rawDocument) { /** @var AttributeValue[] $fields */ $attributes = []; $documentId = null; $entityId = $this->entityMetadata->getEntityId(); foreach ($rawDocument as $fieldName => $value) { if ($fieldName === $entityId) { $documentId = $value; } elseif ($fieldName === '_score') { $attributes['score'] = new AttributeValue( [ AttributeInterface::ATTRIBUTE_CODE => $fieldName, AttributeInterface::VALUE => $value, ] ); } } return new Document( [ DocumentInterface::ID => $documentId, CustomAttributesDataInterface::CUSTOM_ATTRIBUTES => $attributes, ] ); } }