Pages¶
The page indexer indexes standard TYPO3 pages.
All content elements on a page will be grouped and written to the index in one index entry. That means if your search word appears in two different text elements on a page, you will get only one search result for the page these two elements belong to.
Configuration¶
Set the type of the indexer configuration to
Pages
.Set a title (only for internal use).
Set the field Storage to the folder where you want to store your search data.
Set Startingpoints (recursive) to the pages you want to index recursively.
Set Single Pages to the pages you want to index non-recursively.
Content Types¶
By default the page indexer indexes content element of the following types which are delivered by the TYPO3 core:
Text (CType
text
)Text with image / Media element (CTypes
textmedia
andtextpic
)Bullet list (CType
bullets
)Table (CType
table
)Plain HTML (CType
html
)Header (CType
header
)File lists (CType
uploads
)Referenced content elements (CType
shortcut
)
Additionally it indexes content elements provided by the EXT:bootstrap_package:
Accordion (CType
accordion
)Tab (CType
tab
)Carousel (CTypes
carousel
,carousel_fullscreen
,carousel_small
)Icon Group (CType
icon_group
)Card Group (CType
card_group
)Timeline (CType
timeline
)
File indexing¶
Files linked in RTE text fields will be detected and indexed. Also files linked
in fields of type "link" (e.g. header_link
) will be detected.
Abstract¶
In the page properties there's the field Abstract for search result in the tab Search. Here you can enter a short description of the page, this text will be used as an abstract in the search result list. If this field is empty, it falls back to the field Description in the Metadata tab of the page properties. In the FlexForm of the search plugin you can define the "Text for used for search result (preview text)" and set it to "Always show the abstract if set" or "Show abstract if it contains searchword, otherwise show an excerpt from the content".
Advanced options¶
If you set Index content elements with restrictions to
yes
, content elements will be indexed even if they have frontend user group access restrictions. This function may be used to "tease" certain content elements in your search and then tell the user that he will have to log in to see the full content once he clicks on the search result.If you created custom page types which you want to index, you can add them in Page types which should be indexed set the page types you want to index.
in Content element types which should be indexed you can add your own content element types. For example those created with EXT:mask or from EXT:bootstrap_package. If you are not sure what to enter here, have a look a the table
tt_content
in the columnCType
.(since version 5.3.0) In Additional tables for content elements you can define tables which hold additional content. That is used for example by EXT:bootstrap_package or EXT:mask. See below ("Index content from additional tables") for details.
In tt_content fields which should be indexed you can define custom fields which should be indexed. Default is here "bodytext,subheader, header_link" which is used for the default content elements. This is useful if you added your custom content elements for example using EXT:mask.
Using the field Comma separated list of allowed file extensions you can set the allowed file extension of files to index. By default this is set to
pdf,ppt,doc,xls,docx,xlsx,pptx
. For pdf, ppt, doc and xls files you need to install external tools on the server.Using the field tt_content fields which should be indexed for file references you can add fields from
tt_content
which hold file references and for which the attached files should be indexed.You can choose to add a tag to all index entries created by this indexer.
You can choose to add that tag also to files indexed by this indexer.
Index content from additional tables (eg. EXT:mask, EXT:bootstrap_package)¶
Some extension like the widely used mask
and bootstrap_package
extensions
store content not in the tt_content table but in additional tables which
hold a reference to the record in tt_content.
Since version 5.3.0 it is possible to index those tables without the need
for a 3rd party extension or custom indexer. In the field
Additional tables for content elements you can configure those
tables. The ini
configuration format is used here.
Since version 5.6.0 / 6.1.0 it is possible to index sub-elements of additional tables. If you have repeating elements in a mask element which themselves have repeating elements you can define the parent table for the sub-elements here. Indexing will be done recursively.
You need to define the table name, the field which holds the reference to the tt_content table and the fields which should be indexed.
Options¶
- first line (eg.
[custom_element]
) The content type, stored as
CType
in the tablett_content
. You will also have to add this to Content element types which should be indexed. If your content element has multiple additional tables, you can have multiple configurations for the same CType by adding a dot and an index, e.g. "my_ctype.1", "my_ctype.2" which then will all internally be mapped to the configuration for "my_ctype".- table
This is the table that holds the content.
- referenceFieldName
This is the field that holds the relation to the tt_content record (the UID of the record). In EXT:bootstrap_package it is named
tt_content
, in EXT:mask it is namedparentid
.- parentTable
(since version 5.6.0 / 6.1.0) The parent table is an optional setting. It's only necessary if you want to index sub-elements of EXT:mask. For example If you have repeating elements in a mask element which themselves have repeating elements. You can define the parent table for the sub-elements here (see example below). Indexing will be done recursively. If set the database query will contain a "WHERE parenttable = ..." condition. This column exists in content elements from EXT:mask but not in content elements from EXT:bootstrap_package.
- fields[]
A list of database fields which should be indexed. If the field is configured as type "file" in the TCA the indexer will check if it links to a file and index that file. Otherwise the field will be treated as a text field and will be indexed like other fields, e.g. the
bodytext
field in content elements. Links to files will also be resolved here and the files will be indexed.
Examples¶
Add this to Additional tables for content elements to
index the bootstrap package element "accordion" (remember to also add
accordion
to Content element types which should be indexed:
[accordion]
table = tx_bootstrappackage_accordion_item
referenceFieldName = tt_content
fields[] = header
fields[] = bodytext
Add this to Additional tables for content elements to
index mask elements (remember to also add
mask_list
and mask_mytest
to Content element types which should be indexed:
[mask_list]
table = tx_mask_content
referenceFieldName = parentid
fields[] = tx_mask_content_item
This is an example how to add multiple additional tables for the same CType.
[mask_mytest]
table = tx_mask_repeating1
referenceFieldName = parentid
fields[] = tx_mask_name
[mask_mytest.1]
table = tx_mask_repeating2
referenceFieldName = parentid
fields[] = tx_mask_title
This is an example how to index sub-elements of additional tables (note the parentTable
configuration line).
[mask_mytest]
table = tx_mask_repeating1
referenceFieldName = parentid
fields[] = tx_mask_name
[mask_mytest.1]
table = tx_mask_repeating2
parentTable = tx_mask_repeating1
referenceFieldName = parentid
fields[] = tx_mask_title
This is an example for a some mask elements:
The element
mask_custom_text_element
adds a fieldtx_mask_customtext
to thett_content
table.The element
mask_custom_file_download
adds a file download fieldtx_mask_file
to thett_content
table.The element
mask_list
stores content in the tabletx_mask_content
.