Back in 2010 I created a prototype of a search engine based on web usage behavior. Back then I was heading a SEO-Driven startup and got so annoyed with search engine optimization, that I thought about ways to classify the web that cannot be optimized.
Firstly a search engine like this should not rely on backlinks. That will always lead to search engine optimization! More money … more SEO aktivity … more backlinks … better ranking … regardless of the quality of the content.
Well, let the people decide what websites are good. If a lot of people visit a website repeatedly and spend time on the website, it must have valuable content to that user.
Collecting this information a ranking can be constructed in which each user can cast one vote for a search query. Let’s say I work with Java Data Objects (JDO) and visit many pages about this topic. A search about “JDO” can take my usage data to construct my personal ranking. My personal ranking can then be merged with everybody else’s personal ranking, and the best websites on the topic come at the top of the search results page.
To make this more awesome you could personalize the search results to my taste. Maybe I am one of a few programmers that has a lot of experience with JDO. If there are very many beginners out there, beginners webpages would show on top of the search engine result page. However, if only the usage date of like-minded users, e.g., other programmers that have experience with JDO, is used for constructing my result page, then very valueable results would show.
This approach almost cannot be optimized, every user can only have one ranking for a search. To trick this algorithm you would need to create lots of artificial users. A user must have a minimum diversity in his/her usage behavior in order to be considered for contributing to the ranking. Creating users like this difficult and such users can easily be excluded.
Personalized results cannot be optimized at all. However creating personalized results in real time with large data sets is a challenging task.
I put all these ideas into www.seekity.com. This is a beta project. It runs completely in Google’s App Enginge, because I wanted to test developing with Google Web Toolkit.
Together with my buddies at 1xINTERNET we plan on rebuilding it based on Drupal / Solr with a shiny interface and all the Drupal-goodness.
Let me know what you think about this