meilisearch-js-plugins
meilisearch-js-plugins copied to clipboard
"or" operator doesn't seem to work within a refinement list (disjunctive facet search).
Hi 👋
Description
"or" operator don't work within a refinement list.
Current behavior
When I click on a refinement list, only the options that have a document in common with the option selected are shown - even if the refinement list is set with the "or" operator.
So - when I have a refinement list with exclusive options (ie. none is shared by a document - in a belong_to/has_one association), I can only display a single option within the refinement list.
But - with the "or" operator, I'd like to see other options as well that I can select, so I can select two different options from the refinement list and see the documents that have either one or the other.
Screenshots or Logs
searchBrands.addWidget(
panelForIndustries({
container: "#categories",
attribute: "industry.name",
showMore: true,
autoHideContainer: true,
keepZeroFacets: true,
operator: "or"
})
);
Behaviour - I have industries to search on brands. Each brand can only have one industry.
Before selecting anything:
Here's what I'd like as a result (using Algolia, which set the default operator as "or" - so I can select and view results from two different industries - as I would expect using the "or" attribute)
Here's the actual result by Meilisearch (the default operator being "and" - and the setting in the RefinementList doesn't seem to work)
Environment (please complete the following information):
- Meilisearch version: MeiliSearch 0.27.1
- instant-meilisearch version: https://cdn.jsdelivr.net/npm/@meilisearch/instant-meilisearch/dist/instant-meilisearch.umd.min.js
- instantsearch.js version: InstantSearch.js 4.43.0
Hey @alcanari
Unfortunately, the way it works today is that if you are doing and
you have the following results:


and if you're using or
you have the following:


I agree with you that this is counterintuitive! It is planned to update this behavior to what we call disjunctive facet search
.
When the next release of meilisearch (the engine) is out, I will be working on instant-meilisearch
and on this issue as well.
It should come in the following weeks.
I will keep you updated once the issue is created on how disjunctive facet search
works and if it seems to be what you are looking for.
meanwhile, can I suggest using keepZeroFacet
option which at least will still showcase your other facets!
Hey,
Thank you @bidoubiwa ! :)
I'm not sure I follow. In your examples, you have 3 games that are both Multiplayer and Single Player? If you'd only have games that would be Multiplayer or Single Player (none can be both) - would other facets show up when you're using or
?
Just to make sure I understand, because I'm already using the keepZeroFacet option :)
When you say "this is counterintuitive" -> you mean, the fact that you go from 3 to 7 for Single Player games in the using or
option?
Thank you!
When you say "this is counterintuitive" -> you mean, the fact that you go from 3 to 7 for Single Player games in the using or option?
Yes ! My bad I wasn't very clear
Thank you!
Yes agreed - I understand it's related to the disjunctive facet search
- got it. Just to be 100% clear - the or
option on the refinement list right now changes the results of the search, but not the available options to select for now? :)
Also, did you saw my previous message? We're already using keepZeroFacets
but it doesn't seem to work, which makes it hard to use in a setup where there are exclusive refinement lists options.
Hey,
Thank you @bidoubiwa ! :)
I'm not sure I follow. In your examples, you have 3 games that are both Multiplayer and Single Player? If you'd only have games that would be Multiplayer or Single Player (none can be both) - would other facets show up when you're using
or
?Just to make sure I understand, because I'm already using the keepZeroFacet option :)
Is there any idea of when this issue will be resolved? Thanks!
Hello @johnwbaxter I cannot guarantee any time for the moment unfortunately :/ I will try to create the issue explaining in details how it should be implemented asap so that contributors may implement it if they want it to be released sooner
I add a flag on this (we add keepZeroFacets on configuration for the moment but i'm really interesting on that behaviour
Would be great to keep moving forward on this where possible, this is a critical feature for us
This is a pain point for us too.
We have "or" based filter
This is the refinement list
without any filters
When we select 1 this is what we would see (notice other options becoming 0
)
But in fact, the document
count available is not 0
but 6
since this is an "or" based filter. When we select document
as well, our total search hits become 10 (6+4):
This is what we expect to see: (filter count available, not filter count in current hits)
Does anyone know when we will get an update on this one?
Hey @jeremylynch. It is the next task we are working on :) I'll keep you updated
Hello there, I'd like to ask about this feature, is there any update with that?
Working on it for the moment! We have been slowed down with hacktoberfest unfortunately
Working on it for the moment! We have been slowed down with hacktoberfest unfortunately
Hi @bidoubiwa, any update on this?
Happy to test on our 20k+ product database which has lots of facets if it helps.
Hey @anthonycook, I'm currently working on it :) Both multi-index search and disjunctive facet search are being added simultaneously.
You can follow along #888 Which introduces the multi-index search, and should be a gate opener to adding disjunctive very efficiently
Hey @anthonycook, I'm currently working on it :) Both multi-index search and disjunctive facet search are being added simultaneously.
You can follow along #888 Which introduces the multi-index search, and should be a gate opener to adding disjunctive very efficiently
Amazing! Thanks for the update, I will follow along 😊
Thank you for the update @bidoubiwa !
Sorry for my question, and maybe it's a stupid question, but when will this feature be available, would be happy to use it in existing project. Thanks!
Hey @kamopeter The beta should be released this week on npm
Thanks! :)
The disjunctive search beta is released! Can you try it out? It is published on npm here
It is released on the latest dist tag in npm and should be acting as expected with v0.11.0!