docs: added opensearch-jvector plugin docs - #12866
Conversation
|
Thank you for submitting your PR. The PR states are In progress (or Draft) -> Tech review -> Doc review -> Merged. Before you submit your PR for doc review, make sure the content is technically accurate. If you need help finding a tech reviewer, tag a maintainer. When you're ready for doc review, tag the assignee of this PR. The doc reviewer may push edits to the PR directly or leave comments and editorial suggestions for you to address (let us know in a comment if you have a preference). |
--------- Signed-off-by: Kush Bhalodi <kush.bhalodi@ibm.com> Co-authored-by: Kush Bhalodi <kush.bhalodi@ibm.com>
Signed-off-by: Kush Bhalodi <kush.bhalodi@ibm.com>
Signed-off-by: Kush Bhalodi <kush.bhalodi@ibm.com>
Signed-off-by: Kush Bhalodi <kush.bhalodi@ibm.com>
30b2a74 to
dd76baf
Compare
kolchfa-aws
left a comment
There was a problem hiding this comment.
Thank you, @kush992! A couple of clarifying questions for you before I start rewriting.
| | **Vector engines** | `Nmslib`, `Faiss`, `lucene` | `jvector` (primary), `lucene` | | ||
| | **Concurrent ingestion** | Supported by some vector engines | `jvector` supports concurrent inserts, enabling high-throughput ingestion | | ||
| | **Index update cost** | Usually a full rebuild required on merge | Incremental merges — no full rebuilds for updates | | ||
| | **Memory efficiency** | In-memory indexing | DiskANN-style quantization | |
There was a problem hiding this comment.
Is this line accurate? k-NN plugin supports disk-based vector search with binary quantization (on_disk mode) https://docs.opensearch.org/latest/vector-search/optimizing-storage/disk-based-vector-search/
There was a problem hiding this comment.
This should be re-phrased. On opensearch-jvector, it is: diskAnn-style vector search with PQ (product quantization)
| - **Incremental Index Updates** - `jvector` allows incremental insertion of vectors into existing indexes. This providing efficiency gains over full index rebuilds for workloads involving frequent updates, particularly for large graph-based indexes. | ||
| - **Quantized DiskANN with Reranking** - `jvector` supports DiskANN-style quantization combined with reranking, delivering significant performance improvements for datasets larger than available memory. This approach is particularly effective for large-scale deployments where traditional in-memory indexing is not feasible. | ||
| - **Product Quantization (PQ)** - PQ is implemented with high-performance SIMD optimizations and separate codebooks to enable fast vector searches with low memory usage. | ||
| - **Advanced Quantization Techniques** - `jvector` includes advanced capabilities such as Non-Vector Quantization (NVQ), and Anisotropic PQ, enabling more efficient and accurate similarity computations beyond standard quantization approaches. |
There was a problem hiding this comment.
Does NVQ stand for non-uniform vector quantization and not non-vector quantization?
There was a problem hiding this comment.
Thanks @kolchfa-aws . Good catch. I missed this. It should be non-uniform vector quantization.
Here is the source: https://arxiv.org/pdf/2509.18471
There was a problem hiding this comment.
Yes, it should be Non-Uniform Vector Quantization (as per the feature proposal). Change is coming right away
| bin/opensearch-plugin install opensearch-jvector | ||
| ``` | ||
|
|
||
| ## OpenSearch compatible features |
There was a problem hiding this comment.
Does this mean k-NN features that jVector supports?
Signed-off-by: Kush Bhalodi <kush.bhalodi@ibm.com>
Signed-off-by: Fanit Kolchina <kolchfa@amazon.com>
kolchfa-aws
left a comment
There was a problem hiding this comment.
Thank you, @kush992! Doc review complete - I pushed my changes into your PR. Please review my changes and see my outstanding questions. Thank you!
|
|
||
| Repeat the following steps on every node in the cluster: | ||
|
|
||
| 1. Stop OpenSearch on the node. |
There was a problem hiding this comment.
@kush992 Installing the plugin by name only didn't work for me. These are the steps that worked (installing from Maven Central, as specified in the plugin repo user guide). If you have any suggestions for these steps, please let me know.
There was a problem hiding this comment.
Unfortunately, I was not able to have it done for 3.8.0 (see please opensearch-project/opensearch-build#6251), so we would need to follow this guide [1] (the plugin is published in Maven [2]):
bin/opensearch-plugin install org.opensearch.plugin:opensearch-jvector-plugin:3.8.0.0
@kush992 could you please update the instructions? thank you
[1] https://docs.opensearch.org/latest/install-and-configure/plugins/#core-plugins
[2] https://repo1.maven.org/maven2/org/opensearch/plugin/opensearch-jvector-plugin/
There was a problem hiding this comment.
Thank you, @reta! Updated the steps in a new commit.
|
|
||
| The `disk_ann` method supports the following parameters. | ||
|
|
||
| Parameter name | Default | Description |
There was a problem hiding this comment.
This table doesn't have the "Required" and "Updatable" columns, as do the other parameter tables. Should we add these here?
There was a problem hiding this comment.
All these values are 'updateable'.
If they're not set, they get set to the 'default' values. I'm not sure if these columns would help here.
The only place where 'required' is helpful would be in the table above this for 'disk_ann' property.
There was a problem hiding this comment.
I added a sentence about them being optional. This assumes they get default values. The Supported methods table, which has Requires training, not Required, doesn't map onto an obvious edit. And I believe "Updatable" in the other tables refers to "can be changed after creating an index", so maybe we should add an "Updatable" column?
There was a problem hiding this comment.
@kolchfa-aws - sorry, responded to this on slack with suggestions. Kush made changes to the PR before it got merged, so we should be good
Signed-off-by: Fanit Kolchina <kolchfa@amazon.com>
Signed-off-by: Kush Bhalodi <kush.bhalodi@ibm.com>
Signed-off-by: Fanit Kolchina <kolchfa@amazon.com>
kolchfa-aws
left a comment
There was a problem hiding this comment.
Thanks for making the updates, @kush992! LGTM
* docs: added opensearch-jvector plugin docs --------- * chore: corrected name in opensearch-jvector docs * docs: rephrased plugin installation * docs: updated dead link in performance-tuning * fix: typos in opensearch-jvector document * Doc review * Address comments * docs: added updatable and required columns for disk ann params * Update column name and add defaults for num pq spaces --------- (cherry picked from commit 0ca6d3b) Signed-off-by: Kush Bhalodi <kush.bhalodi@ibm.com> Signed-off-by: Fanit Kolchina <kolchfa@amazon.com> Signed-off-by: opensearch-ci-bot <opensearch-infra@amazon.com> Co-authored-by: Kush <85061303+kush992@users.noreply.github.com> Co-authored-by: Kush Bhalodi <kush.bhalodi@ibm.com> Co-authored-by: Fanit Kolchina <kolchfa@amazon.com>
Description
Added
opensearch-jvectorplugin documentation.Issues Resolved
Closes #[Replace this text, including the brackets, with the issue number. Leave "Closes #" so the issue is closed properly.]
Version
List the OpenSearch version to which this PR applies, e.g. 2.14, 2.12--2.14, or all.
3.5 and above
Frontend features
opensearch-jvector_plugin_doc.mp4
Checklist
For more information on following Developer Certificate of Origin and signing off your commits, please check here.