The basic configuration of OLAT Full text search is mostly done via olat.local.properties.
The following parameters have to be set:
generate.index.at.startup (true/false): If set to
"true" then the search index will be generated at OLAT startup.
restart.window.start [0..24]: Define start-time of restart-window.
See also parameter 'restart.window.end'. E.g. 01:00-02:59 restartWindowStart=1 restartWindowEnd=3.
The hole day : 00:00-24:00 restartWindowStart=0 restartWindowEnd=24.
Default = '0'
restart.window.end [0..24]: Define end-time of restart-window.
Default = '24'.
search.service [enabled|disabled]
Default:enabled (since OLAT 6.0.3)
search.indexing.cronjob [enabled|disabled]: Enable triggering indexer via cron-job instead at startup
Default:disabled (since OLAT 7.0.0)
When enabled , configure 'generate.index.at.startup=false'
search.indexing.cronjob.expression cronjob syntax
Example '0 0 18 * * ?' start indexer at 18:00 ever day
OLAT 6.0.3 introduced the possibility to have a separate OLAT instance running for indexing and processing search queries. You may consider running two instances if on of the following is true:
Reasons for running a separate indexer instance
Your instance has thousands of courses, but the actual semester / course session needs only a fraction of them to be active.
Your instance has a lot of concurrent sessions and runs out of VM RAM.
If you decide to install the search / full indexer instance you need to install and run a JMS server, e.g. apaches ActiveMQ
The University Zurich runs two complete separate tomcat instances, but you may experiment with different setups. It is as easy as setting up two olat instances which then communicate over JMS, for example with the following setup:
/olat/dmz
for the LMS instance
/olatfullindex/dmz
for the fullindexer instance
The users work with /olat/dmz and the /olatfullindex/dmz is only open for administrators .
Configuration Steps
Setup two instances of OLAT as usual:
Verify setup
Check working /olat/dmz
Check working /olatfullindex/dmz
shutdown both instances
install and run a JMS server, e.g. apaches ActiveMQ
Change the olat.local.properties of /olat/dmz as follows:
search.service=disabled
Change the olat.local.properties of /olatfullindex/dmz as follows:
search.service=enabled
In the olat_extensions.xml of /olatfullindex/dmz you are advised to deactivate all olat sites of the <bean id="olatsites"... except the <bean id="olatsites_admin".
If you start now the /olat/dmz/ instance and have jms server running, your should receive a Search not available message if you enter something in the search box. This is as expected, because the other instance is not yet started. Just start the /olatfullindex/dmz instance, and if successfully started you should be able to search.
The advanced configuration of OLAT Fulltext Search is mostly done via olat_config.xml under section 'SearchService Module'. The following parameters can be set:
restartInterval
[0...X]: Restart Indexing after xx ms (0=no restart) Default = '0'.
restartDayOfWeek
[0...7]: Restart only at this day 1=Sunday,2=Monday...7=Saturday (0=restart every day) Default = '0'.
pptFileEnabled
(true/false): Enabled/Disable indexing of power-point files. Default = 'true'.
excelFileEnabled
(true/false): Enabled/Disable indexing of excel files. Default = 'true'.
maxResults
[0...X]: Max number of search results. Default = '100'.
maxHits
[0...X]: Internal max number of search result hits. Default = '1000'
fileBlackList
Space separated list of file-names which will not be indexed. Default = 'imsmanifest.xml'
indexInterval
[0...X]: Sleeping time of indexing thread between adding documents in ms (0=no delay). Use this parameter to reduce CPU load.
Default = '0'
documentsPerInterval
[0...X]: Number of documents which will be added to index before sleeping (see indexInterval). Default = '4'.
numberIndexWriter
[0...X]: Number of index-writer threads(0= no parallel working index-writers). Use this parameter for performance tuning. Default =
'0'
folderPoolSize
[0...X]: Number of folder-indexer threads. Use this parameter for performance tuning. Default = '0'.
pdfTextBuffering
(true/false): Enable text-buffering of extracted PDF text. Use this parameter if you have many pdf files for performnace tuning.
Default = 'false'.