dungba88 opened a new issue, #13699: URL: https://github.com/apache/lucene/issues/13699
### Description In Lucene 9.10, we introduced a new algorithm for sharing state between segments to speed up the vector search process. This [article](https://www.elastic.co/search-labs/blog/multi-graph-vector-search) explains the features quite well, and it looks like the idea of the greediness parameter is that we can tune it to control the latency-recall tradeoff: low value means more relaxed search (higher recall but higher latency, global queue less important) and high value means more restrictive search (lower latency but lower recall, global queue more important). However the current code doesn't allow the parameter to be tunable: It will always use the [default value of 0.9f](https://github.com/apache/lucene/blob/main/lucene/core/src/java/org/apache/lucene/search/knn/MultiLeafKnnCollector.java#L61C10-L61C20). I think allow it to be configurable would allow each application to use a value suited to its specific use case and document/query patterns. As per where user can configure this parameters, I'm thinking of 2 places: - Allow it to be configured in `AbstractKnnVectorQuery`, and propagate the value down to `MultiLeafKnnCollector` - Allow it to be configured only in `TopKnnCollectorManager`, and users would need to override `AbstractKnnVectorQuery.getKnnCollectorManager()` We can make a PR, but would like to hear from the community first. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org For additional commands, e-mail: issues-h...@lucene.apache.org