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 = |,
}
}
}
Затем вам нужно будет добавить это поле в поля поиска или в фильтр, в зависимости от того, для чего вы хотите его использовать.