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 is the entire ticket text, the attachments (can be configured in the system property cmas-core-index-common, index.attachment) and the data fields which are annotated with field-indexed. The data fields configured for the index are available as search criteria in the detailed search, and they can trigger an autocomplete search on customer and resource pages. The quick search shows the objects which contain the search term in an indexed field.

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:

Annotations

The data fields which should be available as search criteria need to be specified by assigning the annotation field-indexed to the respective field. This is done in the data field administration, see Ticket Fields (Setting Up the Ticket Data Model) for tickets, Customer Field Management and GUI Design for Customer Data for customer and CM/Resource Pool - Setting Up the Basic Resource Model for resources.

The field-indexed annotation can have four possible values:

Using the value transitive for customer fields can have a negative impact on the indexer performance if the company or contact has many tickets or the company has many contacts. This is due to the fact that all tickets or contacts have to be reindexed when there are changes to the annotated 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, struct, and all data fields within the table which should be searchable, need to have the value local for the annotation field-indexed.

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, assign the annotation phonetic with the value true to 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 tickets 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:

Advanced tasks

Fine-tuning the indexer

The behavior of the indexer can be fine-tuned using system properties, see 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. The most important indexer properties are described in Indexer and Search Configuration.

Technical background of the index

Which changes require index updates?

There are two kind of changes relevant for the index:

How are index updates processed?

Two services, see CM 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