Tuesday, November 4, 2008

Custom Advanced Search Code

1. Add code to Button Click Event
Microsoft.Office.Server.Search.Query.FullTextSqlQuery kwQuery = new Microsoft.Office.Server.Search.Query.FullTextSqlQuery(new SPSite("Top Level Site Name"));
kwQuery.QueryText = "SELECT Title, URL FROM Scope() WHERE FREETEXT(Contents, '" + Custom Text Values + "') and Competitor='"+Custom Values+"'";
kwQuery.ResultTypes = Microsoft.Office.Server.Search.Query.ResultType.RelevantResults; Microsoft.Office.Server.Search.Query.ResultTableCollection results = kwQuery.Execute(); Microsoft.Office.Server.Search.Query.ResultTable tblResult = results[Microsoft.Office.Server.Search.Query.ResultType.RelevantResults];
if (tblResult.TotalRows == 0)
{
lblQueryResult.Text = "No Search Results Returned.";
}
else
{
ReadResultTable(tblResult);
}


2.
public void ReadResultTable(Microsoft.Office.Server.Search.Query.ResultTable rt)
{
#region Create a DataSet and load the returned ResultTable into it
DataTable relResultsTbl = new DataTable();
relResultsTbl.TableName = "Relevant Results";
DataSet ds = new DataSet("resultsset");
ds.Tables.Add(relResultsTbl);
ds.Load(rt, LoadOption.OverwriteChanges, relResultsTbl);
#endregion
#region Add the results to the DataGrid
fillResultsGrid(ds);
#endregion
}