Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private static void RunSearch()
- {
- var hostWeb = "my site";
- using (ClientContext ctx = new ClientContext(new Uri(hostWeb)))
- {
- DataTable resultDataTable = new DataTable();
- DataColumn titleCol = new DataColumn("Title");
- DataColumn pathCol = new DataColumn("Path");
- resultDataTable.Columns.Add(titleCol);
- resultDataTable.Columns.Add(pathCol);
- int currentRowIindex = 0;
- var resultTable = GetSearchResults(0, ctx, "allow");
- if (null != resultTable && resultTable.TotalRowsIncludingDuplicates > 0)
- {
- while(resultTable.TotalRowsIncludingDuplicates > resultDataTable.Rows.Count)
- {
- foreach(var resultRow in resultTable.ResultRows)
- {
- DataRow row = resultDataTable.NewRow();
- row["Title"] = resultRow["Title"];
- row["Path"] = resultRow["Path"];
- resultDataTable.Rows.Add(row);
- }
- currentRowIindex = resultDataTable.Rows.Count;
- resultTable = null;
- resultTable = GetSearchResults(currentRowIindex, ctx, "allow");
- if(null != resultTable&&resultTable.TotalRowsIncludingDuplicates > 0)
- {
- if (resultTable.RowCount <= 0)
- {
- break;
- }
- else
- break;
- }
- }
- Console.WriteLine("Total Results: {0}", resultDataTable.Rows.Count);
- Console.ReadLine();
- }
- }
- }
- private static ResultTable GetSearchResults(int startIndex, ClientContext clientContext, string searchValue)
- {
- ClientResult<ResultTableCollection> results = null;
- try
- {
- KeywordQuery keywordQuery = new KeywordQuery(clientContext);
- SearchExecutor searchExecutor = new SearchExecutor(clientContext);
- keywordQuery.StartRow = startIndex;
- keywordQuery.QueryText = searchValue;
- keywordQuery.RowLimit = 500;
- keywordQuery.RowsPerPage = 500;
- keywordQuery.TrimDuplicates = true;
- keywordQuery.SortList.Add("Rank", SortDirection.Descending);
- keywordQuery.Timeout = 10000; //10 minutes
- results = searchExecutor.ExecuteQuery(keywordQuery);
- clientContext.ExecuteQuery();
- return results.Value.FirstOrDefault(v => v.TableType.Equals(KnownTableTypes.RelevantResults));
- }
- catch (Exception)
- {
- throw;
- }
- }
Add Comment
Please, Sign In to add comment