When users search for an asset, Elvis uses an index to locate where the asset is stored. It is important therefore that the index is always up-to-date.
Available indexes and when to update them
Elvis contains multiple indexes but the only one that you will ever typically update is the 'asset' index.
Note: Updating the asset index is mainly necessary when:
|
Other available indexes include:
- config
- Enterprise-updates
- import
- processing
- relation
- security
- settings
- stats
- users
- various
- version
Whenever an index needs to be manually updated, this will be mentioned in a Help Center article.
Updating the index
Note: Updating an index might take a while, depending on the size of your index.
Updating the index is done by using the Index Revision Tool in the Management Console.

Step 1. Do one of the following:
- Access the following URL and log in using system administrator credentials:
<Elvis Server URL>/console
- Access the Elvis Pro client by accessing the following URL, log in using system administrator credentials, and choose Management Console from the Avatar menu.
<Elvis Server URL>/app
Step 2. Choose Tools > Index Revision Tool in the menu on the left side of the page.
When the indexing succeeds, the revision number will be incremented and your new configuration will have taken effect. If it fails, you will get an error message and no changes will have been made to the index.
Note: See the comments at the end of this article for more information.
Optimizing the indexing performance
The indexing performance of Elasticsearch can be optimized by disabling its merge throttling during the indexing process. This will speed up the process of indexing significantly. Throttling can be enabled again when the indexing is completed.
Notes:
|
Disabling throttling is done by setting the indices.store.throttle.type option to 'none':
curl -XPUT 'localhost:9200/_cluster/settings' -d '{ "transient" : { "indices.store.throttle.type": "none" }}'
The throttle setting will reset after a full restart of the cluster as it is transient. To avoid the need of a restart, it can be reset manually to the original value:
curl -XPUT 'localhost:9200/_cluster/settings' -d '{ "transient" : { "indices.store.throttle.type": "merge" }}'
Troubleshooting
Why is the config index always set to '1' after restarting the server?
At each server restart, the config index is regenerated and redistributed across all nodes and will therefore always be '1', even when initially incrementing it by updating the index.
Errors appear in the log files after updating the asset index
The following errors might appear in the log files:
ERROR com.ds.acm.ak - NEW CONFIGURATION IS INCORRECT: Compass settings of the field language were changed. It is incorrect to modify the field.
WARN com.ds.acm.warnings.Server - warning: Detected illegal changes in new asset info
com.ds.acm.al: New configuration is incorrect, see log for details. Please review asset info configuration.
These errors are generated by a safety feature that is in place during the Elvis service startup which compares the full-assetInfo.xml file (created during the last successful startup) with the new-assetInfo.xml file (constructed from the (internal)default-assetinfo file and the possible (custom) configured custom-assetinfo file).
If the compare results in a difference, the above errors are thrown in the Elvis Server log with a description where this difference is found.
This safety feature is in place to protect the system from starting with an incorrect assetinfo file.
A common scenario for this situation to occur is when changes have been made to the configuration of the assetInfo in the custom-assetinfo.xml file. It may also occur after upgrading Elvis to a newer version with an updated default assetinfo.
It is important to be aware if recent changes have been made to your custom-assetInfo.xml:
- Yes, I just updated the configuration of the custom-assetInfo file which resulted in this log message. Please read the log message carefully; it might describe where a possible configuration error occurred.
- No, I just upgraded my Elvis Server version (with a new/changed default assetinfo file) which resulted in this log message.
Solution 1
Update the asset index once more.
Solution 2
Do the following:
Step 1. Stop your Elvis Cluster nodes.
Step 2. On each node, access the Elvis Server/Elvis Hot Data/elvis-data/assetInfo/ folder and remove the following files:
- full_assetinfo.xml
- new_assetinfo.xml
Note: Make sure you do this on every node (including the nodes that act as the Processing Server and job runner).
Step 3. Start the Elvis Cluster.
New files will be created and the errors should not appear anymore.
Document history
- 4 February 2021: Added section 'Optimizing the indexing performance´.
Comment
Do you have corrections or additional information about this article? Leave a comment! Do you have a question about what is described in this article? Please contact Support.
1 comment
Note about scheduling an Index Update (see also the Feedback Forum):
Question: We are trying to update our index by re-embedding all metadata. We updated a few custom fields we have to now be embedded so we need to re-run the index updater. Since we don't want to run it during business hours but want it to run full speed at night, is there a way to schedule the indexer to start and stop at a given time?
Answer: It is currently not possible to schedule an index update run in the Management Console/Asset Processing Tool.
By configuring the Asset Processing Tool with a low number of threads (for example just 1 or 2 threads) and some milliseconds pause (for example 200 milliseconds) you can have the index update run as a background process while hardly affecting the overall performance of the system.
You could simply try this with these example settings and start the update. Just let it run for a few minutes and monitor the processing queue while it is running to see if the processing queue stays low.
You can stop the update process in the running processes section and try a different number of threads and milliseconds pause if needed and try again. Less threads means more is available for other uses. More milliseconds pause means more resources stay available for other processes.
Tip: don't use the "run exclusive" checkbox, for it will make the update index run exclusive and block other processes as long as it is running.
Please sign in to leave a comment.