Skip to main content
Skip table of contents

Cognitive Toolkit 2.10.0 (June 2023)

Information on feature enhancements and fixed issues that are part of the Cognitive Toolkit 2.10.0 (June 2023) release.


CrawlExchange - add path to the index to create better visualizations

The paths of Exchange email messages and attachments are now added as fields in the index to improve classification and help create better visualizations.

CrawlExchange - exclude certain folders to have better search results

To improve Discovery Search results, an option has been added to the CrawlExchange operation to filter drafts, deleted items, and junk email.

To exclude any or all 3 of these categories from Discovery Search results, use the option --ignore-folders when running the CrawlExchange operation. To learn more, see CrawlExchange.

CrawlExchange - normalize Exchange ID to standard

To improve integration with Shinydocs Search, Exchange Identifier (ID) has been normalized for both emails and attachments, making the ID easier to read and more URL-safe. The Exchange ID is stored in the index as exchangeId.

Note: For customers who crawled Exchange using an earlier version of Cognitive Toolkit, before the ID was normalized in this release (2.10), a run script is available to normalize the IDs before upgrading to 2.10. This run script will also change the field name body to fulltext. For more information, contact Shinydocs Support.

Increase the ignore_above property in our mapping for all path and parent fields in the index

The ignore_above property needs to be specifically set when putting mappings on the index. We've increased the ignore_above property to ensure that we can support customers who want to query for path/parent information with long file paths, for example during classification, when identifying behaviour, or slicing data.

This change will only be observed on newly created indices. On existing indices, use the workaround: Enable keyword queries for long paths (above 256 characters).

File Share >File Share Migration

File share to file share migration is now possible using the Migrate operation:

  • Items are copied with all the metadata and the index (for example, date, time, user, destination path)

  • Structure/taxonomy of the files is maintained

  • Permissions and ownership are not carried over

  • Created and modified dates are maintained during the migration

Note: For files that are migrated into a folder with existing files that are the same, the Migrate operation respects the --disable-over-write true flag and uses --location-field and --name-field-name configuration settings.

AddPathValidation - keep Exchange Web Services index up-to-date / add path-valid to the message

To keep Exchange search results in Discovery Search up-to-date, a path validation feature is added to indicate, in search results, when a message was deleted and moved.

For example:

  • If the message was permanently deleted, it is marked “path-valid : false”

  • If the message is moved to a deleted folder, it is marked “path-valid : false”

Note: If an Exchange item is moved to a different folder within Exchange, its ID is changed and another CrawlExchange operation must be performed to capture the item in the index again.

For example:

  • An item in folder A was removed from folder A. The index is up-to-date.

  • An item in folder A was moved to folder B. The path validation removes it from the index since the item is no longer in folder A. However, a new crawl must be performed to have a complete picture and identify that the item was added to folder B, since it has a new ID.

Integrate search library into Cognitive

To make the transition to OpenSearch as easy as possible, a parameter is added in the Cognitive Toolkit configuration file to set either Elasticsearch or OpenSearch. For more information, see Shinydocs is Migrating to OpenSearch.

The new keys in the configuration file are:

<!-- <add key="UseSearchLibrary" value="true" /> -->

<!-- <add key="SearchLibraryType" value="elastic" /> elastic or open-->

Fixed Issues

AddPathValidation - keep the Exchange Web Services index up-to-date / adding path-valid to the message

Previously, if an Exchange message was deleted or moved, its ID would change and the data would not be captured until a re-crawl was performed. This caused the Exchange Web Services index to be out-of-date, resulting in inaccurate in Discovery Search results.

We’ve implemented path validation with this release; however, if an Exchange item is moved to a different folder within Exchange, its id is changed and we cannot capture it until a recrawl has been done. See AddPathValidation for more information.

We’re investigating if we can optimize recrawling, so we can narrow down the “full” crawl to folder level and get the new id of this moved message.

AddHashAndExtractedText: new field not created when mailbox is deleted

Previously, when performing AddHashAndExtractedText on an index that included items from a deleted Exchange mailbox, a field should have been added to the index to indicate the mailbox had been deleted, but was not. This issue is resolved. The new deleted field is added to the index with a value of true for emails and email attachments originating from a deleted mailbox.

Dispose - Update configuration file: dispose key for Exchange

Previously, when disposing of Exchange emails using the Dispose operation, the default action was to move the email to a deleted items folder (soft dispose). This default action is changed to immediate and permanent disposal (hard disposal).

To configure the default action of Dispose for Exchange, edit the value of the dispose key located within the Cognitive Toolkit configuration file for Exchange to either “hard” or “soft” and save your changes:

    <!-- value: hard (permanently delete) or soft (moved to deleted items)  -->
    <add key="ExchangeDeleteMode" value="soft" />

To learn more about hard vs soft disposal, read

FetchEmailMessage needs to be hardened against credentials expiring mid-extract

When running AddHashAndExtractedText on an index that contains content from ExchangeOnline, there is a risk that the session will expire partway through the extraction process, causing the remaining files to not be extracted. The FetchEmailMessage code is upgraded to handle this situation gracefully, so that the AddHashAndExtractedText operation picks up where it left off if it suddenly stops partway through the process.

