3.2. Full text Search

The basic configuration of OLAT Full text search is mostly done via build.properties. The following parameters have to be set:

  1. 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'

  2. 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'

  3. restart.window.end [0..24]: Define end-time of restart-window. Default = '24'.

  4. search.proxy.type (<empty>|searchClient|searchServer)

    Default:empty (since OLAT 6.0.3)

  5. 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

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:

The users work with /olat/dmz and the /olatfullindex/dmz is only open for administrators .

Configuration Steps

  1. Setup two instances of OLAT as usual:

    Verify setup

    • Check working /olat/dmz

    • Check working /olatfullindex/dmz

    • shutdown both instances

  2. install and run a JMS server, e.g. apaches ActiveMQ

  3. Change the build.properties of /olat/dmz as follows:

    • search.proxy.type=searchClient

    • search.worker=[empty]

  4. Change the build.properties of /olatfullindex/dmz as follows:

    • search.proxy.type=searchServer

    • search.worker=searchWorker

  5. 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".....

  6. 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

  7. 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:

  1. restartInterval [0...X]: Restart Indexing after xx ms (0=no restart) Default = '0'.

  2. restartDayOfWeek [0...7]: Restart only at this day 1=Sunday,2=Monday...7=Saturday (0=restart every day) Default = '0'.

  3. pptFileEnabled (true/false): Enabled/Disable indexing of power-point files. Default = 'true'.

  4. excelFileEnabled (true/false): Enabled/Disable indexing of excel files. Default = 'true'.

  5. maxResults [0...X]: Max number of search results. Default = '100'.

  6. maxHits [0...X]: Internal max number of search result hits. Default = '1000'

  7. fileBlackList Space separated list of file-names which will not be indexed. Default = 'imsmanifest.xml'

  8. 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'

  9. documentsPerInterval [0...X]: Number of documents which will be added to index before sleeping (see indexInterval). Default = '4'.

  10. numberIndexWriter [0...X]: Number of index-writer threads(0= no parallel working index-writers). Use this parameter for performance tuning. Default = '0'

  11. folderPoolSize [0...X]: Number of folder-indexer threads. Use this parameter for performance tuning. Default = '0'.

  12. pdfTextBuffering (true/false): Enable text-buffering of extracted PDF text. Use this parameter if you have many pdf files for performnace tuning. Default = 'false'.