Oddbean new post about | logout
 It is a centralized solution divided into three stages (indexer, engine, and web application).

The indexer basically starts from my public key and retrieves the people I follow, then iterates through the list of people I follow and does the same, and so on, until the searches return no more results.

The indexer inserts users into a Trie tree, where the public key is the address in the tree, and at the end of each branch is a user. This user has a linked list of addresses in the tree for the users they follow. So, I have a mix of a graph and a tree for efficient searching.

Finally, this "search engine" application is not directly exposed; there is a web application that actually makes requests to the search engine, similar to an unauthenticated graph database. The API does the same.

The search is conducted in the graph starting from the user initiating the search; if no public key is provided, the search begins from my profile.

P.S.: There is still a minor bug that's distorting the search results; I'll fix it as soon as I have time.