That’s a different team, as it happens, but I know their approach is quite sophisticated in terms of all the factors to balance. We need the response almost immediately, and it should consider not only acknowledging the requested filters, but consider the user herself as well as factors like returning a diverse set of results for a given page.
So the tech under the hood involves Lucene, for sure, but also quite a bit of custom work years in the making. Then, the process to retrieve a set of results (and array of listing ids, in essence) is an entirely different service — written in a different language — than the one used to populate the content for the listings. All of this in a matter of milliseconds.
Probably worth a post in itself!