Negated conjunctive faceting

I want to make a widget that lets me select a conjunction of negations. For example, I have a bunch of product records with lists of ingredients and a category for those ingredients.

Here is an example record.

{
  "name": "Test product 1",
  "ingredients": [
    {
      "name": "Milk",
      "category": "Dairy"
    }
  ]
}

I have a widget that filters for products WITH a conjunction of ingredients, but I need it to filter for products WITHOUT those ingredients, or perhaps without any ingredients of a category.

So a filter like…

{
    "filters": "NOT ingredients.name:'Milk' AND NOT ingredients.name:'Butter'"
}

What’s the best way to do this?

Hi @patrick3,

We don’t support this kind of feature out of the box with InstantSearch. To solve your use case you have to create your own RefinementList with the help of a connector. Here is an example similar to your use case implemented with connectRefinementList.

Hope that helps!