Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support to build vector data structures greedily and perform exact search when there are no engine files #2188

Open
wants to merge 9 commits into
base: main
Choose a base branch
from

Commits on Oct 9, 2024

  1. Introduce new setting to configure when to build graph during segment…

    … creation (opensearch-project#2007)
    
    Added new updatable index setting "build_vector_data_structure_threshold", which will be
    considered when to build braph or not for native engines.
    This is noop for lucene. This depends on use lucene format as prerequisite.
    We don't need to add flag since it is only enable if lucene format is
    already enabled.
    
    Signed-off-by: Vijayan Balasubramanian <[email protected]>
    VijayanB committed Oct 9, 2024
    Configuration menu
    Copy the full SHA
    15f0683 View commit details
    Browse the repository at this point in the history
  2. Add integration test for binary vector values (opensearch-project#2142)

    Signed-off-by: Vijayan Balasubramanian <[email protected]>
    VijayanB committed Oct 9, 2024
    Configuration menu
    Copy the full SHA
    0149829 View commit details
    Browse the repository at this point in the history
  3. Allow build graph greedily for quantization scenarios (opensearch-pro…

    …ject#2175)
    
    Previosuly we only added support to build greedily for
    non quantization scenario. In this commit, we can remove
    that constraint, however, we cannot skip writing quanitization
    state since it is required irrespective of type of search
    is executed later.
    
    Signed-off-by: Vijayan Balasubramanian <[email protected]>
    VijayanB committed Oct 9, 2024
    Configuration menu
    Copy the full SHA
    bc64f9b View commit details
    Browse the repository at this point in the history
  4. Add exact search if no native engine files are available (opensearch-…

    …project#2136)
    
    * Add exact search if no engine files are in segments
    
    When graph is not available, plugin will return empty results. With this change,
    exact search will be performed when only no engine file is available in segment.
    We also don't need version check or feature flag because, option to not build vector
    data structure will only be available post 2.17.
    If an index is created using pre 2.17 version, segment will always have engine files
    and this feature will never be called during search.
    
    ---------
    
    Signed-off-by: Vijayan Balasubramanian <[email protected]>
    VijayanB committed Oct 9, 2024
    Configuration menu
    Copy the full SHA
    561a80b View commit details
    Browse the repository at this point in the history
  5. Add support for radial search in exact search (opensearch-project#2174)

    * Add support for radial search in exact search
    
    When threshold value is set, knn plugin will not be creating graph.
    Hence, when search request is trigged during that time, exact search
    will return valid results. However, radial search was never included
    as part of exact search. This will break radial search when threshold
    is added and radial search is requested. In this commit, new method
    is introduced to accept min score and return documents that are greater
    than min score, similar to how radial search is performed by native
    engines. This search is independent of engine, but, radial search is
    supported only for FAISS engine out of all native engines.
    
    Signed-off-by: Vijayan Balasubramanian <[email protected]>
    ---------
    
    Signed-off-by: Vijayan Balasubramanian <[email protected]>
    VijayanB committed Oct 9, 2024
    Configuration menu
    Copy the full SHA
    0be8ab7 View commit details
    Browse the repository at this point in the history
  6. Update CHANGELOG

    Signed-off-by: Vijayan Balasubramanian <[email protected]>
    VijayanB committed Oct 9, 2024
    Configuration menu
    Copy the full SHA
    0dd3677 View commit details
    Browse the repository at this point in the history
  7. update setting name

    Signed-off-by: Vijayan Balasubramanian <[email protected]>
    VijayanB committed Oct 9, 2024
    Configuration menu
    Copy the full SHA
    c399218 View commit details
    Browse the repository at this point in the history
  8. Fix spotless

    Signed-off-by: Vijayan Balasubramanian <[email protected]>
    VijayanB committed Oct 9, 2024
    Configuration menu
    Copy the full SHA
    d73918c View commit details
    Browse the repository at this point in the history
  9. Rename variables

    Signed-off-by: Vijayan Balasubramanian <[email protected]>
    VijayanB committed Oct 9, 2024
    Configuration menu
    Copy the full SHA
    00c0ed1 View commit details
    Browse the repository at this point in the history