I need to implement fuzzy search in our web application. At first we had hardcoded options on our frontend, but now we have to work with database data (only return top 10 candidates). I just want to ask about the best approach how the data flow should be for some input field. My thoughts are:
- User types any character in a search field
- Frontend issues POST request to the Backend
- Backend asks database to start some fuzzy search procedure
- Backend returns List of 10 best results back to the frontend
- Frontend displays them
My two biggest concerns are:
- Can I make this happen on a large scale of data (for example 100 000) under 1 second?
- What algorithm for fuzzy searching this big amount of data for relative short period of time is the best? (I am searching tool names that can consist of 2 and more words for example My Example Tool) - I have checked already some like ULT_MATCH and SOUNDEX but I don't know if it is the right choice
- Is it okay to issue request every time user types a character? Doesn't this amount of HTTP requests halts our application?