コード例 #1
0
 def xapian_search(self, query_string):
     database = xapian.Database(settings.HAYSTACK_XAPIAN_PATH)
     if query_string:
         qp = xapian.QueryParser()
         qp.set_database(database)
         query = qp.parse_query(query_string, xapian.QueryParser.FLAG_WILDCARD)
     else:
         query = xapian.Query(query_string) # Empty query matches all
     enquire = xapian.Enquire(database)
     enquire.set_query(query)
     matches = enquire.get_mset(0, database.get_doccount())
     
     document_list = []
     
     for match in matches:
         app_label, module_name, pk, model_data = pickle.loads(match.document.get_data())
         for key, value in model_data.iteritems():
             model_data[key] = _marshal_value(value)
         model_data['id'] = u'%s.%s.%d' % (app_label, module_name, pk)
         document_list.append(model_data)
     
     return document_list
コード例 #2
0
 def test__marshal_value(self):
     self.assertEqual(_marshal_value('abc'), u'abc')
     self.assertEqual(_marshal_value(1), '000000000001')
     self.assertEqual(_marshal_value(2653), '000000002653')
     self.assertEqual(_marshal_value(25.5), '\xb2`')
     self.assertEqual(_marshal_value([1, 2, 3]), u'[1, 2, 3]')
     self.assertEqual(_marshal_value((1, 2, 3)), u'(1, 2, 3)')
     self.assertEqual(_marshal_value({'a': 1, 'c': 3, 'b': 2}), u"{'a': 1, 'c': 3, 'b': 2}")
     self.assertEqual(_marshal_value(datetime.datetime(2009, 5, 9, 16, 14)), u'20090509161400')
     self.assertEqual(_marshal_value(datetime.datetime(2009, 5, 9, 0, 0)), u'20090509000000')
     self.assertEqual(_marshal_value(datetime.datetime(1899, 5, 18, 0, 0)), u'18990518000000')
     self.assertEqual(_marshal_value(datetime.datetime(2009, 5, 18, 1, 16, 30, 250)), u'20090518011630000250')
コード例 #3
0
 def test__marshal_value(self):
     self.assertEqual(_marshal_value('abc'), u'abc')
     self.assertEqual(_marshal_value(1), '000000000001')
     self.assertEqual(_marshal_value(2653), '000000002653')
     self.assertEqual(_marshal_value(25.5), '\xb2`')
     self.assertEqual(_marshal_value([1, 2, 3]), u'[1, 2, 3]')
     self.assertEqual(_marshal_value((1, 2, 3)), u'(1, 2, 3)')
     self.assertEqual(_marshal_value({
         'a': 1,
         'c': 3,
         'b': 2
     }), u"{'a': 1, 'c': 3, 'b': 2}")
     self.assertEqual(_marshal_value(datetime.datetime(2009, 5, 9, 16, 14)),
                      u'20090509161400')
     self.assertEqual(_marshal_value(datetime.datetime(2009, 5, 9, 0, 0)),
                      u'20090509000000')
     self.assertEqual(_marshal_value(datetime.datetime(1899, 5, 18, 0, 0)),
                      u'18990518000000')
     self.assertEqual(
         _marshal_value(datetime.datetime(2009, 5, 18, 1, 16, 30, 250)),
         u'20090518011630000250')