В TYPO3 мы пытаемся индексировать записи tt_content, используя расширение solr. Я знаю, что записи tt_content обрабатываются Solr не так, как другие записи. Если запись tt_content добавлена, отредактирована или удалена, страница обновляется в индексе solr вместо записи tt_content. Чтобы это исправить, я создал специальный монитор записей для обновления записи tt_content в индексе solr. Это работает, но есть проблема при удалении элемента содержимого.
Похоже, что при удалении элемента содержимого solr удаляет страницу из индекса solr, а затем добавляет ее снова. Однако из-за моего пользовательского монитора записей страница снова удаляется, когда я удаляю запись tt_content из индекса, и она больше не добавляется. Мне нужно снова добавить страницу в указатель в моем мониторе записей.
Это означает, что при удалении элемента содержимого происходит следующее в индексе solr:
- Страница, на которой находился элемент содержимого, удалена (расширение solr)
- Добавлена страница, на которой находился элемент содержимого (расширение solr)
- Элемент содержимого удален (пользовательский монитор записи)
- Страница, на которой находился элемент содержимого, удалена (расширение solr)
- Добавлена страница, на которой находился элемент контента (монитор пользовательских записей)
Это кажется немного неэффективным. Есть ли правильный способ индексировать и отслеживать отдельные записи tt_content с расширением TYPO3 solr без этих проблем?
Используемая версия TYPO3 - 8.7, а версия расширения Solr - 8.0.2.
В моем собственном мониторе записей я использую \ApacheSolrForTypo3\Solr\IndexQueue\Queue->add
для добавления / обновления записей tt_content в очередь индекса и \ApacheSolrForTypo3\Solr\GarbageCollector->collectGarbage
для их удаления.