How to reindex programmatically in Magento2 Unicorn Meta Zoo #1: Why another podcast? Announcing the arrival of Valued Associate #679: Cesar ManaraFix error “There was a problem with reindexing process.” or “Cannot initialize the indexer process.”Products imported with custom script “disappear” from the category listingUnable to reindex prices - deleted all products but error still exists. What tables/values should be clearedMagento2 prevent reindex after adding product programmaticallyArea code not setMagento 2.1 :- Add Conditions Rule in custom formTable missing after index:resetError on editing categories in Magento 2Rogue “enterprise_refresh_index” causing excessive Merchandising failuresM1 cache corruption race condition?
How to count in linear time worst-case?
How to find the right literary agent in the USA?
What was Apollo 13's "Little Jolt" after MECO?
Would reducing the reference voltage of an ADC have any effect on accuracy?
What to do with someone that cheated their way through university and a PhD program?
Is Electric Central Heating worth it if using Solar Panels?
Identify story/novel: Tribe on colonized planet, not aware of this. "Taboo," altitude sickness, robot guardian (60s? Young Adult?)
How would I use different systems of magic when they are capable of the same effects?
Implementing 3DES algorithm in Java: is my code secure?
How to open locks without disable device?
A Paper Record is What I Hamper
Error: Syntax error. Missing ')' for CASE Statement
What is the term for a person whose job is to place products on shelves in stores?
AI positioning circles within an arc at equal distances and heights
Who is Alexandra K. Trenfor? Did she say the quote?
Seek and ye shall find
"My boss was furious with me and I have been fired" vs. "My boss was furious with me and I was fired"
Is this homebrew racial feat, Stonehide, balanced?
As an international instructor, should I openly talk about my accent?
Mistake in years of experience in resume?
What is ls Largest Number Formed by only moving two sticks in 508?
Arriving in Atlanta after US Preclearance in Dublin. Will I go through TSA security in Atlanta to transfer to a connecting flight?
All ASCII characters with a given bit count
What is the ongoing value of the Kanban board to the developers as opposed to management
How to reindex programmatically in Magento2
Unicorn Meta Zoo #1: Why another podcast?
Announcing the arrival of Valued Associate #679: Cesar ManaraFix error “There was a problem with reindexing process.” or “Cannot initialize the indexer process.”Products imported with custom script “disappear” from the category listingUnable to reindex prices - deleted all products but error still exists. What tables/values should be clearedMagento2 prevent reindex after adding product programmaticallyArea code not setMagento 2.1 :- Add Conditions Rule in custom formTable missing after index:resetError on editing categories in Magento 2Rogue “enterprise_refresh_index” causing excessive Merchandising failuresM1 cache corruption race condition?
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
I want to reindex all indexes in Magento2 from an external file, for this I created a external file as below :
...
$indexers = $objectManager->get('MagentoFrameworkIndexerConfigInterface')->getIndexers();
foreach($indexers as $indexer)
$actualIndexer = $objectManager->get('MagentoFrameworkIndexerIndexerInterface')->load($indexer['indexer_id']);
$actualIndexer->reindexAll();
...
When I run it on then only config index reindexed, not all.
I know it is not a good way to reindex but It is my custom module requirement, I want to integrate reindex code in my module save controller, so that when client save form there will be no indexing issue.
How to reindex all indexes?
magento-2.1 reindex
add a comment |
I want to reindex all indexes in Magento2 from an external file, for this I created a external file as below :
...
$indexers = $objectManager->get('MagentoFrameworkIndexerConfigInterface')->getIndexers();
foreach($indexers as $indexer)
$actualIndexer = $objectManager->get('MagentoFrameworkIndexerIndexerInterface')->load($indexer['indexer_id']);
$actualIndexer->reindexAll();
...
When I run it on then only config index reindexed, not all.
I know it is not a good way to reindex but It is my custom module requirement, I want to integrate reindex code in my module save controller, so that when client save form there will be no indexing issue.
How to reindex all indexes?
magento-2.1 reindex
add a comment |
I want to reindex all indexes in Magento2 from an external file, for this I created a external file as below :
...
$indexers = $objectManager->get('MagentoFrameworkIndexerConfigInterface')->getIndexers();
foreach($indexers as $indexer)
$actualIndexer = $objectManager->get('MagentoFrameworkIndexerIndexerInterface')->load($indexer['indexer_id']);
$actualIndexer->reindexAll();
...
When I run it on then only config index reindexed, not all.
I know it is not a good way to reindex but It is my custom module requirement, I want to integrate reindex code in my module save controller, so that when client save form there will be no indexing issue.
How to reindex all indexes?
magento-2.1 reindex
I want to reindex all indexes in Magento2 from an external file, for this I created a external file as below :
...
$indexers = $objectManager->get('MagentoFrameworkIndexerConfigInterface')->getIndexers();
foreach($indexers as $indexer)
$actualIndexer = $objectManager->get('MagentoFrameworkIndexerIndexerInterface')->load($indexer['indexer_id']);
$actualIndexer->reindexAll();
...
When I run it on then only config index reindexed, not all.
I know it is not a good way to reindex but It is my custom module requirement, I want to integrate reindex code in my module save controller, so that when client save form there will be no indexing issue.
How to reindex all indexes?
magento-2.1 reindex
magento-2.1 reindex
asked Sep 14 '17 at 5:25
Vinaya MaheshwariVinaya Maheshwari
1,19211948
1,19211948
add a comment |
add a comment |
3 Answers
3
active
oldest
votes
Try below code :
/**
* @var MagentoIndexerModelIndexerFactory
*/
protected $_indexerFactory;
/**
* @var MagentoIndexerModelIndexerCollectionFactory
*/
protected $_indexerCollectionFactory;
public function __construct(
MagentoIndexerModelIndexerFactory $indexerFactory,
MagentoIndexerModelIndexerCollectionFactory $indexerCollectionFactory
)
$this->_indexerFactory = $indexerFactory;
$this->_indexerCollectionFactory = $indexerCollectionFactory;
// you can call this function to do reindexing
public function reIndexing(){
$indexerCollection = $this->_indexerCollectionFactory->create();
$ids = $indexerCollection->getAllIds();
foreach ($ids as $id)
$idx = $this->_indexerFactory->create()->load($id);
$idx->reindexAll($id);
//$idx->reindexRow($id);
add a comment |
Take a look at MagentoIndexerConsoleCommandIndexerReindexCommand::execute() on how the console command does it. If you analyze the code you can up with something like:
/**
* @var MagentoIndexerModelIndexerCollectionFactory
*/
protected $indexerCollectionFactory;
/**
* Foo constructor.
* @param MagentoIndexerModelIndexerCollectionFactory $collectionFactory
*/
public function __construct(
MagentoIndexerModelIndexerCollectionFactory $indexerCollectionFactory
)
$this->indexerCollectionFactory = $indexerCollectionFactory;
/**
* Run every indexer
*/
public function runEveryIndexer()
$indexerCollection = $this->indexerCollectionFactory->create();
foreach ($indexerCollection->getItems() as $indexer)
$indexer->reindexAll();
A small sidenote: I don't know your use case, but it might make more sense to only reindex the required indexers, because some indexers might take a long time to run and are not always required to.
add a comment |
Simply call this function wherever you need to reindex. If you make it static, you can include and call it from anywhere you want, because it is class-independent.
use MagentoIndexerConsoleCommandIndexerReindexCommand;
public function reIndexing()
$obj = MagentoFrameworkAppObjectManager::getInstance();
$indexerCollectionFactory = $obj->get("MagentoIndexerModelIndexerCollectionFactory");
$indexerFactory = $obj->get("MagentoIndexerModelIndexerFactory");
$indexerCollection = $indexerCollectionFactory->create();
$allIds = $indexerCollection->getAllIds();
foreach ($allIds as $id)
$indexer = $indexerFactory->create()->load($id);
$indexer->reindexAll(); // this reindexes all
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "479"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f193159%2fhow-to-reindex-programmatically-in-magento2%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
Try below code :
/**
* @var MagentoIndexerModelIndexerFactory
*/
protected $_indexerFactory;
/**
* @var MagentoIndexerModelIndexerCollectionFactory
*/
protected $_indexerCollectionFactory;
public function __construct(
MagentoIndexerModelIndexerFactory $indexerFactory,
MagentoIndexerModelIndexerCollectionFactory $indexerCollectionFactory
)
$this->_indexerFactory = $indexerFactory;
$this->_indexerCollectionFactory = $indexerCollectionFactory;
// you can call this function to do reindexing
public function reIndexing(){
$indexerCollection = $this->_indexerCollectionFactory->create();
$ids = $indexerCollection->getAllIds();
foreach ($ids as $id)
$idx = $this->_indexerFactory->create()->load($id);
$idx->reindexAll($id);
//$idx->reindexRow($id);
add a comment |
Try below code :
/**
* @var MagentoIndexerModelIndexerFactory
*/
protected $_indexerFactory;
/**
* @var MagentoIndexerModelIndexerCollectionFactory
*/
protected $_indexerCollectionFactory;
public function __construct(
MagentoIndexerModelIndexerFactory $indexerFactory,
MagentoIndexerModelIndexerCollectionFactory $indexerCollectionFactory
)
$this->_indexerFactory = $indexerFactory;
$this->_indexerCollectionFactory = $indexerCollectionFactory;
// you can call this function to do reindexing
public function reIndexing(){
$indexerCollection = $this->_indexerCollectionFactory->create();
$ids = $indexerCollection->getAllIds();
foreach ($ids as $id)
$idx = $this->_indexerFactory->create()->load($id);
$idx->reindexAll($id);
//$idx->reindexRow($id);
add a comment |
Try below code :
/**
* @var MagentoIndexerModelIndexerFactory
*/
protected $_indexerFactory;
/**
* @var MagentoIndexerModelIndexerCollectionFactory
*/
protected $_indexerCollectionFactory;
public function __construct(
MagentoIndexerModelIndexerFactory $indexerFactory,
MagentoIndexerModelIndexerCollectionFactory $indexerCollectionFactory
)
$this->_indexerFactory = $indexerFactory;
$this->_indexerCollectionFactory = $indexerCollectionFactory;
// you can call this function to do reindexing
public function reIndexing(){
$indexerCollection = $this->_indexerCollectionFactory->create();
$ids = $indexerCollection->getAllIds();
foreach ($ids as $id)
$idx = $this->_indexerFactory->create()->load($id);
$idx->reindexAll($id);
//$idx->reindexRow($id);
Try below code :
/**
* @var MagentoIndexerModelIndexerFactory
*/
protected $_indexerFactory;
/**
* @var MagentoIndexerModelIndexerCollectionFactory
*/
protected $_indexerCollectionFactory;
public function __construct(
MagentoIndexerModelIndexerFactory $indexerFactory,
MagentoIndexerModelIndexerCollectionFactory $indexerCollectionFactory
)
$this->_indexerFactory = $indexerFactory;
$this->_indexerCollectionFactory = $indexerCollectionFactory;
// you can call this function to do reindexing
public function reIndexing(){
$indexerCollection = $this->_indexerCollectionFactory->create();
$ids = $indexerCollection->getAllIds();
foreach ($ids as $id)
$idx = $this->_indexerFactory->create()->load($id);
$idx->reindexAll($id);
//$idx->reindexRow($id);
answered Sep 14 '17 at 6:13
Manthan DaveManthan Dave
8,02621539
8,02621539
add a comment |
add a comment |
Take a look at MagentoIndexerConsoleCommandIndexerReindexCommand::execute() on how the console command does it. If you analyze the code you can up with something like:
/**
* @var MagentoIndexerModelIndexerCollectionFactory
*/
protected $indexerCollectionFactory;
/**
* Foo constructor.
* @param MagentoIndexerModelIndexerCollectionFactory $collectionFactory
*/
public function __construct(
MagentoIndexerModelIndexerCollectionFactory $indexerCollectionFactory
)
$this->indexerCollectionFactory = $indexerCollectionFactory;
/**
* Run every indexer
*/
public function runEveryIndexer()
$indexerCollection = $this->indexerCollectionFactory->create();
foreach ($indexerCollection->getItems() as $indexer)
$indexer->reindexAll();
A small sidenote: I don't know your use case, but it might make more sense to only reindex the required indexers, because some indexers might take a long time to run and are not always required to.
add a comment |
Take a look at MagentoIndexerConsoleCommandIndexerReindexCommand::execute() on how the console command does it. If you analyze the code you can up with something like:
/**
* @var MagentoIndexerModelIndexerCollectionFactory
*/
protected $indexerCollectionFactory;
/**
* Foo constructor.
* @param MagentoIndexerModelIndexerCollectionFactory $collectionFactory
*/
public function __construct(
MagentoIndexerModelIndexerCollectionFactory $indexerCollectionFactory
)
$this->indexerCollectionFactory = $indexerCollectionFactory;
/**
* Run every indexer
*/
public function runEveryIndexer()
$indexerCollection = $this->indexerCollectionFactory->create();
foreach ($indexerCollection->getItems() as $indexer)
$indexer->reindexAll();
A small sidenote: I don't know your use case, but it might make more sense to only reindex the required indexers, because some indexers might take a long time to run and are not always required to.
add a comment |
Take a look at MagentoIndexerConsoleCommandIndexerReindexCommand::execute() on how the console command does it. If you analyze the code you can up with something like:
/**
* @var MagentoIndexerModelIndexerCollectionFactory
*/
protected $indexerCollectionFactory;
/**
* Foo constructor.
* @param MagentoIndexerModelIndexerCollectionFactory $collectionFactory
*/
public function __construct(
MagentoIndexerModelIndexerCollectionFactory $indexerCollectionFactory
)
$this->indexerCollectionFactory = $indexerCollectionFactory;
/**
* Run every indexer
*/
public function runEveryIndexer()
$indexerCollection = $this->indexerCollectionFactory->create();
foreach ($indexerCollection->getItems() as $indexer)
$indexer->reindexAll();
A small sidenote: I don't know your use case, but it might make more sense to only reindex the required indexers, because some indexers might take a long time to run and are not always required to.
Take a look at MagentoIndexerConsoleCommandIndexerReindexCommand::execute() on how the console command does it. If you analyze the code you can up with something like:
/**
* @var MagentoIndexerModelIndexerCollectionFactory
*/
protected $indexerCollectionFactory;
/**
* Foo constructor.
* @param MagentoIndexerModelIndexerCollectionFactory $collectionFactory
*/
public function __construct(
MagentoIndexerModelIndexerCollectionFactory $indexerCollectionFactory
)
$this->indexerCollectionFactory = $indexerCollectionFactory;
/**
* Run every indexer
*/
public function runEveryIndexer()
$indexerCollection = $this->indexerCollectionFactory->create();
foreach ($indexerCollection->getItems() as $indexer)
$indexer->reindexAll();
A small sidenote: I don't know your use case, but it might make more sense to only reindex the required indexers, because some indexers might take a long time to run and are not always required to.
answered Sep 14 '17 at 6:23
Giel BerkersGiel Berkers
7,20424383
7,20424383
add a comment |
add a comment |
Simply call this function wherever you need to reindex. If you make it static, you can include and call it from anywhere you want, because it is class-independent.
use MagentoIndexerConsoleCommandIndexerReindexCommand;
public function reIndexing()
$obj = MagentoFrameworkAppObjectManager::getInstance();
$indexerCollectionFactory = $obj->get("MagentoIndexerModelIndexerCollectionFactory");
$indexerFactory = $obj->get("MagentoIndexerModelIndexerFactory");
$indexerCollection = $indexerCollectionFactory->create();
$allIds = $indexerCollection->getAllIds();
foreach ($allIds as $id)
$indexer = $indexerFactory->create()->load($id);
$indexer->reindexAll(); // this reindexes all
add a comment |
Simply call this function wherever you need to reindex. If you make it static, you can include and call it from anywhere you want, because it is class-independent.
use MagentoIndexerConsoleCommandIndexerReindexCommand;
public function reIndexing()
$obj = MagentoFrameworkAppObjectManager::getInstance();
$indexerCollectionFactory = $obj->get("MagentoIndexerModelIndexerCollectionFactory");
$indexerFactory = $obj->get("MagentoIndexerModelIndexerFactory");
$indexerCollection = $indexerCollectionFactory->create();
$allIds = $indexerCollection->getAllIds();
foreach ($allIds as $id)
$indexer = $indexerFactory->create()->load($id);
$indexer->reindexAll(); // this reindexes all
add a comment |
Simply call this function wherever you need to reindex. If you make it static, you can include and call it from anywhere you want, because it is class-independent.
use MagentoIndexerConsoleCommandIndexerReindexCommand;
public function reIndexing()
$obj = MagentoFrameworkAppObjectManager::getInstance();
$indexerCollectionFactory = $obj->get("MagentoIndexerModelIndexerCollectionFactory");
$indexerFactory = $obj->get("MagentoIndexerModelIndexerFactory");
$indexerCollection = $indexerCollectionFactory->create();
$allIds = $indexerCollection->getAllIds();
foreach ($allIds as $id)
$indexer = $indexerFactory->create()->load($id);
$indexer->reindexAll(); // this reindexes all
Simply call this function wherever you need to reindex. If you make it static, you can include and call it from anywhere you want, because it is class-independent.
use MagentoIndexerConsoleCommandIndexerReindexCommand;
public function reIndexing()
$obj = MagentoFrameworkAppObjectManager::getInstance();
$indexerCollectionFactory = $obj->get("MagentoIndexerModelIndexerCollectionFactory");
$indexerFactory = $obj->get("MagentoIndexerModelIndexerFactory");
$indexerCollection = $indexerCollectionFactory->create();
$allIds = $indexerCollection->getAllIds();
foreach ($allIds as $id)
$indexer = $indexerFactory->create()->load($id);
$indexer->reindexAll(); // this reindexes all
answered Jul 25 '18 at 10:46
ErunestaronErunestaron
11
11
add a comment |
add a comment |
Thanks for contributing an answer to Magento Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f193159%2fhow-to-reindex-programmatically-in-magento2%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown