Skip to content

[Feature Request] 64-bit roaring bitmap support #20597

@pdeaudney

Description

@pdeaudney

Is your feature request related to a problem? Please describe

N/A, this is a capability uplift request to support a 64-bit roaring bitmap term filter on long fields.

Describe the solution you'd like

Add roaring64 support to the bitmap term filter, to support long fields.
Allow a mapping like:

{
  "mappings": {
    "properties": {
      "user_id": { "type": "long" }
    }
  }
}

With a query like:

{
  "query": {
    "terms": {
      "user_id": ["<base64-encoded Roaring64NavigableMap portable bytes>"],
      "value_type": "bitmap"
    }
  }
}

Related component

Search:Query Capabilities

Describe alternatives you've considered

Just use 32-bit roaring bitmap term filters? 🙅

Additional context

Historically this wasn't possible due to the lack of a portable 64-bit roaring bitmap format.

Ref: #15638

This is now addressed in the roaring specification & Roaring64NavigableMap allows for a compatible base64 encoding of a roaring64.
https://github.com/RoaringBitmap/RoaringFormatSpec

So we should be able to support a bitmap term filter over long fields now (I think)?

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

Status

✅ Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions