1 result less...
I have been receiving 1 result less than what I ask for... Am I doing something wrong? Is this a bug? Is there an official response to this issue?
The "official" answer is this: The MSN Search Web Service may not return the exact number of results you requested for a variety of reasons. The most common reasons include host collapsing and de-duping. If you're experiencing problems with receiving fewer than expected results with
every query, please repost the details, but the de-duping behavior
is expected with the API for many queries and is consistent with the behavior of our website (
http://search.msn.com).
I'm seeing this behavior too...I ask for 50, and I always get either 48 or 49, I have yet to actually get 50.
Tried with Count=11 (I get 11), with Count=12, I get 11.
This pretty much screws up my $total counter...do I have to work-around this one, or is it possible to actually get 50 when I ask for 50 (regardless of duplicates)?
To get the next set of results, start with the Offset equal to the Count and follow with Count * Page Number for subsequent results. For example, to get ten results starting at Offset 0, make one request. To get the second ten results (11-20), set Offset to 10. Set Offset to 20 for the third set (21-30) and so on. Duplicate removal happens within the result set, so if you ask for 10 and get only 9 it doesn't affect paging.
We're looking into changing this behavior sometime in the future (no ETA at the moment) to return exactly the Count requested. I'll post more here if and when we have decided on the change.
Even on the regular MSN search at
www.msn.com, some results pages will have only 9 results instead of 10. For example, try the query "spots" in MSN and you will only get 9 results on page one. I have even seen 9 results on pages other than page one. Using the API, I have seen that the returns match the online results, so using the API to get 10 results for "spots" will only return 9. What it seems like to me is that when using the API and requesting 10 results really means a request for the 1st page of results. And requesting 20 results really means a request for the first 2 pages of results, and so on. So if any of those pages have only 9 results, then you will get the discrepancy between # of results requested and # of results returned.