in

How to Delete Taxonomies from Algolia

default image

Algolia has emerged as a top solution for powering site search and discovery. The API-based SaaS product indexes content quickly and delivers lightning fast results. Over 10,000 sites leverage Algolia to improve search speed, relevance and analytics. Their roster of high-profile customers includes Zendesk, Twitch, Stripe, and Birchbox.

However, as your Algolia index evolves, managing what gets indexed and deleted requires ongoing attention. Stale, duplicate, or irrelevant records can clutter your index and hurt search relevance. For example, translated posts with taxonomies like "Français" are unlikely useful for English searchers. Fortunately, Algolia offers robust APIs to target and delete specific records precisely.

In this comprehensive 3000+ word guide, you’ll learn how to leverage Algolia‘s delete capabilities to optimize your search index. We’ll cover:

  • Algolia overview and indexing architecture
  • Common index clutter issues
  • Prerequisites for deleting records
  • Filtering and query structure
  • Example delete queries
  • Using Postman for deletions
  • Confirming removal
  • Additional filters beyond taxonomies
  • Deletion strategies and best practices
  • Complementary settings like attributes and faceting
  • Troubleshooting index management

Follow along to master selective deletion skills that will improve your Algolia search relevance for the long haul.

Algolia Overview

Algolia was founded in 2012 in Paris and has since raised over $290 million. The company touts over 10 billion monthly searches across its customer base. Algolia promises indexing speeds up to 10x faster than traditional search along with typo tolerance and real-time updates.

The service works by "crawling" a site‘s content and programmatically sending it to Algolia‘s servers. There the content gets indexed across distributed data centers optimized for fast lookups. Algolia leverages in-memory searching and other proprietary techniques to return results in under 50 milliseconds.

This architecture diagram summarizes the process:

[Diagram showing content crawling -> Algolia ingestion -> Distributed searching]

For site owners, Algolia offers an intuitive dashboard and developer-friendly APIs for managing search records. Configuration is code-driven so indexes can be fully customized.

Some examples of sites using Algolia for search include:

  • Zendesk – Internal help center search processes 20K queries/second. Algolia improved relevance by 25%.
  • Stripe – Developer docs search gets 12 million monthly queries. Algolia increased engagement by 150%.
  • Birchbox – Search of beauty products saw 50% increase in conversions. Queries per session doubled.

Let‘s now explore some common indexing challenges that arise with Algolia, motivating the need for selective deletions.

Why Delete Records from Your Index?

While Algolia makes indexing easy, over time stale, irrelevant or duplicate records can accumulate. These types of index clutter can degrade user experience:

  • Irrelevant content – Outdated posts, expired listings, translated duplicates. Creates a poor search experience.
  • Stale records – Old docs, obsolete pages, discontinued products. Bloats the index.
  • Duplicate records – Unintended copies from migrations or bugs. Causes ranking confusion.

One study across ecommerce sites found a 15% increase in search abandons when indexes contained stale listings and prices.

Keeping your index clean is crucial for providing the best results. Otherwise searchers struggle to find relevant matches amid the cruft.

Fortunately, Algolia offers robust APIs to target and selectively remove records. This maintains index quality over time. Let‘s look at how to get set up.

Prerequisites for Deleting Records

Before we can delete, we need to gather some key details:

  • Algolia app ID – This uniquely identifies your Algolia application. You can find it under "API Keys" in your Algolia dashboard. It will be in the format ABC12345.
  • API key – An admin API key allows you to manage records. Generate this under "API Keys" ensuring you check "Add records" permission.
  • Index name – The name of the search index you want to delete from, like products or help_articles.

Here‘s a look at where to locate your Application ID and generate API keys:

[Screenshot of Algolia dashboard API Keys section]

With these pieces in place, we can now write API queries to delete records. Let‘s start by fetching records to verify targeting.

Query to Confirm Deletion Records

Deleting records permanently removes them, so cautiously checking what will be deleted is wise.

The Algolia API uses JSON over HTTP. We‘ll construct POST requests that contain:

  • Headers – Specify your Application ID and Admin API key
  • Base URL – Your Algolia app URL including index name
  • Request body – Contains the search query and/or filters

Here is a sample query to fetch records we may want to delete – translated French posts:

// Headers
X-Algolia-API-Key: 1234567890
X-Algolia-Application-Id: ABC12345

// API Request  
POST https://ABC12345.algolia.net/1/indexes/posts/query

// Request Body
{
  "filters": "taxonomies.language: Français" 
}

This searches our posts index and returns all records containing a French taxonomy. We could also use facets to group results by language.

Now that we‘ve confirmed which records we want to remove, we can actually delete them.

Deleting Records using deleteByQuery

To actually delete records, Algolia provides a deleteByQuery endpoint. It accepts the same headers and request structure.

We supply our search criteria or filters in the request body to target records for deletion. Here is an example:

// Headers
X-Algolia-API-Key: 1234567890
X-Algolia-Application-Id: ABC12345

// API Request  
POST https://ABC12345.algolia.net/1/indexes/posts/deleteByQuery

// Request Body 
{
  "filters": "taxonomies.language: Français"
}

When executed, this will permanently remove all posts containing a French taxonomy value from our search index. The records will no longer appear in results.

Let‘s now look at executing delete queries using a REST client.

Using Postman to Delete Records

Postman is a popular tool for working with APIs. It offers a GUI and saves you from having to run curl commands.

