Use > Functionalities > Search and Search Engine > Configure the Enhanced Search Engine

Configure the Enhanced Search Engine

The Enhanced CI search engine translates free text queries to TQL queries, with much better performance and accuracy than the legacy search engine and flexible searching language. The syntax of the search queries is based on the class model.

Note The Enhanced CI search engine does not support any of the class model configurations used by the legacy search engine.

The search engine can be configured in the following three areas:

  • Indexing. Configure what is indexed, which CI types are "searchable", which attributes are "searchable", and what are types of the attributes. This configuration is performed with the Search_Indexer_Configuration_XML and Search_Ranking_Configuration_XML files.

    This configuration file includes a list of class types that are indexed and a list of attributes for each one of the class types. This configuration influences the manner in which the search by property condition is performed.

  • Parsing. Configure class model synonyms. Synonyms translate the user input string query into a graph structure, TQL. This configuration is performed with the Search_Parser_Configuration_XML file.

    This configuration file includes a set of class synonyms, attribute synonyms, date synonyms, relation synonyms, and a set of redundant words.

    Note The list of redundant words must contain only single words, with no spaces (no phrases are permitted).

  • Ranking. Configure which CI types are presented and the order of presentation. Prioritization is according to class model. This configuration is performed with the Search_Ranking_Configuration_XML file.

    This configuration file contains a list of attributes that are associated with five data fields, called data0, data1, data2, data3, and data4. These fields are prioritized, where data4 has the highest priority and data0 has the lowest priority.

    This configuration influences the order of CIs in the search results.

The UCMDB Browser can be used out-of-the-box without initial configuration of the search engine. However, if an attribute is not in the Indexer or Ranking lists, it does not appear in the search results.

Modify the currently indexed list

Enable/Disable the Enhanced Search Engine

  1. Go to JMX Console > UCMDB:service=Topology Search Services.
  2. Choose one or more of the following operations:

    • editIndexerConfiguration – displays and enables editing of the Search_Indexer_Configuration_XML file.

    • editParserConfiguration – displays and enables editing of the Search_Parser_Configuration_XML file.

    • editRankingConfiguration – displays and enables editing of the Search_Ranking_Configuration_XML file.

  3. For each operation, enter the relevant customer ID and click Invoke.

For the enhanced search engine to work, it must be enabled in UCMDB. By default, it is enabled (unless it was disabled during UCMDB installation).

Enable/Disable Searching for Federated Data

The enhanced search engine can be configured to perform searches on federated data. By default, it is disabled. To enable searching for federated data, you must set the "federated search enable" flag to True in the JMX Console and in the UCMDB Infrastructure Settings Manager.

Specific Configuration Options

Troubleshooting - Configure the Enhanced Search Engine

UCMDB doesn’t start because of the search subsystem manager. What do I do?

Stop UCMDB, delete the folder <UCMDB installation folder>/search, then restart UCMDB.

If the search still does not start, disable it, as explained in Enable/Disable the Enhanced Search Engine and revert to the legacy search engine.

The search doesn’t return any results.

In the Topology Search JMX, invoke the following methods:

  • restoreFactoryDefaults: This restores factory configuration for the search.

  • reindex: This recreates a search index for CIs in the UCMDB model. Note, this can take up to several hours for large databases (approx 1M CIs/hour).

    You can also invoke the reindexCiType method to re-index all the CIs of a given CI type from the CMDB model database.

The search doesn't find CI types that I want.

There are several different possible causes for this. Check the following:

  • Check that the attribute and CI type are indexable according to the indexing configuration. If they are not, add the class attributes configuration item as explained Modify the currently indexed list.
  • Check that you have correct synonyms defined for the class in Class synonyms.
  • Check that rating and pageItemCount for this CI are non-zero. Check for rating in the Attribute ranking and for pageItemCount in Presentable CI types.

The search presents too many unwanted results.

  • Check if you are you using queries with natural language. This can limit results of the "best guess" of what the user intended.
  • If you need to be 100% certain that your query returns results only of one specific CI type, use type: ci-type filter in the query.
  • If the two suggestions above don't help, contact the R&D team with your use case and status report from JMX.

Problem with configuration - restore factory defaults

To restore the default configuration XML files from the factory content, go to JMX Console > UCMDB:service=Topology Search Services and invoke the restoreFactoryDefaults() method.

Caution This method overwrites the current configuration. You should back up the configuration files before invoking it.

Logs and debugging info

Logs

search.log logs everything related to searches. Default log level is INFO, only statistics are printed. The log level and number of logs are configured with the search.loglevel variable in conf/log/cmdb.properties.

Status Report

The topology search JMX status report displays all current configuration tables and statistics for the search engine component. It is useful to include it when reporting issues to R&D.

Content of Solr Database

By default, the Solr search engine is embedded inside UCMDB server. To query it directly, go to JMX Console > UCMDB:service=Topology Search Services and invoke the debugSolrQuery() method.

Example queries:

  • empty query returns all CIs

  • "id:a6693cd46cfd1b4fab0c3551bac9289e" returns a CI with cmdbId a6693cd46cfd1b4fab0c3551bac9289e. This uses Solr/Lucene syntax.