Skip to content

Implement datetime support for the payload index #3320

@generall

Description

@generall

Is your feature request related to a problem? Please describe.

Currently, if users wants to search for specific data / time range, it is required to convert dates into unix timestamps (or similar) and work with dates as integers. It might inconvenient and annoying to do.

Describe the solution you'd like

Create a special type of index, which could automatically parse dates and create appropriate index for them (it could be same integer index internally).
User should be able to filter requests using date as well (in the range queries).

For this to work properly, we would need to extend Range data structure with ability to specify dates.

In rest interface it should look like this:

{
  "must": [
    {
      "key": "my-date",
      "range": {
          "lte": "2024-12-01"
       }
    }
  ]
}

Describe alternatives you've considered

Create a dedicated filtering condition for dates, but that might be confusing.

Additional context

We need to be extra careful with backward compatibility in gRPC interface. We can't simply change Range structure into enum. Most likely in gRPC the best option would be to create another type "RangeDates" and implement proper conversions on server side.

Additionally, it might make sense to do same in REST (but reuse the same key range), so that it would be impossible to use
dates and numbers in a single range statement.


Note for contributors: Please consider this as tracking issue. If you think that it would be beneficial to split the task into multiple smaller PRs, please you are welcome to do so. Bounty will be rewarded for each PR independently

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions