Welcome to TYPO3 Search feature series! In this blog, You will explore 7 best TYPO3 search solutions with comparison and Step-by-step easy guide to TYPO3 Indexed Search and crawler features.
Search feature! One of the underestimated useful components to improve the experience of your website’s visitors. In my opinion, At Least for medium to large level TYPO3 websites should have search features.
40% Website Users Says "Search is more high priority than everything else."
- Search Engine Journal”
Note: In this article, You will find the TYPO3 v9 and v10 setup and configuration. For other TYPO3 versions, It might be slightly different. If you need any clarification for your particular TYPO3 version, Feel free to write to below comment box.
Why Search Features is Important For Your TYPO3 Website?
Consistent client experience, simple to-explore pages, and valuable copy are mandatory requirements for a modern TYPO3 website.
Well, as stated by Search Engine Journal, there's one important website component that is viewed as more imperative than the rest. And this element is the search box, and over 40% of users state that it's a higher priority than everything else.
- Let Users Find Things Faster
- Individuals Will Navigate Around and Stay On Your Site
- Clients are Used to a Search Function
- You Can Use Your Search Analytics to Your Advantage
- Mobile users are interested to explore
Which are Best TYPO3 Search Extensions Solutions?
Fortunately, TYPO3 CMS has a good search solution with the built-in core as well as third party extensions and solutions. You can also create your own custom search solution using TYPO3 Extensions.
There are many TYPO3 search extensions available to integrate search features into your TYPO3 website. Here are some of the best TYPO3 search solutions as below.
Extension Name | Solutions | TYPO3 version | Templates | Indexing | File Indexing | Facets |
Built-in TYPO3 Core | All | Yes (Marker and Fluid) | Scheduler, On-page render | Yes | No | |
Solr server | v9, v10 | Yes | Scheduler | Yes | Yes | |
TYPO3 extension | v9, v10 | Yes (Fluid) | Scheduler | Yes | Yes | |
Solr, Lucene or Elasticsearch server | v8, v9 | Yes | Scheduler | Yes | Yes | |
Elasticsearch, Algolia or Solr | v8 | Yes | Scheduler | Yes | Yes | |
google.com | v9, v10 | No | External | Yes | No |
Top 7 TYPO3 Search Extensions
Before we dig in-depth for the TYPO3 indexed_search integration, Let’s take a look at each TYPO3 search extensions.
#1 EXT:indexed_search from TYPO3 Core
Proudly, TYPO3 has built-in TYPO3 search called “indexed_search” since the start of the CMS.
For the small to medium level website TYPO3, You can use EXT:indexed_search. I’ll guide you with a step-by-step guide to install, configure, and use the TYPO3 Indexed Search feature in this article.
#2 EXT:solr TYPO3 Search from Apache
TYPO3 Solr, One of the most people loved the TYPO3 search solution for medium to large scale TYPO3 websites.
It’s on my list to write a separate blog with “TYPO3 Search Series Blog”.
Apache Solr for TYPO3 is the extensive search server that you must be searching for with exceptional functionalities, for example, Faceted Search or Synonym Support and amazingly quick reaction times of results inside milliseconds.
#3 EXT:ke_search
If you are looking for an alternative to EXT:indexed_search, Try Faceted key_search TYPO3 extension.
I’ll also write a separate dedicated blog for this TYPO3 extension. Faceted full-text look for TYPO3. Quick, adaptable, and simple to install and utilize. Records content are legitimately fetched from the databases. Has highlights such as faceting/separating, file indexing, images in result list. Plus it also respects access restrictions.
#4 EXT:mksearch
To be honest, I’ve never tried mksearch TYPO3 extension, but according to their documentation, it supports a wide-range of search engine frameworks. An exceptionally flexible and extendable search engine framework, utilizing Zend Lucene, Apache Solr or ElasticSearch. However, support for other web indexes can also be given without any problem.
#5 EXT:search_core
Not sure about search_core TYPO3 extension, Because it seems not maintaining and supporting the TYPO3 LTS versions.
Well, this extension will give an advantageous API to permit developers to give solid executions of backends like Elasticsearch, Algolia or Solr. Moreover the extension gives incorporation into TYPO3 like a frontend plugin for searches and hooks to update search lists on refreshes. Additionally, a command line interface is accommodated for re-ordering like connections.
#6 EXT:pr_googlecse
If you want a quick Google custom search, then you can try pr_googlecse TYPO3 extension. Google provides “Google CSE API”, so EXT:pr_googlecase uses the same and it’s quite easy to install and configure Google custom search engine, also you could customize search results using TYPO3 Fluid templates.
#7 More Search Extensions
Last but not in the list, Either keep watch to Explore more TYPO3 Search Extension from TER or Create your own TYPO3 extension and share with our lovely TYPO3 Community :)
Which TYPO3 search extensions suit your website?
If you are non-technical personal or never experienced with all TYPO3 search solutions, then You might want to know, Where are the differences and when to use which TYPO3 search extension at your TYPO3 website?
Here, I would like to figure out a basic matrix table to clarify it as follows.
Extension Name | Small TYPO3 Site ~ 500 pages | Medium TYPO3 Site ~ more than 500 pages | Large TYPO3 Site ~ more than 2000 pages |
indexed_search | Yes | Yes | No |
solr | No | Yes | Yes |
ke_search | Yes | Yes | No |
mksearch | No | Yes | Yes |
search_core | No | Yes | Yes |
pr_googlecse | Yes | No | No |
As mentioned, This article is focusing on TYPO3 Indexed Search.
Before Starting, Did you know?
“For EXT:indexed_search, It’s still uncertain how performance is under heavy load conditions and when MANY pages are indexed. Currently, benchmarks have been done only up to 2000 pages indexed/approx. 400.000 relation records. It is likely that some parts have to be optimized for such scenarios.
- Official TYPO3 Documentation.
How to Install TYPO3 Indexed Search?
EXT:indexed_search is already shipped within your TYPO3 core instance. You don’t need to manually download and install from TER.
For Composer Based TYPO3, Install TYPO3 Indexed Search
Yeah, If you have a Composer based TYPO3 instance, If you do not have EXT:index_search, then install composer TYPO3 Indexed Search.
composer require typo3/cms-indexed-search:^10.4
Activate/Deactivate TYPO3 Indexed Search Extension
But, You should make sure to enable or activate indexed_search as follows.
Step 1. Go to Admin Tools > Extensions
Step 2. Search “Indexed Search Engine” and Activate it.
Tip: When you install indexed_search through Composer, by default it’s activated. I highly recommend to re-activate to perform database SQL queries.
What are the Search Features of TYPO3 EXT:indexed_search?
Before we start configuration of Indexed Search, Let’s check out what are search features provided by EXT:indexed_search.
- HTML data priority, 1. <title>-data 2. <meta-keywords>, 3. <meta- description>, 4. <body>
- Ordering and indexing of external records: Text format like HTML and txt and doc, pdf by external projects (catdoc/pdftotext)
- Word counting and recurrence used to rate results
- Manage exact, partial and metaphone search
- Scanning freely for sentences (non-recorded).
- Independent from case sensitivity
How to Create & Configure TYPO3 Indexed Search?
Here is the step-by-step guide to TYPO3 Indexed Search to your TYPO3 website.
Step 1. Go to Web > Page and create a “Search” page into your page tree.
Step 2. Insert “Indexed Search” plugin to your Search-page.
Step 3. Go to Web > Template > Choose “root/main” page from Page-tree, Click on “Edit the whole template record”
Step 4. Go to Includes tab, and Add “Indexed Search (indexed_search”).
Step 5. Done! At Least you will able to see “Search Form” at your added search page like this;
How can I configure TYPO3 Indexed Search?
You might be said, I’ve configured above your mentioned things but, Why does my Indexed Search feature not work?
Aha, No worries! If you try to search and not find any results, Make sure you have enabled TYPO3 cache. Because, Your pages will be the only index and crawl, If you have enabled TYPO3 cache from backend. Here are the quick steps.
Enable TYPO3 Cache and Index_Enable
Step 1. Go to Web > Template > Choose “root/main page” from the Page-tree.
Step 2. Click on “Edit the whole template record”, Edit the “Setup” to add the following.
// Enable TYPO3 Cache
config.no_cache = 0
// Enable TYPO3 Indexing
config {
index_enable = 1
index_externals = 1
index_metatags = 1
}
// (Optional) Language settings
config.language = dk
Prepare Root Page for TYPO3 Indexed Search
Step 1. Go to Web > Page > Choose root/main page
Step 2. Edit Page Properties > Go to Behaviour Tab
Step 3. Enable both “Use as Root page” and “Include In Search”.
Done, Try to search!
(Optional) Define TYPO3 Indexed Search TYPO3SEARCH_begin and _end
Generally, People don’t want to crawl, index and search common content like Header and Footer of TYPO3 website.
To only search your Content, You should define TYPO3 Indexed Search markers.
// TypoScript Setup or You can manually put markers into Your Fluid Layout or Template
page.10 {
stdWrap.dataWrap = <!--TYPO3SEARCH_begin-->|<!--TYPO3SEARCH_end-->
}
Can I Change the TYPO3 Index Search Results Template?
Yes, You can! Just define your TYPO3 Indexed Search Fluid Templates path as below.
// TypoScript Setup
plugin.tx_indexedsearch.view {
templateRootPaths {
0 = EXT:indexed_search/Resources/Private/Templates/
10 = {$plugin.tx_indexedsearch.view.templateRootPath}
20 = EXT:yourextension/Resources/Private/Templates/
}
partialRootPaths {
0 = EXT:indexed_search/Resources/Private/Partials/
10 = {$plugin.tx_indexedsearch.view.partialRootPath}
20 = EXT:yourextension/Resources/Private/Partials/
}
}
Tip
If you want to change the search form or search result templates, Just grab the existing template from TYPO3 core. Copy and paste from /typo3/sysext/indexed_search/Resources/Private/ folder. You can also keep this practice (to get all Partials/Layouts/Templates from TYPO3 core) with get it from your installed TYPO3 version. One more thing, Keep only those files which you want to modified.
To change the Search form and Search result templates, You will need to change following three-files.
Form Partial
/typo3/sysext/indexed_search/Resources/Private/Partials/Form.html
Search Template
/typo3/sysext/indexed_search/Resources/Private/Templates/Search/Search.html
Search Results Partial
typo3/sysext/indexed_search/Resources/Private/Partials/Searchresult.html
Add Indexing Configuration
Step 1. Go to Web > List > Root Page
Step 2. Insert “Indexing Configuration” Record.
Fill-up all needed information to properly setup TYPO3 Indexing configuration.
Advanced Configuration for TYPO3 Indexed Search
For TYPO3 users, Indexed Search has many useful TypoScript configurations, Here are some of the useful settings as below.
// TypoScript Setup
plugin.tx_indexedsearch.settings {
// This configuration is used to wrap a single page title in a search result item breadcrumb.
breadcrumbWrap = / || /
// Explicitly display search hits although the visitor has no access to it.
displayForbiddenRecords = 1
// Display the numbers of search results.
displayResultNumber = 0
// Display the link to the advanced search page.
displayAdvancedSearchLink = 1
// List of amount of results to be displayed per page. Sending a different amount via GET or POST will result in the default value being used to prevent DOS attacks.
blind.numberOfResults = 10,25,50,100
// A list of integers which should be root-pages to search from. Thus you can search multiple branches of the page tree by setting this property to a list of page id numbers.
rootPidList =
// Restrict the file type list when searching for files.
mediaList = pdf
// Set the target page UID for the extbase variant of the plugin.
targetPid =
// Determines the length of the cropped title Defaults to 50
results.titleCropAfter = 50
// Determines the length of the cropped summary Defaults to 180
results.summaryCropAfter = 180
// Determines the length of cropped links in the summary Defaults to 60
results.hrefInSummaryCropAfter = 60
// Excludes doktypes in path. Defaults to “”, Example: pathExcludeDoktypes = 254 Exclude sys_folder (doktype: 254) in path for result.
results.pathExcludeDoktypes =
}
How the TYPO3 Index Search Works?
You need to understand the two main terminologies to know how TYPO3 Indexed Search engines work.
#1 What’s Indexing?
Well indexing engine stands for the lists TYPO3 pages on-the-fly as they are rendered by TYPO3's frontend. Indexing a page implies that all words from the page (or explicitly characterized zones on the page) are submitted, tallied, it's density, lastly embedded into a database table of words.
#2 What’s Searching?
An extension that you can embed on your site which permits website visitors to look for data that is on your site. When you perform a search the extension first looks in the word-table if the word exists and on the off chance that it does all pages which have a connection to that word will be considered for the query to display the results. The resulting items are requested depending on factors like the location of the page where the word was found or the recurrence of the word on the page.
Workflow of TYPO3 Indexed Search
- Indexing will happen, Once you load first-time any particular page on your TYPO3 website. (Or using crawler kind of extension to crawl the whole site overnight).
- Based on indexing, the Search plugin will try to get Searching.
How to know Monitor Indexing and Searching From TYPO3 Backend?
TYPO3 is awesome, In Backend, you can get a complete report of indexing and search like what are the most searched words, which pages are indexed, database records etc.,
In TYPO3 v10: Web > Indexing, For TYPO3 v9 and below, You will need to refer to other modules like Web > Info module.
Dashboard of Indexed Search
Choose the “General Statistics” menu, You can get an overview dashboard report of Indexed Search like Row count by database table, Hash Header Types, List of most searched words etc.,
Overview Report of Pages Indexed Search
Choose “List: Pages” menu, You can get an overview of each page like Page title, File-size, Word count, When modified and indexed, etc.,
Detailed Report of Page-wise Indexed Search
Choose “Detailed Statistics” to see an overview report with word counts.
Words and Content Report of Each-Pages
Choose “Detailed Statistics > Words and content” to the full report of indexed content and word.
How can I re-index TYPO3 Indexed Page(s)?
Very easy, Click on “Delete Icon”, It will delete indexing of particular page(s). Now at frontend, whenever such a deleted page will be accessed, It will automatically re-index.
Is there any way to Disable TYPO3 Indexed for Particular Pages?
Yes, of course! For example, you want to disable crawl for your Protected pages or unwanted pages, then you can do it in multiple ways. Eg., You should disable indexing for the “Search Result” page.
Single Page: Disable TYPO3 Indexed Search
Just Edit page properties of a particular page, Disable “Include in Search” toggle from Behaviour tab.
Multiple Page: Disable TYPO3 Indexed Search
The simple idea is to disable index_enable = 0 for a particular main and their sub-pages. You can create “an Extension template” from Web > Template.
// TypoScript Setup / Disable TYPO3 Indexed Search
page.config.index_enable = 1
Are any TYPO3 Extensions for Indexed Search TYPO3 Frontend Plugin?
You can integrate the TYPO3 Indexed Search plugin in the following three popular ways.
#1 Using Native Plugin of EXT:indexed_search
As I already described above, You can simply use Indexed Search default/native TYPO3 plugin to insert simple and advanced search features.
#2 Using EXT:macina_searchbox
Franz Holzinger & Wolfgang Becker developed and maintained this extension since 2003, And downloaded ~50k+ times.
This Extension offers the likelihood to add a searchbox to your TYPO3 based website which presents the searchvalue incentive to the Indexed Search Engine plugin with no outcome list yield. The extension has a Fluid template which is very easy to configure and modify.
#3 Using EXT:indexed_search_autocomplete
Sebastian Schmal developed a cool and simple autocomplete search feature for EXT:indexed_search.
Broadens the TYPO3 Core Extension indexed_search searchform with an autocomplete functionality.
Site Crawler: Automize Your TYPO3 Indexed Search
EXT:crawler, It’s highly recommended to install and configure one of the most popular with ~60K+ Downloads. You know what, the extension developed and maintained by many great people from Kasper to the latest version maintained by Tomas from AOE GmbH.
Basically, It’s helping to automatically index/re-index your whole site to save your lot of time.
Here, Let me try to give you an overview installation, configuration and usage of EXT:crawler. Take a first look at TYPO3 backend page tree crawling by this extension.
Step-by-step Guide to Install and Configure EXT:crawler, below tutorial example has been taken from Crawler extension’s documentation.
Step 1. Install TYPO3 EXT:crawler
Download From TER or Install through Composer `composer req aoepeople/crawler`
Step 2. Configure crawler extension
Admin Tools > Settings > Extension Configuration
Step 3. Create Crawler Configuration Record
Web > List > Root > Insert Crawler Configuration
Step 4. Create “_cli_crawler” backend user
SYSTEM > Backend Users > Create Backend User with username “_cli_crawler”. IMPORTANT: This user should neither Administrator nor Assign any backend user group.
Step 5. Execute the Crawler Queue for Indexed Search
There are multiple ways to execute a crawler queue as below.
Option #1 Using TYPO3 Backend
Web > Info > Root page > Site Crawler > Choose Crawling Processes
Option #2 Using Command Line (CLI)
// Create queue
$ vendor/bin/typo3 crawler:buildQueue <page-id> <configurationKey1,configurationKey2,...> [--depth <depth>] [--number <number>] [--mode <exec|queue|url>]
// Run queue
$ vendor/bin/typo3 crawler:processQueue [--amount <pages to crawl>] [--sleeptime <milliseconds>] [--sleepafter <seconds>]
// Flush queue
# replace vendor/bin/typo3 with your own cli runner
$ vendor/bin/typo3 crawler:flushQueue <pending|finished|all> [--page <id of top page>]
Option #3 Using Cron-job
* * * * * [pathToYourTYPO3Installation-composer-bin-dir]/typo3cms crawler:buildQueue <startpage> <configurationKeys> > /dev/null
Step 6. Add TYPO3 Scheduler
To automaize your crawler extension, You should integrate the Crawler extension into TYPO3 Scheduler. Here are the quick steps.
- Go to System > Scheduler > Add a new Scheduler Task
- Choose the Execute console commands
- Go to section Schedulable Command. Save and reopen to define command arguments at the bottom.
- Select e.g. Crawler:buildQueue (press save)
- Configure all available Crawler Options
Step 7. Crawl TYPO3 Custom Extension
Above mentioned configuration will perfectly work for TYPO3 pages. But, what about your TYPO3 Extensions How to crawl them? There is little more configuration, Let’s take an example of famous EXT:news to crawl TYPO3 Indexed Search.
Let’s assume you’ve configured News as below.
System Sysfolder [uid #19] is our tt_news storage folder
News Detail Page [uid #35] contains a tt_news plugin for SINGLE view
Step 1. Go Web > List > Click on News detail Page
Step 2. Create new “Crawler Configuration”
Step 3. Configure record as below.
The _TABLE field in design characterizes the query table (tt_new here). Also, _PID characterizes the news storage id (#19 here).
While making crawler configurations "Affix cHash" else you will wind up having N times the principal news being indexed due to TYPO3 caching mechanism
Tips & Tricks for TYPO3 Indexed Search Tutorials
Here are the some TYPO3 tutorials to keep improve your TYPO3 Indexed Search
Can I add TYPO3 route Enhancers for IndexedSearch TYPO3 Plugin?
Yes, You can little improve TYPO3 static route URL for TYPO3 Indexed Search Plugin as below.
// sites/yoursite/config.yaml
routeEnhancers:
IndexedSearchPlugin:
type: Extbase
extension: IndexedSearch
plugin: Pi2
routes:
-
routePath: /req
_controller: 'Search::search'
_arguments:
page: '@widget_0/currentPage'
defaultController: 'Search::search'
Do you want to Search External Document in EXT:indexed_search?
Now if you wish to index external documents that are referenced on your Web pages along with the standard content components, you should ensure you have appropriately installed a some of the external binaries:
- catdoc for Microsoft Word documents (Will not support docx files)
- xlhtml for Microsoft Excel spreadsheets (Will not support xlsx files)
- ppthtml for Microsoft Powerpoint presentations (Will not support pptx files)
- pdftotext and pdfinfo for PDF files
- unzip for OpenOffice documents
- unrtf for RTF
Let’s make sure to configure the Indexed Search to crawl External documents.
Step 1. Go to Admin Tools > Settings
Step 2. Click “Configure Extension” into Extensions Configurations
Step 3. Search for “indedex_search”.
You should have a proper path of your server “/usr/bin/” where your server-level applications (contact your Server-administrator if the path is different) should be installed and configured properly for all Path to PDF parsers, PDF parsing mode, Path to unzip, Path to WORD parser, Path to EXCEL parser, Path to POWERPOINT parser, Path to RTF parser.
How can I change results per page?
By default, 10 search results are displayed per page. The number can be adjusted with this TypoScript entry in the setup:
// TypoScript Setup
plugin.tx_indexedsearch._DEFAULT_PI_VARS.results = 5
How to Optimize Performance of TYPO3 EXT:indexed_search?
If your larger TYPO3 projects (from approx. 500-1000 pages) the search speed of indexed_search increases significantly. It can take 30-60 seconds to get a search result.
Then search is configured for a full-word search. If necessary, the visitor can still switch to a partial word search using the "advanced search" option. With this simple setting, the search speed can be increased by a factor of 10-30.
// TypoScript Setup
plugin.tx_indexedsearch._DEFAULT_PI_VARS.type = 0
How to prevent duplicate pages in search results?
To prevent the duplicate search result, we can use this configuration settings.
// TypoScript Setup
plugin.tx_indexedsearch.settings.exactCount = 1
How can I allow only specific file extensions for indexing?
We can allow the particular file extensions only to index like (jpg,png,gif).
Can TYPO3 editors get access permission to the TYPO3 Indexing module?
By default, TYPO3 core only allows “Web > Indexing” backend module to administrator. So, whenever you add a backend user or user group, You will not be able to see “Indexing” in the access module list (see below screenshot). In any case, If you want to enable it then you can easily do with the below configuration from your custom TYPO3 extension.
// ext_tables.php
$GLOBALS['TBE_MODULES']['_configuration']['web_IndexedSearchIsearch']['access'] = 'group,user';
Is there any way to Disable Indexing from visiting the Frontend website?
Yes, You can disable it. By default pages are indexed during viewing of pages in the frontend. You can disable this feature so indexing of pages is only initiated through the backend page crawler.
Tip
Here, I’m writing steps for TYPO3 v10 to extension configuration of EXT:indexed_search. For other TYPO3 v9, v8, v7 etc., You can find this configuration from “Extensions Manager > Settings icon of indexed_search”.
Step 1. Go to Admin Tools > Settings
Step 2. Click “Configure Extension” into Extensions Configurations
Step 3. Search for “indedex_search”. Simply uncheck “Disable Indexing in Frontend” checkbox.
Summing-up!
Thanks for reading such a long TYPO3 article.
I’m doing my best to write a step-by-step detailed guide TYPO3 article which will help from TYPO3 Beginners to Advanced users.
I’ll write down the next TYPO3 Search Series with lots of modern and interesting search techniques like Solr, Ke_search, etc. You can subscribe to our blog to stay up-to-date.
Let’s quickly recap the TYPO3 search series as below.
- 1st, You should decide and finalize, Do you need a search feature into your TYPO3 website? IMHO, Medium to large level TYPO3 site must-have search feature.
- 2nd, Choose the best way to implement a TYPO3 search, as there are ~6 ways to integrate search. Compare different factors like technologies, benefits, maintenance, etc.,
- 3rd, For your small to medium level TYPO3 website, You can go with TYPO3 core's Indexed Search extension. In this article, you will find AtoZ for the same.
What’s your favorite way to integrate the TYPO3 search engine? Do you have any issues or questions on TYPO3 Indexed Search? I’ll love to know in the comment box below.
Have a Happy TYPO3 Search :)
claim lawyers
Could you please tell me if we can at least accept the "#" as a search term as well in the index search.
can we also set the index search to return only exact matches?
Unfortunately I don't succeed in making the plugin visible in the frontend.
This error message appears instead:
Error: Please check that TypoScript for the Indexed Search plugin is included.
I've already thought in many directions, but currently I'm stuck. I am running out of ideas!
Maybe you have a tip for me? Somehow it seems to have to do with the template. Although I have integrated the static template of Indexed Search and created a new (second) search page after.
https://www.itfoo.de/web/typo3-indexed-search-error/
Kind regards
Juergen