Skip to main content
Michael_Tarallo
Employee
Employee

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

Tags (2)
4 Comments
juan_patrick
Creator
Creator

¡Excelente!

0 Likes
2,910 Views
shaun_lombard
Creator II
Creator II

Thanks for the article Laurie.

Can you provide some clarification regarding disabling the creation of the search index for multi-node sites running shared persistence? Should it only be enabled for the central node?

0 Likes
2,910 Views
ChristofSchwarz
Partner Ambassador
Partner Ambassador

I recall that there is also a script command to specify some fields which should not be full-text indexed for smart search, typically fields with facts like values. You tend to search on dimensions and this can improve load time quite significantly.

I just cannot remember the script command. Does anyone know?

0 Likes
2,910 Views
albertovarela
Partner - Specialist
Partner - Specialist

Search Include *fieldlist

Search Exclude *fieldlist

2,910 Views