Skip to content

Feature: provide a way to disable key lookups when loading index #656

@orchistro

Description

@orchistro

Describe what you are looking for

index_dense_gt has a configuration item that controls key-to-vector lookup table generation: index_dense_config_t::enable_key_lookups.

When you try to build an usearch index, you can set index_dense_config_t::enable_key_lookups to false by passing index_dense_config_t instance to the index_dense_gt::make() function.

On the other hand, when trying to load index from a serialized buffer, you have to default initialize index_dense_gt, and then you call index_dense_gt::view(). There is no way to pass custom index_dense_config_t to index_dense_gt. Of course you can pass config by calling index_dense_gt::make(). But here's the thing: if you create an instance of index_dense_gt by calling index_dense_gt::make(), you cannot load a serialized index using it. Because index_dense_gt::make() function creates an instance of index_gt and sets the pointer to it in index_dense_gt::typed_, which leads to an error 'No available threads to lock' from index_dense_gt::view().

We absolutely need a way to set enable_key_lookups false even when we try to load index from serialized buffer.

Can you contribute to the implementation?

  • I can contribute

Is your feature request specific to a certain interface?

C++ implementation

Contact Details

orchistro@gmail.com

Is there an existing issue for this?

  • I have searched the existing issues

Code of Conduct

  • I agree to follow this project's Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions