The basic configuration of OLAT Full text search is mostly done via build.properties. The following parameters have to be set:
generate.index.at.startup
(true/false): If set to
"true" Search index will be generated at OLAT startup.
See also parameter 'restart.window.start' , 'restart.window.end' and 'restartDayOfWeek'
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.proxy.type
(<empty>|searchClient|searchServer)
Default:empty (since OLAT 6.0.3)
search.worker
(searchWorker|<empty>)
Default:searchWorker (since OLAT 6.0.3)
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 build.properties of /olat/dmz as follows:
search.proxy.type=searchClient
search.worker=[empty]
Change the build.properties of /olatfullindex/dmz as follows:
search.proxy.type=searchServer
search.worker=searchWorker
Change the org/olat/search/service/_spring/olatdefaultconfig.xml of /olatfullindex/dmz as follows:
Activate the following beans by removing the comments
<bean id="listenerContainer".....
<bean id="messageListener".....
<bean id="searchServer".....
In the olat_config.xml.in of /olatfullindex/dmz as follows:
module classname="org.olat.admin.AdminModule"
<maxNumberOfSessions>-1</maxNumberOfSessions> change to -1, this makes the instance available to Administrators only
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'.