Milhares não é muito, e milhares divididos por dezenas é ainda menos. Você provavelmente pode carregar tudo isso no frontend e fazer sugestões de digitação e erros de digitação no frontend e, em seguida, lidar apenas com correspondências exatas de string no banco de dados. Isso faria um índice btree em
(food, price)
muito eficiente. (Presumivelmente, o país é desnecessário, pois a comida implica o país, ou não funciona dessa maneira?)