Skip to content

find_symbol(exact=False) does an O(N) client-side substring scan #72

Description

@GoodbyePlanet

Impact: Medium (performance / scaling)

`server/store/qdrant.py:246-263` scrolls the entire collection in pages of 200, lowercasing and substring-matching in Python until it finds 50 matches or exhausts the collection. This reads most of the collection over the wire on every partial-name lookup and is O(N) in collection size.

Recommended change

Create a Qdrant full-text payload index (`PayloadSchemaType.TEXT`) on `symbol_name` and query it with `MatchText`.

Note: the current paging behavior is asserted by `tests/test_store.py:21`, so that test will need updating.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions