🔎Search Engine

Harmony provides a powerful search engine functionality where you can search, find and edit board items in a matter of seconds. Currently there are two search engines supported:

  • Algolia search engine

  • Direct database search

In case you don't want to setup Algolia, then you don't have to change anything. By default Harmony uses the direct database search engine.

If though Harmony is used by many teams, having multiple boards then it is highly recommended that you integrate Algolia.

Configure Algolia

Algolia is the easiest search engine existing to configure. It provides 10000 requests for free per month so you can certainly test it without even paying. Follow the next steps to create an App Id & and an API Key.

  • Subscribe and create a new account

  • Navigate to your account. You will see that an Application has been already created in the Applications nav item. If you wish, you can rename it and if not created automatically for you, proceed by creating one. Copy its ApplicationId.

  • Click the API keys from your account page. Again, you will see that an API public key that can be used for searching has been already created for you. In case there isn't any, then create one. Copy the API Key.

  • Select Algolia for your search engine in the Harmony.Server project in the program.cs

builder.Services.AddSearching(SearchEngine.Algolia, builder.Configuration);
  • Set the ApplicationId and the ApiKey properties in the appsettings.json file in the Harmony.Server and Harmony.Notifications projects.

  "AlgoliaConfiguration": {
    "ApplicationId": "YOUR_APPLICATION_ID_HERE",
    "ApiKey": "YOUR_API_KEY_HERE"
  },

Algolia indexing is being handled by the Harmony.Notifications that accepts messages from the RabbitMQ so make sure you have both of them up & running. Every time you make a change in cards, Harmony.Server sends a message and Harmony.Notifications makes a request to Algolia to update/index the change.

Algolia will contain an index for each board named by the workspace_name-board_name and it's being created when you create the board. This means that you may have to re-create from scratch the board/project and add cards to it. In a future release, there will be a button that automatically syncs all boards and their items without having to create it from scratch 🤞.

📬pageRabbitMQ

Last updated