module-toolkit / table-manager-opensearch
N/A
Installs: 5
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Type:magento2-module
Requires
- php: ~8.1.0||~8.2.0
- magento/framework: 103.0.*
- magento/module-backend: 102.0.*
- magento/module-config: 101.2.*
- magento/module-open-search: 100.4.*
- magento/module-store: 101.1.*
- module-toolkit/table-manager: *
README
How to use.
--- di.xml
<virtualType name="Custom\Module\Model\GetConnectionName" type="ModuleToolkit\TableManager\TableManager\GetConnectionName"> <arguments> <argument name="connectionNameConfigPath" xsi:type="string">default</argument> </arguments> </virtualType> <virtualType name="Custom\Module\Model\CustomIndexBuilderSearch" type="ModuleToolkit\TableManagerOpenSearch\TableManager\IndexBuilderSearch" > <arguments> <argument name="getConnectionName" xsi:type="object">Custom\Module\Model\GetConnectionName</argument> <argument name="indexName" xsi:type="string">custom_index_name</argument> <argument name="indexTableName" xsi:type="string">custom_index_table</argument> <argument name="primaryColumn" xsi:type="string">entity_id</argument> <argument name="indexTableColumns" xsi:type="array"> <item name="entity_id" xsi:type="string">entity_id</item> <item name="name" xsi:type="string">name</item> <item name="total" xsi:type="string">total</item> </argument> </arguments> </virtualType> <type name="Custom\Module\Model\Indexer\CustomIndexer"> <arguments> <argument name="indexBuilder" xsi:type="object">Custom\Module\Model\CustomIndexBuilderSearch</argument> </arguments> </type>
- Index process
namespace Custom\Module\Model\Indexer; use ModuleToolkit\TableManager\TableManager\IndexBuilderSearchInterface; use Magento\Framework\Indexer\ActionInterface; class CustomIndexer implements ActionInterface { public function __construct(protected IndexBuilderSearchInterface $indexBuilder) {} public function execute($ids = null) { $this->indexBuilder->rebuild($ids); } public function executeFull() { $this->indexBuilder->rebuild(); } public function executeList(array $ids) { $this->indexBuilder->rebuild($ids); } public function executeRow($id) { $this->indexBuilder->rebuild([$id]); } }
-
- Search and get OpenSearch Results Format
use ModuleToolkit\TableManager\TableManager\IndexBuilderSearchInterface; class CustomSearch { public function __construct( protected IndexBuilderSearchInterface $indexBuilderSearch ) { } public function search() { $searchCriteria = ['sku' => 'test']; $page = 1; $size = 300; $sort = ['sku' => 'DESC'] $this->indexBuilderSearch->searchWithPagination($searchCriteria, $page, $size, $sort)//array; $this->indexBuilderSearch->search($searchCriteria);// array $this->indexBuilderSearch->getById(1); //array } }
-
- Search and get magento array Format
use ModuleToolkit\TableManager\TableManager\IndexBuilderSearchInterface; use ModuleToolkit\TableManager\TableManager\TableManagerInterface; class CustomSearch { public function __construct( protected IndexBuilderSearchInterface $indexBuilderSearch, protected TableManagerInterface $tableManager ){} public function search() { $searchCriteria = ['sku' => 'test']; $page = 1; $size = 300; $sort = ['sku' => 'DESC'] $tableRequest = $this->tableManager->getTableRequest(); $tableRequest ->setCurPage($page) ->setLimit($size) ->setSortOrder($sort) ->setValues($searchCriteria); $this->tableManager->indexFastSearch($tableRequest, $this->indexBuilderSearch); //array magento array format } }