It looks like some of the hnsw implementations are run with very different parameters which makes it hard to compare apples to apples in the results.
I count seven hnsw implementations that should probably be run with similar parameters (the ones labeled hnsw, plus lucene and weaviate). Without looking at the code I'm not sure if there's more.
e.g. weaviate has M=8..72 and efConstruction=64..512, lucene has M=4..96 and efConstruction=500
It looks like some of the hnsw implementations are run with very different parameters which makes it hard to compare apples to apples in the results.
I count seven hnsw implementations that should probably be run with similar parameters (the ones labeled hnsw, plus lucene and weaviate). Without looking at the code I'm not sure if there's more.
e.g. weaviate has M=8..72 and efConstruction=64..512, lucene has M=4..96 and efConstruction=500