Migrating from App Search on Swiftype.com

edit

Migrating from App Search on Swiftype.com

edit

For the latest on this topic, including example migration code, refer to the following blog post: How to migrate from Swiftype App Search to Elastic Cloud.

App Search is available on Elastic Cloud as Enterprise Search, which combines App Search and Workplace Search into a single solution (read the Elastic Cloud announcement).

This document explains how to migrate your engines from App Search on Swiftype.com to Enterprise Search on Elastic Cloud.

Do not switch production traffic to Enterprise Search until you have fully vetted its functionality.

Important considerations in the migration process

edit
  • API Endpoints and Keys need to be updated - your new engines will have new API tokens and endpoints which will need to be updated in all clients.
  • Disk Space – when provisioning Enterprise Search for Elastic Cloud, you’ll need Enterprise Search (App Search) as well as Elasticsearch nodes to store everything, including your documents, logs, and analytics. You’ll spin up those Elasticsearch nodes with your Enterprise Search deployment. Migrations with less than 100,000 documents should be handled well by the default deployment in Elastic Cloud. If you’re dealing with more than 100,000 documents, you may want to consider increasing your storage. Additionally, if you have analytics or log retention requirements, you’ll need to account for those when provisioning storage.
  • Analytics and Application Logs are not migrated - Analytics cannot be migrated. If you need access to historical analytics, your analytics will be backed up in one of the migration steps below.

Important differences between App Search on Swiftype.com and Enterprise Search on Elastic Cloud

edit

Provisioning an Enterprise Search deployment on Elastic Cloud requires manual resource management. Notably:

  • Storage should be monitored closely during initial document ingestion
  • CPU usage should be monitored closely once the new engine is receiving production traffic

If your deployment receives search requests where more than ten thousand documents match, you may need to update your application code to handle minor differences between Swiftype.com and Elastic Cloud. Refer to the following reference documentation for changes to the response body field meta.page.total_results, and for recommended usage of the request body parameters page.size and page.count:


Migrating to Enterprise Search on Elastic Cloud

edit

You will migrate each engine individually to your new Enterprise Search deployment. For each engine you will:

  1. Migrate engine-level settings
  2. Add the new engine as an additional ingestion endpoint
  3. Back fill your documents
  4. Update the query and ingestion clients to point to the new engine

Documents should be imported to your new Enterprise Search on Elastic Cloud engines from the canonical data store, not from the existing App Search engine

Performing a migration

edit

Step 1. Create the engine to be migrated in App Search on Elastic Cloud.


Step 2. Migrate the Schema by using the Schema API to read settings from the Swiftype.com engine and write those same settings to the Elastic Cloud engine. Learn more about working with the Schema API.


Step 3. Backfill documents to the new engine in App Search on Elastic Cloud from the canonical data store.


Step 4. Migrate search settings, curations, and synonyms data by using the various settings APIs to read settings from the Swiftype.com engine and write those same settings to the Elastic Cloud engine.


Step 5. Manually migrate result settings and any user roles from the Swiftype.com engine to the Elastic Cloud engine.


Step 6. Update ingestion clients in production with additional API keys and endpoints to send writes to both engines: the original engine in App Search on Swiftype.com and the new engine in App Search on Elastic Cloud.


Step 7. Once there is parity between the two engines, change all client API keys and endpoints in production to send queries and writes to the new engine on Elastic Cloud.


Step 8. Export analytics from App Search on Swiftype.com as a backup. Learn more about the Analytics API.


Step 9. Validate that the original engine is no longer active by making sure there are no new events in the API logs.


Decommissioning App Search on Swiftype.com

edit

You should verify that engines on Swiftype.com are not receiving queries and writes before decommissioning your Swiftype.com account.

Once you’ve migrated all your engines to Elastic Cloud, you may want to consider decommissioning your App Search account on Swiftype.com.

If your account is billed monthly, you can close your account from within the App Search dashboard. Visit your account settings to proceed.

If your account is billed annually, please contact your account representative. Visit Elastic support.