GroupDocs.Search for .NET 20.1 Release Notes

Major Features

.NET Standard 2.0

Starting from 20.1 release GroupDocs.Search for .NET includes .NET Standard 2.0 version. It has full functionality of regular .NET version of GroupDocs.Search.

There are also the following improvements:

  • Implement index statuses reflecting possible operations
  • Remove Legacy namespace
  • Implement options for metadata indexing

Full List of Issues Covering all Changes in this Release

KeySummaryCategory
SEARCHNET-2182Add support for .Net Standard 2.0Improvement
SEARCHNET-2160Implement index statuses reflecting possible operationsImprovement
SEARCHNET-2185Remove Legacy namespaceImprovement
SEARCHNET-2186Implement options for metadata indexingImprovement

Public API and Backward Incompatible Changes

Implemented index statuses reflecting possible operations

This improvement brings order to the set of statuses of the index, and also clarifies the type of operation being performed.

Public API changes

Value NotStarted has been deleted from GroupDocs.Search.Common.IndexStatus enum.
Value InProgress has been deleted from GroupDocs.Search.Common.IndexStatus enum.
Value LicenseRestrictionFinished has been deleted from GroupDocs.Search.Common.IndexStatus enum.
Value Indexing has been added to GroupDocs.Search.Common.IndexStatus enum.
Value Updating has been added to GroupDocs.Search.Common.IndexStatus enum.
Value Merging has been added to GroupDocs.Search.Common.IndexStatus enum.
Value Optimizing has been added to GroupDocs.Search.Common.IndexStatus enum.
Value Deleting has been added to GroupDocs.Search.Common.IndexStatus enum.

Value Deleting has been added to GroupDocs.Search.Events.OperationType enum.
Value Optimizing has been added to GroupDocs.Search.Events.OperationType enum.

Usecases

This example shows how to get information about changing the status of an index and completing the index operation:

C#

string indexFolder = @"c:\MyIndex";
string documentFolder = @"c:\MyDocuments";
 
// Creating index
Index index = new Index(indexFolder);
 
// Subscribing to event
index.Events.StatusChanged += (sender, args) =>
{
    Console.WriteLine("Index status: " + args.Status);
};
 
// Subscribing to event
index.Events.OperationFinished += (sender, args) =>
{
    Console.WriteLine("Operation finished: " + args.OperationType);
};
 
// Starting indexing operation
index.Add(documentFolder);

Added support for .Net Standard 2.0

Starting from 20.1 release GroupDocs.Search for .Net includes a .Net Standard 2.0 compatible assembly.

Public API changes

None.

Removed Legacy namespace

All types from the GroupDocs.Search.Legacy namespace have been removed.

Public API changes

All types from the GroupDocs.Search.Legacy namespace have been removed.

Implement options for metadata indexing

This improvement adds the MetadataIndexingOptions property to IndexingOptionsUpdateOptions, and TextOptions classes. The MetadataIndexingOptions class contains the following properties for setting metadata indexing options:

  • The IndexingEmptyValues property sets a value indicating whether to index empty field values or not. The default value is true.
  • The IndexingEmptyNames property sets a value indicating whether to index empty field names or not. The default value is true.
  • The DefaultFieldName property sets the default field name used to index empty field names. The default value is “unknown”.
  • The SeparatorInCompoundName property sets the separator in the compound name of a field. The default value is “.” (period character).
  • The MaxBytesToIndexField property sets the maximum number of values indexed from an array of byte values. The default value is int.MaxValue.
  • The MaxIntsToIndexField property sets the maximum number of values indexed from an array of int values. The default value is int.MaxValue.
  • The MaxLongsToIndexField property sets the maximum number of values indexed from an array of long values. The default value is int.MaxValue.
  • The MaxDoublesToIndexField property sets the maximum number of values indexed from an array of double values. The default value is int.MaxValue.
  • The SeparatorBetweenValues property sets the separator between values in a field of type array. The default value is " " (space character).
Public API changes

Class MetadataIndexingOptions has been added to GroupDocs.Search.Options namespace.
Property bool IndexingEmptyValues has been added to GroupDocs.Search.Options.MetadataIndexingOptions class.
Property bool IndexingEmptyNames has been added to GroupDocs.Search.Options.MetadataIndexingOptions class.
Property string DefaultFieldName has been added to GroupDocs.Search.Options.MetadataIndexingOptions class.
Property string SeparatorInCompoundName has been added to GroupDocs.Search.Options.MetadataIndexingOptions class.
Property int MaxBytesToIndexField has been added to GroupDocs.Search.Options.MetadataIndexingOptions class.
Property int MaxIntsToIndexField has been added to GroupDocs.Search.Options.MetadataIndexingOptions class.
Property int MaxLongsToIndexField has been added to GroupDocs.Search.Options.MetadataIndexingOptions class.
Property int MaxDoublesToIndexField has been added to GroupDocs.Search.Options.MetadataIndexingOptions class.
Property string SeparatorBetweenValues has been added to GroupDocs.Search.Options.MetadataIndexingOptions class.

Property MetadataIndexingOptions MetadataIndexingOptions has been added to GroupDocs.Search.Options.IndexingOptions class.
Property MetadataIndexingOptions MetadataIndexingOptions has been added to GroupDocs.Search.Options.TextOptions class.
Property MetadataIndexingOptions MetadataIndexingOptions has been added to GroupDocs.Search.Options.UpdateOptions class.

Usecases

This example demonstrates how to set the metadata indexing options:

C#

string indexFolder = @"c:\MyIndex";
string documentFolder = @"c:\MyDocuments";
 
// Creating an index
Index index = new Index(indexFolder);
 
// Setting the metadata indexing options
var options = new IndexingOptions();
options.MetadataIndexingOptions.DefaultFieldName = "default";
options.MetadataIndexingOptions.SeparatorInCompoundName = @"\";
options.MetadataIndexingOptions.MaxBytesToIndexField = 10;
options.MetadataIndexingOptions.MaxIntsToIndexField = 10;
options.MetadataIndexingOptions.MaxLongsToIndexField = 10;
options.MetadataIndexingOptions.MaxDoublesToIndexField = 10;
 
// Starting indexing operation
index.Add(documentFolder, options);