Functional Search is a game changer. It is a new type of search we invented specifically for apps.

With Quixey, you don’t need to know the name of an app to find what you want. Functional Search allows you to search for apps by answering the question, “What do you want to do?” and Quixey finds apps that can complete your task.

Other search engines just scan through app titles and descriptions to see if an app is right for your query. But this isn’t enough.

Apps do more than can be described in just a few hundred words. Apps are complex and complete multiple functions. For example, a picture editor may remove red eye, crop photos, create photo albums and more.

At Quixey, we give each app special attention. Functional Search goes above and beyond simply looking for keywords. Even if your query does not match the words in the apps’ title or description we can still find you the right apps.

Check it out:

In the left hand column, you’ll see the names and official descriptions of corresponding apps. You’ll notice the search query is not listed in any of the apps’ official information. Yet, Quixey has no problem finding  the right apps.

So how does it work?

Functional Search is all about data. Beyond the standard app description, we collect hundreds of snippets of data about each app. You’ll find these snippets in right hand column. We  don’t display all of our data (for obvious reasons) but we do show you a few snippets directly related to your query.

So where do we get our data?

Answer: The web.

Suppose you asked your friends, “Hey, what’s the best app for x?” Your friends would read every blog, review site and everything else on the web that talked about apps to find the right one. That’s exactly what our scrapers and crawlers do. We crawl the web (blogs, review sites, social networks, foreums and more) to learn about each app.  Simply put, our system is doing the  same thing that your friends would do, but automatically. It’s pretty cool.

We wouldn’t want to give away all of our secrets, so we’ll leave it at that.  Happy searching!

Seminar Series Coming Soon

August 25th, 2011 | Posted by Quixey in Seminar Series - (0 Comments)

We love sharing knowledge internally at Quixey and we want to share with you too.

We are a unique team and everyone is an expert on something. Thus, every Friday we host a Seminar Series at the Quixeyplex. Quixiers and guest speakers deliver talks on everything from machine learning to public speaking to the history of Dracula.

So stay tuned, soon you will be able to view the highlights of our Seminar Series right here on our blog!

This post was written by Nicholas Feinberg, one of Quixey’s awesome engineering interns. He is a 4th-year Computer Science student at the top of his class at UC San Diego. He once wrote a Flash game that was played by 300,000 unique users.

One of the best parts of working at Quixey is being able to work on cool projects and being able to take ownership of my work. When I first started at Quixey, I was assigned to build an automated testing system for the jQuery and AJAX code on our site. I learned a lot in the process, and thought it would be valuable to share here.

In our early days, we had a process of manually checking various pages and processes (searching, logging in and out, etc) to make sure that everything worked. Needless to say, the manual testing process was not scalable, and we set out to create an automated system.

We were surprised to find that there weren’t many tools suitable for testing an AJAX site. Of course, there are a great number of unit testing systems for JavaScript out there, such as JsUnit — the problem is that they’re built to test the behavior of JavaScript functions, and not whole DOM-based web GUIs outputted by Javascript code.

At first, we thought a good solution would be to use Selenium, a QA tool that describes itself as a “web application testing system”. Selenium lets you specify actions to test — clicking a button, visiting a URL, entering text, etc — and reports back on whether they work.

The first Selenium product we tried was a Firefox add-on called Selenium IDE. But we quickly discovered we couldn’t write proper unit tests with that – it was only designed for testing rapid prototypes on the fly.

The full Selenium WebDriver product would have let us write proper unit tests – it looked like a solid tool that did what we needed. But since Quixey is written in mostly Python and JavaScript, the lack of support for these languages was a deal breaker.

After a bit more searching, we came across a framework called Windmill, which is basically Selenium for Python and JS — a perfect match for our web stack.

It took me about three weeks to cover a large portion of our site functionality with Windmill tests, automating sequences of events like the clicking and typing required for a user login. It’s still something of a joy to watch the machine automagically type things in. Like your own home-made ghost! Silly, yes, but viscerally satisfying.

The downside of Windmill is that it was designed by a single group of programmers for a single project. As a result, it’s still slightly buggy and could use more documentation.

Today, Windmill tests are an essential piece of Quixey’s QA and deployment processes. It’s a powerful and versatile testing framework, and we look forward to supporting and benefiting from its future development.

Funny right?

Too bad average star ratings are actually a problem – often to the point of hindering your search experience.

The biggest issue with star ratings is that each user rates apps using their own criteria. Therefore, averaging different users’ scores is meaningless because each individual expects something different from each app.

The core of this issue is that the ratings rarely address the app’s functionality. They rarely answer the question – does this app do what it says it does?

Even though the app in the comic is supposed to warn you when a tornado is nearby, most of the reviews have nothing to do with the app’s ability to perform this task. Individual users rave about this app for different reasons:

  • Five stars because it has a nice user interface
  • Five stars because the app doesn’t crash
  • Five stars because it has multiple location settings

Clearly none of these reviews have anything to do with the app’s ability to alert you of nearby tornados.

But what about the last review? The user gave it one star because it didn’t warn him about the impending natural disaster.

