Redisearch joining/filtering by multiple indexes


First of all, just wanted to say that Redisearch is amazing and I’m having tons of fun learning and using it.
I’m considering using Redisearch to build a bigger project where we are going to have multiple Campaigns with hundreds of Products and for that I was thinking about having 2 indexes:

Index 1: idxProducts
Index 2: idxCampaigns

My requirement is that, when a campaign gets ‘disabled’, it stops returning products related to that campaign.

In Elasticsearch and Solr we have this mechanism of ‘has_parent’ or ‘join’, my question is, Is there anything I can do to simulate this behaviour in Redisearch?

One alternative for me would be to get the enabled or disabled campaigns and pass it as part of the search, but I might have hundreds of campaigns, not sure how that would perform.

Appreciate any ideas, workarounds and/or suggestions.


Ingestion is really quick for RediSearch and your data is small. You could easily create and destroy indices with impunity. Maybe just create a new index whenever a campaign is added or disabled? Really only works if the campaign is is part of the keyspace for the products and there is not a many-to-many relationship between campaigns and products.