AddHashAndExtractedText - unexplained Errors hashing files in Exchange

Previously, unexplained errors were causing some confusion when using AddHashAndExtractedText with Exchange. To improve handling of these intermittent issues and make it easier to discover the root cause of the error messages, we’ve:

  • Improved tagging in the index and logging

  • Decreased the visibility of error messages that are not helpful

Query tools are unable to used wildcards for index names

The ability to use an asterisk to aggregate indices was not operating as expected. This has been fixed.

ExtractAndCrawlPST - error message running command

Previously, when running ExtractAndCrawlPST, a missing or invalid JWT was causing an error message. This has been fixed.

ExtractEntities - error with extraction service

Previously, ExtractEntities was returning the following error: There was an error contacting the extraction service . ExtractEntities is now performing as expected.

CrawlExchange - Help Menu: update descriptions

The Help Menu for the CrawlExchange operation has been updated to include the following options:

  • --ignored-attachment-extensions (optional)

  • --ignore-folders (optional)

  • --email (default: All)

  • --exclude-auto-replies (default: False)

CrawlSharePointOnPrem - show message from "GET" url when there is an error

To improve handling and understanding of error messages received during a CrawlSharePointOnPrem operation, the GET URL message is now displayed in the log files.

AddHashandExtractedText - do not create empty or null fields when extracting message files

When the AddHashandExtractedText operation extracts metadata from an email message, such as the subject, to, and from fields, a field is created in the index, even if a value doesn’t exist for the field in the message. Fields are longer created for values that do not exist within email messages.

ExportFromIndex - exports blanks for any field that contains array data

Previously, after using RunScripts to tag data and then trying to export the data, all the fields defined as an array came out blank. Exported fields are now correctly populated for both arrays and strings.

Visualizer Service: no details under Description

Previously, the Visualizer had no Description information populated in Windows Services. The following Description is now displayed: Enables users to generate visual representations of indexed data.

Indexer Service: no details under Description

Previously, the Analytics Engine (Indexer) had no Description information populated in Windows Services. The following Description is now displayed: Retrieves data and metadata from your files and turns them into an index pattern that can be later used to visualize your data.

AddHashAndExtractedText (text extraction on msg file): logs filling up with warning message for fromAddress on every item

Previously, when running AddHashAndExtractedText on message files, the from Address was populating into the index, but there were warning messages for every item in the log file. The warnings resulted from using a local email server and therefore user name(s) (for example, Administrator) were used to send/receive email messages, rather than fully qualified email addresses. The logging level for the warning is reduced to address this situation.

ExtractAndCrawlPST - command line not ending when adding adding to index

When running the ExtractAndCrawlPST operation to add new PST files to an existing index that has already had ExtractAndCrawlPST performed, the command line hangs and does not complete. This issue is fixed and the operation now performs as expected.

CrawlExchange - display the body of the message in the full text field instead in the Body field

When using the CrawlExchange operation, the body of an email message was previously displayed in the the body field of the index.

Now, the body of the message is displayed in the full text field, so that the text and the content in the message is stored consistently in the same field for all the connectors.

Steps to take if Exchange has been crawled before the release of Cognitive Toolkit 2.10:

  • Remove the body field in the index and re-crawl.

CrawlExchange - if message contains in-line attachment, hasAttachment flag should be set to true

Exchange allows emails to include in-line attachments. When the CrawlExchange operation is run and in-line attachments are detected in an email, the field hasAttachments is set to true.

Cognitive Toolkit - Update to Net7

Cognitive Toolkit has been updated from .NET 6 to .NET 7. NET is an open-source, managed computer software framework for Windows, Linux, and macOS operating systems.

FileSystem - Smart text extraction

Previously, when a folder was renamed, AddHashAndExtractedText treated every file with a changed path as a new file, requiring text extraction to be repeated.

Now, each hash is verified to ensure the file has not changed, even though the path name changed. If a file is found to be the same, text extraction is not performed on that file.

Images within Exchange emails are not being identified

Previously, image in the body of emails were not identified.

Now, in-line attachments in email are detected and the index field hasAttachments is set to true.

AddHashAndExtractedText - issues with Content Server documents

There were two issues with Content Server documents that have both been resolved:

  1. Documents with no text, such as image attachments, were logged as errors during text extraction. Now, they're properly returning empty text.

  2. Emails without metadata were logged as errors and all extracted text was discarded. Now, the extracted text is retained and no metadata shows up in the index.

CrawlExchange - handling long reply bodies

To view only the most relevant information from an email in Discovery Search, set the --max-characters option in CrawlExchange to display a predetermined number of characters, rather than an entire body of email replies. This feature performs as expected for Exchange Online and will display only the length of characters allowed in Discovery Search results.

CrawlSharePoint - Path-valid=false is not reset when file is present and crawled again

Previously, files that had been flagged as path-valid=false (after being moved to a different folder) were not reset when a re-crawl was performed and the file was found again. AddPathValidation now restores the value of the field to: path-valid = true upon completion of a successful crawl.

Known Issues

Crawling all the emails and attachments from public folders

The CrawlExchange operation crawls all emails and attachments in public folders. Posts are not crawled at this time.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.