Triage and fix Algolia searches that return no results
Work through the searches your customers ran that came back empty, fix each one with a synonym or rule, and confirm the fix actually worked before moving on.
Integrations
Algolia
Google Sheets
Type
Categories
- Operations
- Marketing
Build me an app for triaging dead-end searches in Algolia, where I actually fix the failing search and confirm the fix worked instead of just being told about it. It is a workbench I open and work a queue in, not something that runs on a schedule.
The app opens on the queue. At the top, an index picker listing the indices in my Algolia application (List Indices) and a date range picker that defaults to the last 7 days. The queue below lists the search terms that returned zero results in that range for the selected index, ranked by how many people searched them (Analytics: Top Searches with No Results). Each row shows the query text, the number of searches, and its current status. Note that Algolia's analytics API lives on a different host from the search and indexing API (analytics.algolia.com), so the queue and the live search in the detail pane are talking to different hosts.
Clicking a query opens a detail pane. The pane immediately runs that exact query against the selected index as it stands right now (Search Single Index) and shows me the hit count and the top hits, so I can see what a customer actually gets today. Let me edit the query text in the pane and run loose variants without leaving the row, dropping a word, trying singular or plural, trying an alternate spelling, so I can find the wording my catalog does use before I decide on a fix. Show me how the term compares against my overall search volume too (Analytics: Top Searches), so I know whether I am fixing something popular or something niche.
Before showing me the fix controls, show me what already exists for that term: the synonyms in the index that mention it (Search Synonyms) and the query rules whose pattern matches it (Search Rules). I create duplicate synonyms constantly when I cannot see the existing ones, so put these first in the pane and say plainly when something already covers the term.
Then let me fix it inline, two ways. A synonym that maps the customer's word to the word my catalog actually uses (Save Synonym), and a query rule for more targeted behavior on that specific term (Save Rule). Both write to the currently selected index.
The verify loop is the part that matters most, so build it carefully. Right after I save a fix, the pane re-runs the same original query against the index and shows me the hit count before and after, zero going to something. Algolia's writes are asynchronous and return a task id rather than applying instantly, so allow a brief settle before re-querying rather than re-querying the moment the save returns, and if the count is still zero, retry a couple more times with a short gap before telling me the fix has not landed yet. Never report success on the basis of the save call succeeding. Only report success when a re-run of the query genuinely came back with hits, and show me the number it came back with.
Every applied fix appends a row to a Google Sheets change log (Append Values) with the date, the index, the query, the fix type of synonym or rule, the detail of what was saved, the verified hit count after the fix, and who applied it. Show a panel of recent log entries inside the app as well (Get Values), because this audit trail of relevance changes is something Algolia does not give the team anywhere else.
Let me clear the queue down. Each query can be marked resolved once it is fixed, or ignored forever for the bot noise, gibberish and junk queries I never want to see again. Persist this per index and query in the app's own storage so it survives reloads and applies for everyone on the team, and keep ignored queries out of the queue for every future date range, not just the one I am looking at. Give me filters to view open, resolved and ignored queries separately, with the open queue as the default view.
The Algolia connection needs an Admin API key, since saving synonyms and rules are write operations and a search-only key will be rejected.
What it does
- Opens on a ranked queue of the searches that came back empty over the date range you pick, busiest first, for whichever search index you choose.
- Click any dead-end search to see what it returns right now, try looser wording, and review the synonyms and rules that already exist for that term.
- Fix it on the spot with a synonym or a merchandising rule, then watch the app re-run the search and show the result count go from zero to something.
- Logs every fix to a Google Sheets change log with the date, the search, the fix and who made it, and lets you park junk searches so they stop clogging the queue.
What you’ll need
- An Algolia account with admin access, since adding synonyms and rules changes your live search.
- The name of the search index you want to clean up, plus search analytics switched on in Algolia so the empty searches get recorded.
- A Google account and a spreadsheet to keep the change log in.
How to customize it
- Change the date range the queue opens on, for example the last 7 days instead of the last 30.
- Point the change log at a different spreadsheet or tab, and add columns such as the store or region a fix applies to.
- Adjust how long the app waits before checking that a fix landed, if your index is large and slow to update.
Use cases
- Feedback Triage
- Research & Monitoring