Sometimes a little knowledge can go a long way in implementing a scalable search solution. Like in the case of not returning all the results from a SharePoint Microsoft.Office.Server.Search.Query.FullTextSQLQuery. If your search returns hundreds or even thousands of results you should consider paging the results. It is fairly easy to page search results in SharePoint. The key is to return the total number of pages available in the results when you first issue the query. Then based on that number you can pass in your page number and calculate the starting row for the search and set the StartRow property. The following code shows some simple code to get up and running on implementing paging search results. This example can also use the KeywordQuery object also.
This example uses Microsoft.Office.Server.Search and System.Data namespaces.
public static DataTable GetFTSQueryPagedSearch(Int32 pageNumber)
DataTable results = new DataTable();
using (SPSite site = new SPSite("http://basesmcdev2/sites/tester1"))
fts.ResultTypes = ResultType.RelevantResults;
ResultTableCollection rtc = fts.Execute();
using (ResultTable relevantResults = rtc[ResultType.RelevantResults])
int totalNumberOfPages = (int)Math.Round((double)relevantResults.TotalRows / pageSize);