Fast wildcard searches with trigrams
mattwarren.org
mattwarren.org
I also tried using a trie, but as the linked post states, they are only good for starts-with or ends-with searches. They can't be used for contains searches, i.e. "java
It's been a good chance to learn some optimisation techniques and new data structures, such as trigrams and bit map indexes (coming up in the next post)
Also AFAIK SO still use their own custom solution for tag searches. They've moved to Elasticsearch for regular searching, but not tag searches. So their must be some benefit to their custom solution.