searchindex Command

This command controls Advanced Search processes, such as starting or monitoring an indexing process.

The file indexing queue is backed up by a persistent, file-based queue, which represents the pending jobs in the queue. This specifically affects the Start, Status, and Clear Searchindex commands. See the description of each command for details on how the file-based queue affects that command.

This page discusses:

User Level

System Administrator

Start Searchindex

You start an indexing process with the Start Searchindex command.

start searchindex mode FULL|PARTIAL [vault PATTERN] [limit N];
  • mode specifies whether a baseline (FULL) or incremental (PARTIAL) indexing process is to be performed. This clause is mandatory.
  • vault specifies the vaults to be indexed. The PATTERN argument allows you to specify a pattern of vault names, including a wildcard '*' character. For example, if there were two vaults named v1 and v2, instead of issuing the command twice, once for each vault, you could simply issue it once using vault v*. This clause is optional. For more information, see Status Searchindex.
  • limit specifies the maximum number (N) of objects to be indexed. This clause is optional.

Update Searchindex

You update a type in the index with a new attribute using the Update Searchindex command. The syntax for 3DSpace Index is as follows.

update searchindex [vault PATTERN] type TYPE{,TYPE}[ type TYPE{,TYPE}] [!|not][file];
  • vault specifies the vault(s) to be indexed. The PATTERN argument allows you to specify a pattern of vault names, including a wildcard '*' character. For example, if there were two vaults named v1 and v2, instead of issuing the command twice, once for each vault, you could simply issue it once using vault v*. This clause is optional. For more information, see Status Searchindex.
  • type specifies the object type to be updated.
  • For3DSpace Index, the command update searchindex type Part, for example, is the only option to update the index with that new field.

Status Searchindex

You can check the status of an indexing process with the status searchindex command. This command polls each FCS Server that it can reach to see whether there is a persistent queue and if so, reports details of that queue including its directory.

The status for the Searchindex commands had previously been stored in the vault property SearchIndexStats. It is stored in the index as a checkpoint. A checkpoint is much like a property in that it can store an arbitrary string, but it is also associated with the data that has been committed in the index, so it ties the vault status to what has been processed in the index.

status searchindex [vault PATTERN];
  • vault specifies the vault(s) to be indexed. The PATTERN argument allows you to specify a pattern of vault names, including a wildcard '*' character. For example, if there were two vaults named v1 and v2, instead of issuing the command twice, once for each vault, you could simply issue it once using vault v*. This clause is optional.

The output of this command includes the start time and duration of the indexing process, for example:

            MQL<4>status searchindex; 
test: Complete  last indexed: 08/23/2011 20:48:06
number of objects: 1    start: 9/9/2011 5:33:10 PM
duration: 7 seconds

Modify Searchindex

You can change the last_modified time stamp of an indexing process with the modify searchindex command. This command is useful, for example, if the last_modified date becomes corrupted or some other issue requires already indexed data to be re-indexed. The syntax of this command is as follows.

modify searchindex modified DATE [vault VAULT];
  • DATE specifies the last_modified timestamp of an incremental indexing operation. This clause is required. The format is MM/dd/yyyy HH:mm:ss. You will be informed with an error message if the format of the entered data is incorrect.
  • vault specifies the vaults)to be indexed. This clause is optional.

Clear Searchindex

You clear an index from the Advanced Search Server with the clear searchindex command. This command clears the persistent queue on each FCS Server that it can reach.

clear searchindex;

The following command clears only the status of the indexing process.

clear searchindex statsonly [vault PATTERN];
  • vault specifies the vault(s) to be indexed. The PATTERN argument allows you to specify a pattern of vault names, including a wildcard '*' character. For example, if there were two vaults named v1 and v2, instead of issuing the command twice, once for each vault, you could simply issue it once using vault v*. This clause is optional. For more information, see Status Searchindex.

Validate Searchindex

You can validate the search index with the validate searchindex command.

validate searchindex [vault PATTERN] [type|relationship] [interval START_TIME END_TIME];
  • vault PATTERN specifies the vault(s) to validate. The PATTERN argument allows you to specify a pattern of vault names, including a wildcard '*' character. For example, if there were two vaults named v1 and v2, instead of issuing the command twice, once for each vault, you could simply issue it once using vault v*. This clause is optional.
  • type|relationship specifies whether to validate business objects only or connections only.
    Note: You cannot use both arguments in the same command.
  • interval START_TIME END_TIME specifies a time interval so that only objects or connections modified in that interval can be validated. START_TIME and END_TIME must be in MX_NORMAL_DATETIME_FORMAT.

