Server side we have a mongodb database that contains the list of all the searchable objects. It is generated mostly using common stars and nebulae catalogs.
For streaming the data with good performances we also have an amazon S3 instance where we store compressed tiles of data. Each tile contains information about objects in a small region of the sky inside a given magnitude range, so when the user zoom in and out, we can download only the tiles of the visible portions of the sky.
That's how we can render the whole Gaia catalog, containing about 1 billion stars. You can try it: zoom in, and you will see the stars being loaded on the fly.