Displaying and managing tree data of 10 to 100k+ top level nodes

I need to allow users to select products / sub products that are up to 3 levels deep.

We also are only able to display 100 top level products at once due to technical constraints, this is currently achieved by requiring the user to type a certain number of characters and it will fetch nodes based on the search criteria.

Here is an example picture of the input:

enter image description here

The data structure seems to fit this searchable tree select well, but general feedback currently is that it is difficult to use with 1000s of products.

Any thoughts on how this could be improved or if there would be any better UX ideas for handling 1000s of nodes?

Please let me know if I can provide any more information, this is my first time reaching out to the UX stackoverflow 🙂