I'm not sure that it is the best idea to build such a large index when the program starts. Note that can change SearchView MIN_LIMIT (increase and MAX_LIMIT (decrease) values to make the indexing step quicker.
You can use CallSubDelayed to let the page load the layout and only then build the index.