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.
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.