TYPO3 - Индекс собственных IRRE Contentelements в Solr

В настоящее время я пытаюсь проиндексировать новые IRRE ContentElements с помощью Solr в TYPO3.

У меня есть несколько новых элементов, таких как "Плитка" и "Баннеры" и т. Д.

Моя очередь индексов выглядит так, но она не работает (solr требуется минимум полей -> title, content и url - но мне не нужен новый URL, я хочу URL-адрес со страницы, где в данный момент отображается контент... как каждый элемент text/image или как стандартные элементы из tt_content.

Мой конфиг Solr выглядит так:

plugin.tx_solr.index.queue {
    extname_tile = 1
    extname_tile {
        table = tx_extname_domain_model_tile
        fields {
            header = header
            bodytext = bodytext
        }
    }
}

Моя переопределение tt_content выглядит следующим образом

'tx_extname_tile' => [
        'label' => 'LLL:EXT:extname/Resources/Private/Language/locallang_db.xlf:tx_extname_tile',
        'config' => [
            'type' => 'inline',
            'foreign_table' => 'tx_extname_domain_model_tile',
            'foreign_field' => 'parentid',
            'foreign_table_field' => 'parenttable',
            'appearance' => [
                'collapseAll' => 1,
                'expandSingle' => 1,
                'useSortable' => 1,
                'showSynchronizationLink' => 1,
                'showAllLocalizationLink' => 1,
                'showPossibleLocalizationRecords' => 1,
                'showRemovedLocalizationRecords' => 1,
            ],
            'maxitems' => 24,
            'behaviour' => [
                'localizeChildrenAtParentLocalization' => true,
            ],
        ]
    ],

1 ответ

Если я правильно понимаю, вы хотите иметь возможность находить элементы контента на основе плиток или прикрепленных к ним баннеров. Если это так, вам не нужно индексировать плитки и баннеры, но вы должны индексировать записи tt_content и добавлять плитки и баннеры в виде полей. С нормальными записями это не будет проблемой. С tt_content как бы то ни было. Расширение solr не может (легко) индексировать записи tt_content, поскольку они обычно индексируются как часть страницы. Таким образом, страница индексируется вместо отдельных элементов содержимого. К сожалению, это поведение жестко закодировано в расширении solr.

Теперь, если вы хотите найти страницы с элементами контента, которые имеют конкретную плитку или баннер, это выполнимо. Без фактического тестирования это что-то вроде:

plugin.tx_solr.index.queue.pages.fields.tiles_stringM = CONTENT
plugin.tx_solr.index.queue.pages.fields.tiles_stringM {
  table = tt_content
  select {
    pidInList.field = uid
    selectFields = tx_extname_tile
  }
  renderObj = CONTENT
  renderObj {
    table = tx_extname_domain_model_tile
    select {
      pidInList.field = pid
      where = parentid = ###contentuid###
      markers {
        contentuid.field = uid
      }
    }
    renderObj = TEXT
    renderObj {
      field = title
      wrap = |,
    }
  }
}

Затем вам нужно будет добавить это поле в поля поиска или в фильтр, в зависимости от того, для чего вы хотите его использовать.

Другие вопросы по тегам