TYPO3-Solr / ext-solr

A TYPO3 extension that integrates the Apache Solr search server with TYPO3 CMS. dkd Internet Service GmbH is developing the extension. Community contributions are welcome. See CONTRIBUTING.md for details.
GNU General Public License v3.0
137 stars 250 forks source link

Don't unitialize queue on emptying table #542

Open timohund opened 8 years ago

timohund commented 8 years ago

We're importing addresses from an XML file and put them to the Solr index each night. Because we cannot track changes we first remove all addresses by DataHandler (triggering removal in the Solr index) and then import all addresses by DataHandler again.

The problem is that by the time that no addresses are left in the table, Solr somehow "uninitializes" the queue. When all the addresses are back, it doesn't put them to the queue anymore until you manually initialize the index for the table. IMO this shouldn't happen because just because the table is empty it doesn't mean that I don't want to index the items anymore when I have new items.

https://forge.typo3.org/issues/59951

timohund commented 8 years ago

1 Updated by Lorenz Ulrich about 2 years ago Comment Edit

As a workaround, I trigger an initialize for the queue in my extension, but I still think it's not OK to uninitialize the queue:

        // Re-initialize Solr index queue
        $itemIndexQueue = GeneralUtility::makeInstance('Tx_Solr_IndexQueue_Queue');
        $site = \tx_solr_Site::getSiteByPageId(1);
        $itemIndexQueue->initialize(
            $site,
            'tx_myext_domain_model_address'
        );

2 Updated by Ingo Renner about 2 years ago Comment Edit

You could also use the re-index task in scheduler

3 Updated by Lorenz Ulrich about 2 years ago Comment Edit

Good idea. Still I think it is wrong that the queue doesn't get uninitialized just because there are no items left. What do you think?