This feature is available since midPoint 3.6.
MidPoint contains a simple full text search feature. Selected items can be indexed and then queries can be put against their content. More specifically,
- Any textual properties of midPoint objects can be designated as "full text search indexed" in system configuration. These can be either standard properties (e.g. user's given and family names) or extension properties.
- When updating these objects, midPoint extracts content of these properties, normalizes it, and stores in a separate
m_object_text_infotable. Normalization consists of applying default PolyString normalizer that removes diacritics marks and converts all characters to lowercase. Also, during normalization, duplicate words are eliminated, in order to optimize space and processing speed.
- The normalized indexed content is available for querying. A user can specify a word (or a part of it) and midPoint will look up all objects that contain that word (or its part) in the indexed content.
- Because conventional database mechanisms (standard indices) are used, this feature is applicable to small or medium sized installations; we estimate the threshold to be few thousands or tens of thousands records. (In the future we expect to apply specialized approaches to full-text search to provide wider applicability.)
- Because of the implementation chosen, it is not possible to search for a phrase. Since 3.6.1 if multiple words are entered, midPoint looks for objects that contain all of the specified words (possibly in different parts of the object). In "plain" 3.6, the result of multiple words searches is undefined and can be falsely negative.
Setting it up
By default, the full-text search feature is disabled. How to enable it:
Provide a list of items to be indexed. This is done in system configuration object, for example by including the following configuration:
- Re-index existing objects. This can be done by About -> Reindex repository objects action.
m_object_text_info table content will then look like this:
If the full text search feature is enabled in the system configuration, it can be used from the GUI.