I can't blame you for being confused. There is a lot of seemingly contradictory information out there! For instance, Google's initial search API offering came in the form of a SOAP API which delivered up to 1,000 results. While this API offered a number of interesting features, it also had a fairly low rate restriction which limited the number of times you could query it over a 24-hour period. Even though this API was deprecated in December 2006, the service to my knowledge has not yet been discontinued for persons who obtained an API key before that cutoff, so you'll still find a number of sites and applications out there that use it, not to mention articles that refer to it as the greatest thing since sliced bread.
What's more, the result limitations for the AJAX API are only officially documented in a couple of blog posts (i.e., the ones announcing increases in the results limitations) and in a single, rather obscure note in the Search API's Class Reference linked below:
You'll have to scroll down to the properties listing of the google.search.Search object and look at the very end of the .cursor property. Beyond this one note, I think the only place it's really mentioned is in the Group.
Speaking of the Group, though, even that contains a multiple of different numbers. For instance, when the AJAX Search API was originally released, you could not retrieve more than 8 results at all. So there are a number of posts stating a result limit of 8. Then the number jumped, for most searchers, to 32. So you have posts talking about that limit. Then to 64. Local and blog results were left at 8, and then Local results were increased to a total of 32. Blog result limits remain at 8 to this day, and if you're not confused yet by all those numbers, you're a smarter person than I!
All of that said, here is where things stand today. As mentioned in my previous post on this thread, you can retrieve up to 64 results, across 8 pages of 8 results each, with most searchers. The exceptions are Local, which can retrieve up to 32, across 4 pages of 8 results each; and Blog, which can retrieve only one set of up to 8 results.
At first glance, this all may seem rather restricting, but I think that, for most purposes, the result limits as they stand now are generally adequate. Does that mean I wouldn't like to see more? No, I would love to see more, especially local results. Rather, it is an acknowledgment that the AJAX Search API was designed to provide basic search functionality to an application. It is not intended for deep searching, data mining, or SEO operations. And I think most people will agree that, when just running a search for something on the internet, the vast majority of the time, we'll click on something long before we get to the 64th result OR we'll refine our search.
It should also be noted that the Search API is NOT intended to be the central emphasis of a website or the core of a business model. The TOU are explicit in this in a number of locations. For example:
- "You will not, and will not permit your end users or other third parties to incorporate Google Search Results as the primary content on your Property or any page on your Property [or] display business listings Search Results from the Google Maps service on any Property which has the primary purpose of making available residential or business address listings or telephone directory listings" (excerpted from section 1.3)
- "In using Google Brand Features, you may not have the Google logo as the largest logo on your Property (except as displayed in the Google Search Results itself) [or] display a Google Brand Feature as the most prominent element on any page of your Property" (excerpted from section 2.2)
So, to answer your question - Are all the Google mashups using small result sets to build their businesses? - directly: no, the Google AJAX Search API merely augments their current businesses and application functionality.
In the case of the mashups that you've seen at
mashable.com and elsewhere, there are a number of sites out there that combine the Google Maps API with proprietary data sources other than the Google Search API. For example, one site that I work with (
http://www.scrantondirections.com ) has its own database of businesses, etc., that it pushes to a Google Map. These results may be augmented by Google LocalSearch results, but the primary focus is on the proprietary data. Other sites will combine the Maps and Search APIs with some other data to provide unique information. For instance,
http://www.walkscore.com uses a number of LocalSearch instances, filters their results through a metric that calculates your ability to survive without a car at a given address, and then shows you all of the results using the Maps API. So it is absolutely possible to leverage even the "small result set" of the Search API to develop effective applications.
That said, I will be the first to admit that you may need something different in some situations. In those cases, both Yahoo! and Microsoft provide APIs for their respective search engines. Both of these have 1,000 result limits, obtainable across multiple requests of varying sizes, and each has its own benefits and disadvantages. For instance, Microsoft offers a SOAP API that is very simple to use with the SOAP libraries that are out there for virtually every programming language, but you can't just deploy it in an AJAX setting. And at least the last time I checked I didn't think it included anything but web results. Yahoo!'s APIs generally offer the ability to retrieve results in either XML, JSON, or - and this is pretty cool, I think - serialized PHP. This allows them to be deployed in virtually any environment, and the fact that their BOSS API even throws in the ability to re-order results and shuffle in your own - as well as utilize your own branding with it (BOSS = Build your Own Search Service) - makes their offerings at least intriguing. But for those just wanting to add search functionality to their website, they are completely lacking in any form of UI elements. So you can't just copy a couple of lines of JS into your html page and expect to get something you can use, much less looks good. Also, depending on which option you choose, you may find a rate limit restricting you to so many requests (not to be confused with search queries) per day.
So it all boils down to this. At the end of the day, I keep coming back to the Google AJAX Search API because it offers (1) the greatest breadth of search offerings (i.e., web, local, video, blog, news, book, image, and patent); (2) the most flexibility in deployment including everything from pre-defined, wizard-generated JS controls to "low-level" JS API interaction to custom JSONP implementations to server-side REST applications; (3) by far the best API documentation, support, and developer community of the big three search providers; and (4) access to Google results which, for better or worse, are still generally the best/most relevant search results you can find.