Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

...

In this article you will find:

Table of Contents

Goal

The Sitefinity connector provides a mechanism for notifying data sources for the start of the indexing procedure. This way, you can use multiple sources to add items to the Hawksearch index created by Sitefinity.

Prerequisite

Info

Configured Connector - Connector: Applying Settings

Add additional data sources

You can add additional data sources from Advanced Settings → Hawksearch -> DataSources submenu (your-site-domain/Sitefinity/Administration/Settings/Advanced). You should provide the Data Source with Name, Api Key, Url, Severity and Timeout interval.

  • Name - provide unique name for the data source.

  • Api Key - provide a unique Api Key: the key has no restrictions. Can contain letters, characters and numbers.

  • Url - the Hawksearch connector will use this Url to send a POST request to the data source

  • Severity - the values for severity are “Low” and “Critical”. If the data source is with Low severity and indexing failed Sitefinity will continue the indexing procedure as normal. If the severity is set to Critical and Deferred Index Activation is turned on upon failure this will stop the indexing procedure, delete the new index and set the status of the old one as Indexed. If the severity is set to Critical and Deferred index activation is turned off upon failure no index will be created. In both cases errors are loggedBased on this severity the indexing workflow will have different result.

  • Timeout interval - you can set a timeout interval for each data source. If exceeded by a Low priority data source the indexing process will continue and log an error. If exceeded by a Critical priority data source and Deferred Index Activation is on the indexing will stop, the new index will be deleted, the old one will have its status set to Indexed. If exceeded by a Critical priority data source and Deferred Index Activation is turned off no index will be created. Further information about timeouts can be found in the error logs.

Setup data source service

The Data Source must expose a POST endpoint, which will receive and object with Id and IndexName from the request body.

Code Block
METHOD: POST
{
  "ApiKey": "558ad504-9b2d-4b67-be4f-7ab9ed3028fb",
  "IndexName": "hawksearchindexname.20201020.112252.suffix"
}

When the indexing process is completed, the service must send a PATCH request to your-site-domain/hawk/index/status containing the service Id and the index name received from the first request, and Status which notifies if the indexing is successful or failed.

Note

You can set the status to either “success” or “fail” depending on the indexing result.

Code Block
METHOD: PATCH
{
  "Id": "558ad504-9b2d-4b67-be4f-7ab9ed3028fb",
  "IndexName": "hawksearchindexname.20201020.112252.suffix",
  "Status": "success"
}

...

  • the timeout interval is exceed the workflow for failed data source will be executed.

Example:

...

Workflow

When reindexing is triggered by Sitefinity, the connector will notify an external indexing service by sending the Hawksearch index name and the Api key.

There are different workflows based on the severity of the data source:

  • Low Severity:

    • Success - the indexing procedure will continue as usual and the index data status will be updated.

    • Fail - the indexing procedure will continue as usual and the index data status will be updated.

  • Critical Severity

    • Success - if Critical Severity data source finish indexing successfully, the indexing procedure will continue as usual.

    • Fail:

      • Deferred Index Activation is disabled - the indexing procedure will continue as usual and the index data status will be updated.

      • Deferred Index Activation is enabled - while Deferred Index Activation is enabled, the connector will create the new index while keeping the old one so that there is no downtime while the indexes are swapped. If the Critical Severity data source fails to index or the Timeout interval is exceeded, the newly created index will be removed and the system will continue to use the old one.