Index: django/contrib/search/xapian.py
===================================================================
--- django/contrib/search/xapian.py	(revision 3754)
+++ django/contrib/search/xapian.py	(working copy)
@@ -4,7 +4,8 @@
 import xapwrap.document
 from itertools import imap
 
-from base import Indexer, ResultSet
+from query import ResultSet, Hit
+from base import Indexer
 
 # TODO: This is incomplete.
 
@@ -17,17 +18,20 @@
         else:
             update_queue = documents
 
-        for row in documents:
+        for row in update_queue:
             keys = []
+            text_fields = []
             for name, field in self.attr_fields.iteritems():
-                keys.append(xapwrap.document.SortKey(name, getattr(self.model, field.name)))
-
-            d = xapwrap.document.Document(textFields=fields, sortFields=keys, uid=row._get_pk_val())
+                field_name = str(getattr(row, field.name))
+                #keys.append(xapwrap.document.SortKey(name, field_name))
+                text_fields.append(xapwrap.document.TextField(name,field_name))
+            print keys    
+            d = xapwrap.document.Document(textFields=text_fields,sortFields=keys, uid=row._get_pk_val())
             idx.index(d)
         idx.close()
 
     def search(self, query, order_by='RELEVANCE'):
-        idx = Index(self.path)
+        idx = xapwrap.index.Index(self.path)
         if order_by == 'RELEVANCE':
             results = idx.search(query, sortByRelevence=True)
         else:
@@ -37,7 +41,7 @@
             while order_by[0] in '+-':
                 order_by = order_by[1:]
             results = idx.search(query, order_by, sortAscending=ascending)
-        return XapianResultSet(results)
+        return XapianResultSet(results,self)
 
 
 class XapianResultSet(ResultSet):
@@ -49,16 +53,21 @@
         return len(self._hits)
 
     def __iter__(self):
-        for hit in self._hits):
-            yield XapianHit(hit, self._indexer)
+        for hit in self._hits:
+            print hit
+            yield XapianHit(hit,self._indexer)
 
 
-class XapianHit(object):
+class XapianHit(Hit):
     def get_pk(self):
-        return self.data['pk']
+        # FIXME: Hardcoded 'pk' field.
+        return self.data.get('pk')
 
+    def __getitem__(self, item):
+        return self.data.__getitem__(item)
+
     def get_score(self):
-        return self.data['score']
+        return self.data.getScore()
 
     score = property(get_score)
 
