There is a thread happening internally on a DL (discussion list) re. hooking up Tafiti Search Visualization to MOSS 2007 Search engine to provide a slick UX on top of Enterprise Search.
The current thinking (unvalidated) is you could do the following:
You could hack the following method (where I put the comments):
private void SoapSearch(SourceType sourceType, string query, int first, int count) { try { SourceRequest[] sr = new SourceRequest[1]; sr[0] = new SourceRequest(); sr[0].Source = sourceType; sr[0].Offset = first; sr[0].Count = count; sr[0].ResultFields = GetResultFieldMask(sourceType);
SearchRequest request = new SearchRequest(); request.Query = query; request.Requests = sr; request.SafeSearch = SafeSearchOptions.Strict; request.AppID = SettingsWrapper.LiveSearchAppID; request.CultureInfo = "en-US"; if (sourceType == SourceType.PhoneBook) { // Using Redmond as the search location. request.Location = new Location(); request.Location.Longitude = Double.Parse("-122.33482360839846"); request.Location.Latitude = Double.Parse("47.6082462871061"); request.Location.Radius = Double.Parse("5"); } MSNSearchService searchService = new MSNSearchService(); SearchResponse searchResponse; searchResponse = searchService.Search(request);
// You could add the SharePoint search logic in here// you would need to transform the XML from the SharePoint result set// to be compatible with the Live Search Service XML// then you could use the existing JavaScriptSerializer()
// You could add the SharePoint search logic in here
// you would need to transform the XML from the SharePoint result set
// to be compatible with the Live Search Service XML
// then you could use the existing JavaScriptSerializer()
LiveXmlSearchResults result = // the MOSS query logic would go here and return a LiveXmlSearchResults object CreateXmlSearchResults(sourceType, searchResponse.Responses[0]); JavaScriptSerializer serializer = new JavaScriptSerializer(); string json = serializer.Serialize(result); byte[] jsonUtf8 = System.Text.Encoding.UTF8.GetBytes(json); Response.StatusCode = 200; Response.ContentType = "text/javascript"; Response.OutputStream.Write(jsonUtf8, 0, jsonUtf8.Length); } catch (SoapException e) { throw new HttpException((int)HttpStatusCode.InternalServerError, "Internal Server Error", e); } catch (WebException e) { throw new HttpException((int)HttpStatusCode.InternalServerError, "Internal Server Error", e); } }
I read a post on Angus Logan's blog about using Tafiti to provide a UX on top of Enterprise Search. ...
Kudos to Kevin Marshall of Clarity Consulting for being the first to blog SharePoint & Tafiti . Now