The validate searchindex command takes the 3DSpace Index High Availability configuration into account and produces separate validation reports for the primary and the secondary indexes.

This command generates a tcl script that can be used to repair the index. This tcl script contains the physicalids of all business objects and/or connections that are missing in the index. Once the script is launched, these business objects and/or connections are logged as custom events in the event monitor. The event monitor mechanism then triggers the incremental indexing of these custom events.

Important: This index repair mechanism does not support the incremental indexing made by the timestamp-based mechanism (as it disables the event monitor).

All logs and repair scripts are stored in the logs/sxi/validate/<tenantname>/validate_<timestamp>.zip. The generated logs are: validate_searchindex_counts*.log, validate_searchindex_objects*.log and validate_searchindex_repair*.log (which contains the oids of business objects or connections that need to repaired). Executing the validate searchindex command multiple times will therefore generate multiple zip files under logs/sxi/validate/<tenantname>. Each zip filename will have the timestamp at which it was generated. For High Availability cases, the zip will include the primary validate logs, the secondary validate logs, the primary index repair script, and the secondary index repair script.

The following system environment variables allow you to control the default behavior of the validate searchindex command. They must be added into the mxEnv.sh file (for Linux) or the enovia.ini file (for MS Windows).

Environment variable Description
MX_VALIDATE_MISSING_OBJECT_LIMIT Configure this variable to specify the maximum number of objects tolerated in the index for a specific type.

By default, the limit is 10000 objects for a specific type.

In the index, when the number of objects for a specific type is below the limit, the validate searchindex command validates the missing objects and logs their physicalid in the validate_searchindex_objects.log. This log file contains a list of all physical ids missing in the index and the database. If the number of objects exceeds the limit, the validate_searchindex_objects.log entries for this type will not be generated."

It however continues to give results in COUNT logs, that is, Count of Indexed BO Vs Count of BO in the database.

Note: The MX_VALIDATE_MISSING_OBJECT_LIMIT variable limit does not affect COUNT logs at all.
MX_VALIDATE_MAX_OBJECT_VALIDATIONS This variable is useful for large indexes. Configure it to specify the maximum number of indexed objects of a specific type and the indexed access lists that can be validated.

For example, if you specify the variable to MX_VALIDATE_MAX_OBJECT_VALIDATIONS=1000000, the validate searchindex command validates 1000000 objects of a specific type and 1000000 access lists. In more detail, it:

  1. Queries the index to retrieve a maximum of 1 million objects of a specific type from the index (which may have, for example, 2 million objects for that specific type.)
  2. Validates if these indexed objects (which may be a subset of all of the objects of this type in the index) are consistent against all objects of this type in the DB. If the number of objects for a type in the database is higher (for example, 5 million objects for that specific type), we cannot really fully validate this specific type as it depends on which indexed objects were retrieved. In such cases, it is recommended to increase this variable's limit to 5 million and validate all the indexed objects of this type.

Note:
  • If undefined, the default value for this environment variable is 1000000.
  • This variable does not have any impact on validate COUNT logs.
  • The MX_VALIDATE_MISSING_OBJECT_LIMIT variable value has an impact on this variable while reporting missing objects in the validate object logs.
  • MX_VALIDATE_FORCE_OBJECT_VALIDATIONS=true overrides this variable.
MX_VALIDATE_MAX_FILEINDEXING_VALIDATIONS

Configure this variable to set the maximum number of objects having missing files that can be validated.

By default, the validate searchindex command validates file indexing up to 5000 validations.

MX_VALIDATE_FORCE_OBJECT_VALIDATIONS This variable is set to false by default, which means that the validation is dependent on the limit set for the MX_VALIDATE_MISSING_OBJECT_LIMIT variable.

Setting this variable to true will force the validation of missing objects in the index, bypassing the limit set for the MX_VALIDATE_MISSING_OBJECT_LIMIT variable.

Print Searchindex

You can print the config.xml file currently stored in the database with the print system searchindex command.

print system searchindex;