Feature #53885


Epic #65815: Improve Indexed search indexer

sys_language_uid vs. sys_language_content

Added by Jonathan Krusy over 10 years ago. Updated about 4 years ago.

Should have
Indexed Search
Target version:
Start date:
Due date:
% Done:


Estimated time:
PHP Version:
Sprint Focus:


Indexed Search only indexes pages when sys_language_uid and sys_language_content have the same value.
In some cases, indexed search won't index pages.

For example:
We have three different root-pages (root-A, root-B, root-C) with different sys_language_uids.
All of them have one page, displaying the content from another page-root (root-D) with a completly different sys_language_uid (in this case: default 0)
With sys_language_mode = content_fallback, the pages from A, B and C will display the content from D, but sys_language_content would be 0.
Therefore the pages from A, B and C won't be indexed due to the line

if (!strcmp($pObj->sys_language_uid, $pObj->sys_language_content)) {

in the Indexer Class.

Is there a possibility to add an extra configuration to skip this test?

Actions #1

Updated by Markus Klein over 10 years ago

I can't tell you why this condition is checked, but I can tell you that there's no option to skip it, sorry.

Maybe send an email to one of the mailing lists, to ask if somebody knows, why this check is in place.

Actions #2

Updated by Mathias Schreiber over 9 years ago

  • Target version set to 7.5
Actions #3

Updated by Tymoteusz Motylewski about 9 years ago

  • Parent task set to #65815
Actions #4

Updated by Benni Mack over 8 years ago

  • Target version changed from 7.5 to 8 LTS
Actions #5

Updated by Riccardo De Contardi about 7 years ago

  • Target version changed from 8 LTS to 9.0
Actions #6

Updated by Susanne Moog over 6 years ago

  • Target version deleted (9.0)
Actions #7

Updated by Riccardo De Contardi about 4 years ago

The code reported has been changed a couple of years ago with

 /** @var LanguageAspect $languageAspect */
$languageAspect = GeneralUtility::makeInstance(Context::class)->getAspect('language');
 if ($languageAspect->getId() === $languageAspect->getContentId()) {

But as far as I have understood this kind of check is still present (I could be wrong); this check seems to avoid the indexing of fallback content as localized content - when the check fails the code continues on:

 $this->log_setTSlogMessage('Index page? No, languageId was different from contentId which indicates that the page contains fall-back content and that would be falsely indexed as localized content.');

(see EXT:indexed_search/Classes/Indexer.php)


Also available in: Atom PDF