No there are no direct flights to Indore. You will have to fly to Mumbai or Delhi and book a separate domestic flight to Indore. I would recommend flying to Mumbai and booking a domestic flight via Indigo airlines.
It depends. If you prefer a direct flight with the least travel time, I would recommend Air India. Air India direct flights only operate from New York, SF, Chicago. Travel time is roughly 14-16 hours. If you prefer comfort, I would recommend flying through Emirates or Qatar airlines. They have a layover at Dubai/Doha. Travel time can range from 21-24 hours. If you are looking for low cost airlines, there are several options via Europe.