feat: Expose checkIntegrity() method to Python bindings#644
Open
jsbattig wants to merge 1 commit intonmslib:masterfrom
Open
feat: Expose checkIntegrity() method to Python bindings#644jsbattig wants to merge 1 commit intonmslib:masterfrom
jsbattig wants to merge 1 commit intonmslib:masterfrom
Conversation
Add check_integrity() method to Python Index class that validates HNSW graph structure including: - Connection validity (no invalid neighbor IDs) - No self-loops - No duplicate connections - No orphan nodes (elements with no inbound connections) Returns dict with: valid, connections_checked, element_count, min_inbound, max_inbound, errors[] This enables CIDX to perform health checks on HNSW indexes.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add
check_integrity()method to Python Index class that validates HNSW graph structure.Changes
check_integrity()method to the Python bindings inpython_bindings/bindings.cppReturn Value
Returns a dictionary with:
valid: Boolean indicating if graph passed all checksconnections_checked: Total number of connections validatedelement_count: Number of elements in the indexmin_inbound: Minimum inbound connections for any nodemax_inbound: Maximum inbound connections for any nodeerrors: List of error messages if any issues foundUse Case
This enables applications using hnswlib to perform health checks on HNSW indexes, detecting corruption or structural issues that could affect search quality.
Testing
The method has been tested with real HNSW indexes in the CIDX (Code Indexer) project.
🤖 Generated with Claude Code