// Local:NetworkServices:Query() ---> Remote:backend:Query() ---> returns hits with hit:source=backend // All SnippetRequests come to local, and should be rerouted to NetworkServices // which will then go and fetch the snippets from remote backends. // So, change the hit:source=NetworkServices and store original hit:source for later retrieving of snippets public void TransformResponse (HitsAddedResponse response) { // Change the Hit source and add a property with the name of this remote node foreach (Hit hit in response.Hits) { //hit.Uri = new System.Uri (context.Request.Url.ToString () + id.ToString ()); hit.AddProperty (Property.NewKeyword ("beagle:OrigSource", hit ["beagle:Source"])); // Need to replace the existing beagle:Source property foreach (Property prop in hit.Properties) { if (prop.Key == "beagle:Source") { prop.Value = "NetworkServices"; break; } } } }
private void OnHitsAdded(HitsAddedResponse response) { foreach (Hit hit in response.Hits) { if (hit.Uri.Scheme != Uri.UriSchemeFile) continue; Track track; if (hit.GetFirstProperty ("fixme:title") != null) { track = new Track (); track.TrackNumber = GetHitInteger (hit, "fixme:tracknumber"); track.TrackCount = GetHitInteger (hit, "fixme:trackcount"); track.Year = GetHitInteger (hit, "fixme:year"); track.Album = hit.GetFirstProperty ("fixme:album"); track.Artist = hit.GetFirstProperty ("fixme:artist"); track.Title = hit.GetFirstProperty ("fixme:title"); track.Genre = hit.GetFirstProperty ("fixme:genre"); track.FileName = hit.Uri.LocalPath; track.Format = Path.GetExtension (track.FileName).Substring (1); } else { track = GetTrackFromFile (hit.Uri.LocalPath); } if (track != null && track.Title != null && track.Title != String.Empty) { db.AddTrack (track); trackHash[track.FileName] = track; } } }
private static void OnHitsAdded (HitsAddedResponse response) { lastQueryTime = DateTime.Now; if (count == 0 && verbose) { Console.WriteLine ("First hit returned in {0:0.000}s", (lastQueryTime - queryStartTime).TotalSeconds); } if (verbose) { if (response.NumMatches >= 0) Console.WriteLine ("Returned latest {0} results out of total {1} matches", response.Hits.Count, response.NumMatches); else Console.WriteLine ("Returned latest {0} results", response.Hits.Count); } if (! display_hits) { count += response.Hits.Count; return; } foreach (Hit hit in response.Hits) { string uri = (raw_uri ? hit.Uri.OriginalString : UriFu.EscapedUriToString (hit.Uri)); if (verbose) Console.WriteLine (" Uri: {0}", uri); else Console.WriteLine (uri); if (verbose) { SnippetRequest sreq = new SnippetRequest (query, hit); if (display_cached_text) sreq.FullText = true; SnippetResponse sresp = (SnippetResponse) sreq.Send (); Console.WriteLine ("PaUri: {0}", hit.ParentUri != null ? hit.ParentUri.ToString () : "(null)"); if (! display_cached_text) Console.WriteLine (" Snip: {0}", sresp.Snippet != null ? sresp.Snippet : "(null)"); Console.WriteLine (" Type: {0}", hit.Type); Console.WriteLine ("MimeT: {0}", hit.MimeType == null ? "(null)" : hit.MimeType); Console.WriteLine (" Src: {0}", hit.Source); Console.WriteLine ("Score: {0}", hit.Score); if (hit.ValidTimestamp) Console.WriteLine (" Time: {0}", DateTimeUtil.ToString (hit.Timestamp)); foreach (Property prop in hit.Properties) Console.WriteLine (" {0} = '{1}'", prop.Key, (prop.Type != PropertyType.Date ? prop.Value : DateTimeUtil.ToString (StringFu.StringToDateTime (prop.Value)))); if (display_cached_text) { Console.WriteLine ("-- Cache -------------------------------------"); if (sresp.SnippetList.Snippets == null) Console.WriteLine ("(empty)"); else { foreach (SnippetLine snippet_line in sresp.SnippetList.Snippets) { if (snippet_line == null || snippet_line.Fragments == null) Console.WriteLine ("(empty)"); else Console.WriteLine (((Fragment)snippet_line.Fragments [0]).Text); } } Console.WriteLine ("----------------------------------------------"); } Console.WriteLine (); } ++count; } }
public void OnHitsAdded (HitsAddedResponse response) { foreach (Hit hit in response.Hits) Hits [hit.Uri] = hit; }
////////////////////////// private void OnHitsAdded (HitsAddedResponse response) { root.Add (response.Hits); UpdatePage (); }
private void OnHitsAdded (HitsAddedResponse response) { mutex.WaitOne (); // cache the hits and keep them nice and safe Console.Error.WriteLine ("{0}: Got some hits: {1}", id, response.Hits.Count); foreach (Beagle.Hit bHit in response.Hits) { Console.Error.WriteLine ("+Hit: {0}", bHit.Uri); newHits.Add (hitCount++, new Xesam.Hit (hitCount, bHit, parentSession.HitFields, query)); } if (newHits.Count > 0 && HitsAddedHandler != null) { HitsAddedHandler (id, (uint)response.Hits.Count); } mutex.ReleaseMutex (); }
private void OnHitsAdded (HitsAddedResponse response) { int missed_tiles = 0; foreach (Hit hit in response.Hits) { Tile tile = TileActivatorOrg.MakeTile (hit, current_query); if (tile == null) { Console.WriteLine ("No tile found for: {0} ({1})", hit.Uri, hit.Type); missed_tiles ++; continue; } view.AddHit (tile); if (pages.CurrentPageWidget != panes) pages.CurrentPage = pages.PageNum (panes); } if (response.NumMatches != -1) TotalMatches += (response.NumMatches - missed_tiles); }