beagle r4460 - trunk/beagle-xesam/src



Author: arunsr
Date: Sun Feb  3 21:19:27 2008
New Revision: 4460
URL: http://svn.gnome.org/viewvc/beagle?rev=4460&view=rev

Log:
Snippet support (not in the "spec", per se, but useful).
Thanks to Anders Rune Jensen <anders iola dk> for the patch.


Modified:
   trunk/beagle-xesam/src/Ontologies.cs
   trunk/beagle-xesam/src/Search.cs

Modified: trunk/beagle-xesam/src/Ontologies.cs
==============================================================================
--- trunk/beagle-xesam/src/Ontologies.cs	(original)
+++ trunk/beagle-xesam/src/Ontologies.cs	Sun Feb  3 21:19:27 2008
@@ -73,6 +73,8 @@
 
 				fields_mapping.Add ("xesam:fileExtension", "beagle:FilenameExtension");
 				fields_mapping.Add ("fileExtension", "beagle:FilenameExtension");
+
+				fields_mapping.Add ("snippet", "snippet");
 			}
 
 			private static void InitializeSourcesMapping ()

Modified: trunk/beagle-xesam/src/Search.cs
==============================================================================
--- trunk/beagle-xesam/src/Search.cs	(original)
+++ trunk/beagle-xesam/src/Search.cs	Sun Feb  3 21:19:27 2008
@@ -53,7 +53,7 @@
 				get { return bHit; }
 			}
 
-			public Hit (uint id, Beagle.Hit hit, string[] fields)
+		        public Hit (uint id, Beagle.Hit hit, string[] fields, Query query)
 			{
 				this.id = id;
 				bHit = hit;
@@ -77,7 +77,13 @@
 					case "date":
 						hitValue [i++] = hit.Timestamp.ToString ("s");
 						break;
-						
+
+					case "snippet":
+						SnippetRequest sreq = new SnippetRequest (query, hit);
+						SnippetResponse sresp = (SnippetResponse) sreq.Send ();
+						hitValue [i++] = sresp.Snippet != null ? sresp.Snippet : String.Empty;
+						break;
+					    
 					default:
 						//FIXME: This *will* break since we don't know what the expected
 						//type here is
@@ -211,7 +217,7 @@
 				mutex.WaitOne ();
 
 				foreach (uint id in ids) {
-					Hit hit = new Hit (id, hits [id].BeagleHit, fields);
+				        Hit hit = new Hit (id, hits [id].BeagleHit, fields, query);
 					ret.Add (hit.Value);
 				}
 
@@ -228,7 +234,7 @@
 				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));
+					newHits.Add (hitCount++, new Xesam.Hit (hitCount, bHit, parentSession.HitFields, query));
 				}
 
 				if (newHits.Count > 0 && HitsAddedHandler != null) {



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]