Is there any way to tweak the performance of the standard searchdatasource in EPiServer?
The site has 15k pages, and a simple search takes around 10-30 seconds.
Have you done any SQL profiling etc to see what it spends time on? It should first do some select on the index tables which is possibly the heavy part (but not that heavy) even though it is a simple join and select operation. Then it will pull all resulting pages from either the cache or the database, which could be heavy if the pages are not in cache. Odds are that they are though so it shouldn't be very heavy either... Then it will in-memory filter any property criteria you have added which again should be fast... So it could be interesting to try to find out which "stage" takes the most time.