Seeking Guidance on HNSW Index Comparison Between OpenSearch and Milvus #47524
-
|
Dear Milvus Team, Hello! I hope this message finds you well. I'm writing to seek your expert advice on some observations I've made while comparing HNSW implementations between OpenSearch and Milvus. Context & Setup: Both contain 55 million vectors (face embeddings from photographs) Current Observations: (Note: ID people_333 does exist in Milvus but doesn't appear as Top-1) Interesting finding: When I increase the limit parameter in the search query (/v2/vectordb/entities/search), the match rate improves significantly. With low limit + radius: 0.1, I get completely different matches than without these parameters. Questions for Your Expertise: I truly appreciate any insights you can share! The Milvus documentation is excellent, but I believe your team's deep understanding could help clarify these subtle behaviors. |
Beta Was this translation helpful? Give feedback.
Replies: 4 comments
-
|
Could you please clarify if there are differences in the implementation of the HNSW algorithm between Milvus and OpenSearch? Thank you! |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
|
@dmitriivahrushev r u compare opensearch topk search with milvus range search? |
Beta Was this translation helpful? Give feedback.
-
|
Great tips, thanks a lot! |
Beta Was this translation helpful? Give feedback.
"Top-1 match rate between OpenSearch and Milvus is approximately 70%" ----------------------- I think you should compare the recall rate of Milvus and OpenSearch instead of comparing their match rate. Match rate is meaningless. You can use "FLAT" index to perform a full-scan on all vectors to get an actual result, and compare the results of Milvus and OpenSearch with this actual result.
So far as I know, both milvus and opensearch manage data as segments, the default size of a segment is different. Milvus is 1GB per segment, opensearch is 5GB per segment. Each segment has an independent index. Although the M/ef_construction is the same, the hnsw graph is different between milvus segme…