- Notifications
You must be signed in to change notification settings - Fork 25.6k
Closed
Labels
:Search/SearchSearch-related issues that do not fall into other categoriesSearch-related issues that do not fall into other categoriesenhancement"" muted="" aria-describedby="MDU6TGFiZWwyMzE3NA==-tooltip :R5b96b:">>enhancementrelease highlightv1.3.0v2.0.0-beta1
Description
The way that the exists filter works is by merging all postings lists. missing just wraps an exists filter into a not filter.
Merging all postings lists can however be very slow on high-cardinality fields. I think there are two ways to fix it:
- make these filters run on top of field data,
- or add a new metadata field that we could eg. call
_field_namesthat would index all field names of a document.
Working on field data has the drawback of requiring a lot of stuff to be loaded into memory if the field doesn't have doc values, and the returned filter cannot skip.
I tend to like indexing field names because it would not load anything into memory with a default setup, and the returned filter could skip efficiently since it would be based on a postings list. But unfortunately it could not be used on indices that have been created before we introduce this new metadata field.
Metadata
Metadata
Assignees
Labels
:Search/SearchSearch-related issues that do not fall into other categoriesSearch-related issues that do not fall into other categoriesenhancement"" muted="" aria-describedby="MDU6TGFiZWwyMzE3NA==-tooltip :Ra5pmb:">>enhancementrelease highlightv1.3.0v2.0.0-beta1