Big problem. This app has an average of four stars – yet it could get you killed!

Although app ratings haven’t killed anyone yet (at least not that we know of) – average star ratings often cause people to choose the wrong apps. Last week, MIT released a study with the same findings – average star ratings are unhelpful because each reviewer rates apps differently. Devavrat Shah, a professor at MIT’s Laboratory of Information and Decisions Systems, put it perfectly, “If my mood is bad today, I might give four stars, but tomorrow I’d give five stars…Your three stars might be my five stars, or vice versa.”

Luckily, at Quixey, star ratings are just a small part of how we determine what apps best suit your needs. You want to find the right apps for your needs – the right app for your query.

To ensure you have the best searching experience, we constantly crawl the web to learn what each app can do. Quixey aggregates app data from thousands of blogs, forums, social media sites, review sites and other sources. We have hundreds of pieces of data about each app – average star ratings are just one of them.

So the next time you are trying to find a tornado alert app don’t be fooled by those average star ratings – just search for it on Quixey and we guarantee you will find what you want.

The Quixey Tweet Awards – Take 3

August 11th, 2011 | Posted by Quixey in Tweet Awards - (1 Comments)

Back in May, we started the Quixey Tweet Awards and we wanted to bring it back. Everyone has been extremely supportive over the past few months and we couldn’t have gotten this far without you. With that – the shout outs begin!

The Winning Award 
Startup of the day: Quixey http://ow.ly/5VYbR
startupaday
August 10, 2011
The Ooooh Baby Award
Ooooh baby! Quixey – a search engine for APPS! http://bit.ly/oyIyUL Can limit to OS, and tells you cost/desc *drooling*
scbrown5
August 10, 2011
The Spreading the Cross-Platform Vision Award
New Quixey service acts like search engine for apps, works across devices and platforms http://goo.gl/ivFwm
AdEase_Jason
August 9, 2011
The Making Lives Better Award
To make your job/life EASIER…there’s an APP for that. Check out this GREAT search tool. http://t.co/l0J4JXS @GuildWest
GuildWest
August 8, 2011

The Useful and Fun Award

Website of the Week: Quixey: Want to find more apps on web? Discover amazing apps that are useful and fun? Well,… http://bit.ly/oDk8yG
IamFreakGeek
August 7, 2011
The Moving Up Award
Quixey movingup: http://t.co/bQNHA67 via @fastcompany
KevinD
August 7, 2011

Even if your tweets weren’t featured this week, you can rest assured we read them and we appreciated them. From all the Quixiers: thanks for your support!

 

How to Build a Search Engine

August 9th, 2011 | Posted by Quixey in Technology - (0 Comments)

This post was written by one of our search advisors, Eric Glover.  Eric Glover has more than twelve years of commercial web search experience and a Ph.D. in Artificial Intelligence from the University of Michigan. He has held key technical roles at multiple search engine companies and is a recognized expert in web scale machine learning and categorization.

In this blog post, I’d like to talk about the main components of search. Search has five main parts:Step 1: Receive the user’s query. Step 2: Parse the query to construct a ‘database query.’ Step 3: Using the database query, assemble the ‘consideration set’ of results to consider for scoring. Step 4: Score the consideration set. Step 5: Present results to the user based on the scores from Step 4.

These steps are common to all major search engines. Notably, Google, eBay, Bing, and Amazon apply unique algorithms and search different data for different purposes, and end up with different results.

Quixey is particularly unique among search engines. We invented a new type of search – functional search – specifically for apps. In this post, I’ll explain what standard search engines do and what we do differently.

Step 1 – Receive the user’s query.

Receiving the user’s query isn’t as simple as receiving what the user has typed. Sometimes external factors influence the query’s meaning – factors like the user’s country, browser, language, or device.

Screen shot 2011-08-09 at 12.01.52 PM.png

This is particularly crucial for an app search engine and functional search. For example, whether users search from an iPhone or an Android phone should influence how the search engine understands their queries. Moreover, someone in Russia may want different apps than someone in the United States.

Step 2 – Parse the query to construct a ‘database query’.

