Quiero modificar mi búsqueda y personalizarla, intencionado hacer un modulo para hacer esto.
Actualmente ya logre hacer mi búsqueda tal cual la necesito pero lo hago directamente en el archivo Vendor/Magento/Framework/Search/Adapter/MySql/Adapter.php en su metodo query($request), llega un $request con la información de la búsqueda. entonces ahí intercepto y modifico para hacer mi búsqueda personalizada.
//Codigo sin Modificar
$documents = $this->getDocuments($table); // Obtenemos los Id´s de la buqueda nativa de magento $aggregations = $this->aggregationBuilder->build($request, $table, $documents); $response = [ 'documents' => $documents, 'aggregations' => $aggregations, ];
Entonces Modifico de esta Manera
//Codigo Modificado $requestSearch = $request->getQuery()->getShould()['search']->getValue(); //recuperamos Value del Objeto Request $result_ids = $this->getDataOerp($requestSearch); //Manadamos a buscar a OpenERP $resultSearch = $this->setArrayData($result_ids); //Me crea un arreglo identico a como lo creaba getDocuments($table) $aggregations = $this->aggregationBuilder->build($request, $table, $resultSearch); //Modificamos $document por $resultSerach $response = [ 'documents' => $resultSearch, 'aggregations' => $aggregations, ];
Hago 2 funciones, una para modificar la búsqueda a como la necesito y otra para que me retorne un array como lo hacia anteriormente el método getDocument().
Pero :
Al llegar a este punto mi búsqueda tarda aproximadamente 10 segundos y pasar por una infinidad de archivos . Es por eso que quisiera hacer mi propio modulo que haga la búsqueda.
Entonces me pregunto varias cosas:
Espero me puedan ayudar !!