I would like users to be able to query on and select an address from a list of 20,000 addresses. Choice list is way slow as is external select. This is a public survey so internal locator approach appears to not be an option.
In this scenario, you should use a cascading select (and likely an external select to move the choice list from the main part of the form) to divide the addresses - perhaps by street name, postal code or another grouping?
Retrieving data ...