The old-school, simple method of parsing a query is to split it into individual words. Sometimes this involves removing ‘stop words’ (the, is, at, which) and the ‘stem’ of the query – for example, “help me to do my taxes” could be simplified into ['do','help','me','my',taxes','to'], or even something as simple as ['tax'].

As you might imagine, this is a dangerous strategy. It ignores the fact that user intent is not always a direct function of the individual words entered by the searcher. When searching for apps, “convert mp3 to flac” is a very different query than “mp3 AND flac.” Likewise, “tax” and “do my taxes” mean very different things. Misspellings, extra words, missing words, and unrelated words will severely throw off a search engine that doesn’t make this distinction.

It is a huge task to properly parse queries for your database. Most other search engines ignore the problem or solve it poorly. A query like ‘restaurants’, when interpreted incorrectly, will return so many results that the search engine won’t be able to score them all. Linguistics, intent-analysis and data considerations make this step extremely difficult.

Step 3 – Using the database query, assemble the ‘consideration set’ of results to consider for scoring.

Once the query has been transformed for optimal searching, you can use your new ‘database query’ to query the database. It is worth noting that the database query might have virtually no text in common with the keywords the user entered.

You can then select a consideration set based on the database query. The consideration set defines which results are worth considering. For example, queries like “paleontology” might generate a reasonably small consideration set, but queries like ‘racing games’ can generate consideration sets so large that scoring is impractical. That means it’s really important to parse queries properly in Step 2, as well as use algorithms that form manageable consideration sets.

Not only must the consideration set be small enough, but the algorithms used to generate it must be computationally efficient.

Step 4 – Score the consideration set.

A CS grad student writing a paper about ranking can win a Best Paper award even if his algorithm takes an hour to run a single query. Unfortunately, a commercial search engine can’t tell the user to wait hours for results. This creates a trade-off, often not discussed in academic circles, between the result response time and quality of results. The quality of results also correlates with the number of results considered.

Scoring is often the most computationally costly part of a search. Scoring results works as follows:

  1. Map each result to a set of (usually numerical) features, like the keywords’ frequency in the description.
  2. Apply a function to these features to calculate a meaningful score.

Competitors in the search space are differentiated by the data they access and the algorithms they use to score results. Quixey stands apart because of the wealth of data we use to score apps, and the precision of our scoring algorithm.

This combination is so successful because we invented functional search specifically for apps. Apps have a different set of important features than static web pages, so the standard text features sought by traditional search engines aren’t effective for finding apps. What makes one web page a better result than another is meaningless for apps, which often lack official home pages.

For example, the number of times an app is downloaded is more important than how many people link to its homepage. Likewise, the number of reviews might not be useful, because this metric strongly favors older apps.

Step 5 – Present results to the user based on the scores from Step 4.

It might seem easy to present results to the users by sorting by score. Unfortunately, this problem is more complex. What information should you display, and how do you organize the results? Should a result with a score of 49.9999 really display below a result with a score of 50.0000?

A simple ‘title text-match’ app search works fine when users knows the names of the apps they are looking for. However, our data shows that 86% of queries describe functions, not app names. People need to be able to find apps even if they don’t know what those apps are called.

Any type of ranking system is quite difficult and requires a lot of expertise. Our search requires collecting the right data, analyzing queries, effectively using and building a database, scoring based on the right features, and presenting the results in an intelligent way that helps users determine what they want.

In my next post, I will go into more detail about how Quixey does search differently.

Today was a big day for us – we launched app search for Facebook, Linkedin, Twitter and Foursquare. When you think of apps, the first thing that probably comes to mind is smartphones. But mobile apps are only a small part of the app ecosystem. Quixey offers app search for your phone, browser, desktop, and the web. Today we’ve added social networks to that list.

Facebook is the prime example of how social apps can be useful. Just like you add apps to your smartphone, you can add apps to your Facebook profile. Facebook is the largest app platform, with the most users (750 million) and the most apps (over one million). Mark Zuckerberg has said it time and again: apps are the future of Facebook.

One example of a popular Facebook app is BranchOut. It allows you to tap into your friends’ networks to find out about new career opportunities at top companies.

Screen shot 2011-08-04 at 6.21.05 PM.pngThen there is Yobombo. Want to chat with your friends across the world? Yobombo translates languages instantly while you chat and send messages on Facebook.
Screen shot 2011-08-04 at 6.21.37 PM.png
LinkedIn is another interesting platform. It’s been growing rapidly, today announcing that it acquires two users every second. LinkedIn only has 20 apps, but we don’t doubt that that collection will explode by the end of the year. With competition from players like BranchOut, LinkedIn may be inspired to expand its app collection to create the ultimate professional platform.

Apps add additional functionality to LinkedIn and make it better. For example, the LinkedIn edition of the SlideShare app allows you to share presentations with your colleagues.

The Events app allows you to see what events your LinkedIn connections are attending. Events allows you to meet up with prospects at industry events or re-connect with old contacts.

On both Facebook and Linkedin, you install apps directly on your account. However, Twitter and Foursquare work differently. Outside apps are built around information from Twitter and Foursquare to offer new features and functions.

For example, TweetDeck is an app that accesses information from Twitter to let you monitor your tweets, retweets, and hashtags from a totally new interface.

Foursquare apps work in the same way, accessing information from Foursquare to offer you additional features. There are over a million apps that tie into Twitter, and thousands of apps tie into Foursquare.

Screen shot 2011-08-04 at 6.14.43 PM.png

These apps are pretty impressive, but without app search they might as well not exist. Everyone knows about Farmville, but how many other Facebook apps can you name? What about LinkedIn, Twitter and Foursquare apps? You probably can’t name many.

We don’t blame you. Until today, it has been nearly impossible to find them.

Companies like Facebook have been trying (and seriously struggling) to tackle app search for years. At Quixey, we’re taking on a problem that no one else has been able to solve, and today we are one step closer to solving it.

We have said it before and we will say it again: there is an app for everything. We are committed to helping you find those apps so you can live, work, and play better.

Enjoy our new search and stay tuned for more exciting announcements coming soon!