Miles no es tanto, y miles divididos por docenas es aún menos. Probablemente pueda cargar todo esto en la interfaz y hacer sugerencias de tipeo y detección de errores tipográficos en la interfaz, luego tratar solo con coincidencias de cadenas exactas en la base de datos. Eso haría un índice btree en (food, price)
muy eficiente. (Presumiblemente, el país no es necesario ya que la comida implica el país, ¿o no funciona de esa manera?)