To get started deleting records with Postman:

  1. Create a new request
  2. Set the method to POST
  3. Input the full Algolia delete URL with your index name
  4. Add the Algolia headers:
[Screenshot of Postman with headers configured]
  1. Add your search criteria or filters under Body:
[Screenshot of Postman request body]
  1. Click Send and Postman will execute the underlying delete call.

Postman makes it easy to configure requests visually and see response data come back.

Now let‘s verify the records were actually deleted.

Confirming Deletion

Once your deleteByQuery request succeeds, you should receive a 200 OK response from Algolia‘s API.

To confirm deletion, re-query your index looking for the records you expect to be removed. If your language facet no longer shows French, then you know the taxonomies were deleted:

[Screenshot of empty search result after deletion]

Depending on how frequently you query Algolia, results may be cached so you don‘t see immediate changes. But within a minute or two, deleted records will disappear from search results.

Additional Filtering Options

While our example focused on deleting French taxonomies, the Algolia API supports many more filters.

You can target records by:

  • Date range – createdAt > 2022
  • Text attributes – author.name: John Smith
  • Numeric values – price < 100
  • Geo location – user_city: Paris
  • String matching – title: Apple

You can even combine filters using AND, OR, NOT to create complex logic:

(language: French OR language: Spanish) AND (createdAt < 2020)

Some other helpful filters include:

Filter Description
numericFilters Filter numeric attributes
tagFilters Filter array attributes
facetFilters Filter by facet value

Refer to the Algolia Query API for all supported options.

With this filtering power, you can precisely target records by any attribute or combination of values.

Strategies for Ongoing Deletions

Now that we‘ve covered the mechanics of deleting records, let‘s discuss strategies to keep your index optimized over time.

Here are three methods for maintaining search quality:

1. Schedule periodic deletions

Configure recurring jobs to prune stale records. For example:

  • Delete listings older than 90 days
  • Remove help articles not viewed in 6+ months
  • Delete user profiles with no recent activity

Choose frequencies that balance your needs for freshness versus managing volume. Monthly or quarterly jobs are common.

2. Batch delete via scripts

For one-time cleanups, scripts offer flexibility:

# Delete expired events
client.delete_by_query(index="events", filters="endDate < yesterday")

Scripts allow dynamically constructing filters to handle bulk deletions.

3. Automate rules

Set up triggers to automatically delete records:

  • When product inventory hits 0, remove listing
  • If post status changes to "inactive", delete from search
  • When user account closes, delete profile

Automated rules provide hands-off continuous management.

Combine scheduled, scripted, and automated approaches to design a deletion regimen that keeps your Algolia index optimized over time.

Additional Settings that Aid Deletions

Along with directly deleting records, Algolia offers additional settings that complement your cleanup strategies:

Attributes

Use custom attributes to store metadata that aids targeting stale records:

{
  "objectID": "12345",
  "title": "My Post",

  "status": "inactive", // helpful deletion attribute
  "lastViewed": "2022-05-17"
}

Faceting

Create facets on dates, languages, or status fields. This allows querying and deleting by facet values.

Sorting

Use sort settings like lastViewed and createdAt to surface stale records faster for deletion.

Boosting

Give fresher or more relevant records a boost score to override stale results despite them still being present.

Take advantage of attributes, faceting, sorting, and boosting to better manage the longevity of your Algolia records.

Troubleshooting Deletions

Here are some common issues that may arise with deletions:

  • 404 error – Ensure your index name is correct
  • Filter doesn‘t match – Debug your criteria to isolate the desired records
  • Deletes more than expected – Confirm your filters are precise
  • Changes don‘t show immediately – Account for caching and propagation delays
  • General error – Check Algolia status page for ongoing incidents

You can get help via Algolia‘s forum or contact support. Be sure to provide detailed API logs showing requests, headers, and response bodies.

Debug carefully and start deletions conservatively until you operate with confidence.

Best Practices for Deletions

Follow these tips to stay on top of optimizing your Algolia search index:

  • Back up your index – Before bulk deletions, snapshot your index via export.
  • Query before deleting – Preview exactly which records will be affected.
  • Start small – Delete conservatively then expand as comfortable.
  • Monitor results – Check search behaviors to confirm removals.
  • Have a rollback plan – Scripts, snapshots, and backups help reverse mistakes.
  • Use unique IDs – Instead of deleting, flag outdated records as inactive while retaining the history.
  • Automate routinely – Schedule recurring jobs instead of one-off deletions.

With smart processes in place, you can confidently make ongoing enhancements to your Algolia search results by keeping your index lean.

Key Takeaways

Deleting taxonomies, languages, stale posts or any irrelevant records ensures your Algolia index stays optimized over time. Follow these best practices:

  • Use deleteByQuery along with precise filters to target records.
  • Test carefully and confirm which records will be removed.
  • Take advantage of robust filtering capabilities.
  • Take backups and have rollback contingencies.
  • Automate common deletions for hands-off management.
  • Complement deletions with attributes, sorting and other search settings.
  • Monitor search analytics for optimization opportunities.

Don‘t settle for a bloated index cluttered with stale records. Leverage Algolia‘s APIs along with smart management strategies to delight your users with relevance!

AlexisKestler

Written by Alexis Kestler

A female web designer and programmer - Now is a 36-year IT professional with over 15 years of experience living in NorCal. I enjoy keeping my feet wet in the world of technology through reading, working, and researching topics that pique my interest.