2laurie.pngThis week I am honored to introduce our newest guest blogger, Laurie Chan-Lam. Laurie is one of our talented architects in Qlik R&D who has personally worked on one of Qlik's unique and game changing capabilities, Smart Search. She recently was inspired by Mitul's blog post on Controlling Fields Shown in Smart Search - when encountering some questions regarding the possibility to create the Smart Search Index, BEFORE the actual search was initiated. (If you are not familiar with Qlik's Global and Visual Smart Search capabilities - you can review a few videos on the topic here)

 

 

Mitul's blog Controlling Fields Shown in Smart Search explains how you can configure what fields are searchable when creating the Search Index. So to recap, in order for the Smart Search capabilities to present the desired information to the user when using Smart Search, Qlik Sense needs to index it. With previous versions of Qlik Sense, the search index was created when first requested, therefore taking an additional amount of time before the results were displayed. Starting with Qlik Sense 3.1, you can now chose to create the search index at reload time as explained in the documentation by using the system variable CreateSearchIndexOnReload.

 

Follow these steps to learn more how to achieve this:

 

 

How can I turn on/off the creation of the search index at reload time?

In order to turn on the creation of the search index at reload time, several criteria need to be met:

  1. The Engine needs to be enabled to support the creation of search index at reload time. This can be done via a setting in the QMC. (Qlik Management Console)
    1. Go to menu items Engines
    2. Edit the node you want to work on
    3. Tick the Advanced menu
    4.   Tick the "Enable creation of search index on reload" box

 

ww.png

 

Then in the app in the Data Load script:

 

The app needs to have the System Variable Set CreateSearchIndexOnReload=1; This statement exists by default in Qlik Sense. Note that the statement of Set CreateSearchIndexOnReload=0; will allow the user to delay the creation of the search index at search time.


xx.png

 

Why should I create the search index at reload time?

Creating the search index at reload time makes the search index ready from the first use. Therefore there is no need to wait for the index to be created. The first use of Smart Search after the initial  reload will be as fast as the following ones.

 

Some exceptions:


Session apps

By definition, session apps are not persisted. Therefore, the corresponding search index shouldn't be persisted and Qlik Sense doesn't index at reload time for session apps.

 

Synchronized persistence

If the reload node is not the node on which the user is searching, then the creation of the search index on the reload node needs to be disabled. If you do not disable this, an index is created when you reload, which consumes time and disk space to no advantage


Thank You for reading.


Laurie Chan-Lam

Qlik Architect