SharePoint CSOM KeywordQuery
We can search SharePoint from CSOM using the KeywordQuery function.
KeywordQuery keywordQuery = new KeywordQuery(context);
keywordQuery.SourceId = Guid.Parse(resultSourceId); // If using a Result Source. Otherwise, remove this.
keywordQuery.QueryText = $"Site: \"{siteColectionUrl}\"";
keywordQuery.SelectProperties.Add("DlcDocId");
keywordQuery.SelectProperties.Add("ParentLink");
keywordQuery.SelectProperties.Add("IdentityListId");
keywordQuery.SelectProperties.Add("SPWebUrl");
keywordQuery.SelectProperties.Add("OCRVersion");
keywordQuery.SelectProperties.Add("IsOCRVersionDiff");
keywordQuery.SelectProperties.Add("FileRef");
keywordQuery.SelectProperties.Add("DocIDLanguageNeutral");
keywordQuery.TrimDuplicates = true;
keywordQuery.EnableQueryRules = false;
keywordQuery.RowLimit = 200;
keywordQuery.SortList.Add("IsOCRVersionDiff", SortDirection.Descending);
SearchExecutor searchExecutor = new SearchExecutor(context);
ClientResult<ResultTableCollection> results = searchExecutor.ExecuteQuery(keywordQuery);
context.ExecuteQueryWithExponentialRetry();