def sortValue(self, i): fielddoc = FieldDoc.cast_(i) link = self.reader.document(fielddoc.doc).get('link') entry = dao.get_by_link(link,Entry) count = dao.get_category_count_by_entry(self.query,entry) return Double(count)
def dumpDocs(self, sort, docs): print "Sorted by:", sort for scoreDoc in docs.scoreDocs: fieldDoc = FieldDoc.cast_(scoreDoc) distance = Double.cast_(fieldDoc.fields[0]).doubleValue() doc = self.searcher.doc(fieldDoc.doc) print " %(name)s @ (%(location)s) ->" %doc, distance
def dumpDocs(self, sort, docs): print "Sorted by:", sort for scoreDoc in docs.scoreDocs: fieldDoc = FieldDoc.cast_(scoreDoc) distance = Double.cast_(fieldDoc.fields[0]).doubleValue() doc = self.searcher.doc(fieldDoc.doc) print " %(name)s @ (%(location)s) ->" % doc, distance
def testNeareastRestaurantToWork(self): sort = Sort(SortField("location", DistanceComparatorSource(10, 10))) docs = self.searcher.search(self.query, None, 3, sort) self.assertEqual(4, docs.totalHits) self.assertEqual(3, len(docs.scoreDocs)) fieldDoc = FieldDoc.cast_(docs.scoreDocs[0]) distance = Double.cast_(fieldDoc.fields[0]).doubleValue() self.assertEqual(sqrt(17), distance, "(10,10) -> (9,6) = sqrt(17)") document = self.searcher.doc(fieldDoc.doc) self.assertEqual("Los Betos", document["name"]) self.dumpDocs(sort, docs)