Index

Introduction to the index in ConSol CM

ConSol CM stores most of its data in a relational database. In order to improve the performance of search operations, Apache Lucene indexes are used. For each data field that should serve as search criterion, an index is created. The indexes are stored on the file system, in a subdirectory of the data directory.

Concepts, terms and definitions

Concept

Other terms

Definition

indexer

 

ConSol CM component for index management

quick search

 

Simple free-text search using a search field in the upper right corner of the Web Client

detailed search

 

Advanced search on a specific page which allows combining several search criteria

autocomplete search

 

Context-dependent free-text search integrated into specific pages

Purpose and usage

The index is required to be able to search for objects in ConSol CM. The scope of the index are the basic user and case data, the entire case text, the attachments (can be configured in the system property cmas-core-index-common, index.attachment) and the data fields which have the setting Indexed for search. The data fields configured for the index are available as search criteria in the detailed search, and they can trigger an autocomplete search on contact and resource pages. The quick search shows the objects which contain the search term in an indexed field.

In addition, fields need to be indexed for the following purposes:

Available settings for the index

The configuration of the index is done in a number of different places. The items described in the following sections need to be configured for the index to work correctly. In addition, you can fine-tune the indexer in the system properties, see Fine-tuning the indexer.

Data directory

The indexes are stored in the file system, in a subdirectory of the data directory indicated during system setup. The path of the data directory is stored in the system property cmas-core-shared, data.directory.

The following requirements need to be fulfilled for the index to work correctly:

Field settings

The data fields which should be available as search criteria need to be specified by setting Indexed for search for the respective field. This is done in the data field administration.

There are four possible values:

Including cases and persons for contact fields can have a negative impact on the indexer performance if the company or person has many cases or the company has many persons. This is due to the fact that all cases or persons have to be reindexed when there are changes to the field.

Nested fields, as used in lists or tables, all have to have the same indexing type, otherwise they cannot be searched. For example, when you work with a table, the data fields of the type List, Columns, and all data fields within the table which should be searchable, need to have the value True for the setting Indexed for search.

A phonetic search can be enabled for string fields. The phonetic search results do not include only exact matches but also results which sound similar even if the spelling differs from the entered search term, e.g. “Claire” and “Clare”. In order to activate the phonetic search for a data field, set Phonetic search to true for this field.

Update mode

There are two kinds of changes which require index updates:

Operative changes are always processed directly. For the processing of administrative changes, there are two modes:

Direct processing of administrative changes can have a negative impact on the indexer performance if there are changes which require reindexing lots of objects, e.g. if a data field used in all cases is added to the index.

See Technical background of the index for further details.

Basic tasks

There are two types of tasks related to the index:

Configuration-related tasks

You can perform the following configuration-related tasks on the index:

Operation-related tasks

You can perform the following operation-related tasks on the index:

You can rebuild the index using the MBean method recreateIndex for the respective type of objects:

Advanced tasks

Fine-tuning the indexer

The behavior of the indexer can be fine-tuned using system properties. The relevant properties are located in the module cmas-core-index-common. These properties allow to adjust parameters to improve the indexer performance, e.g. the number of threads, or whether attachments should be indexed or not.

Technical background of the index

Which changes require index updates?

There are two kind of changes relevant for the index:

Which is the performance impact of changes?

The performance impact of the index changes depends on the number of objects which need to be reindexed.

Change

Requires re-indexing of

Performance impact

Add or delete a system language

All cases, contacts and resources

Critical

Change internal or localized name of a queue

All cases residing in that queue

High

Add, remove or change value of the Indexed for search setting for a data field

All cases, contacts or resources which have this field set

High

Change internal name, localized name or order of a list value

All cases, contacts or resources which have the changed list value set

High

Add or remove the Rich text display in view mode setting to / from an indexed data field of the type Text (long)

All cases, contacts or resources which have this field set

Medium

Change internal name, localized name or order of a scope

All cases currently residing in the changed scope

Medium

Add or remove the Phone number setting of a contact field

All contacts which have the data field

Medium

Change phone numbers configuration of a customer group

All contacts of the customer group which have a phone number field

Medium

Change internal or localized name of a user function

All cases which have at least one participant in that function

Low

Change login, first name or last name of a user

All cases which the user is assigned to (as primary or referenced user)

Low

Change internal name or localized name of a resource type or resource category

All resources of that resource type / all resources which belong to the resource category

Low

How are index updates processed?

Two services are involved in index updates:

Do not stop the Index changes notifier service. If it is stopped and there is a change which requires an index update, the index status is set to RED and a rebuild is necessary. You can stop the Index changes receiver. After restart it will pick up all the missing changes from the respective table