def testJoinWithSortAndMissingValue(self): remote = SynchronousRemote(host='localhost', port=self.httpPort, path='/remote') q = ComposedQuery('main', query=cqlToExpression('*')) q.addMatch(dict(core='main', uniqueKey=KEY_PREFIX+'field'), dict(core='main2', key=KEY_PREFIX+'field')) q.addFacet(core='main2', facet=dict(fieldname='untokenized.field2', maxTerms=5)) q.addSortKey(dict(core="main", sortBy="sorted.field4", sortDescending=True)) response = remote.executeComposedQuery(query=q) self.assertEqual("record:1", response.hits[0].id) del q._sortKeys[:] q.addSortKey(dict(core="main", sortBy="sorted.field4", sortDescending=False)) response = remote.executeComposedQuery(query=q) self.assertEqual("record:1", response.hits[0].id)
def testJoin(self): remote = SynchronousRemote(host='localhost', port=self.httpPort, path='/remote') q = ComposedQuery('main', query=cqlToExpression('*')) q.addMatch(dict(core='main', uniqueKey=KEY_PREFIX+'field'), dict(core='main2', key=KEY_PREFIX+'field')) q.start=0 q.stop=100 q.addFilterQuery(core='main', query=cqlToExpression('field2=value0 OR field2=value1')) q.addFacet(core='main2', facet=dict(fieldname='untokenized.field2', maxTerms=5)) response = remote.executeComposedQuery(query=q) self.assertEquals(19, response.total) self.assertEquals(set([ 'record:10', 'record:11', 'record:20', 'record:21', 'record:30', 'record:31', 'record:40', 'record:41', 'record:50', 'record:51', 'record:60', 'record:61', 'record:70', 'record:71', 'record:80', 'record:81', 'record:90', 'record:91', 'record:100' ]), set([hit.id for hit in response.hits])) self.assertEquals([{ 'fieldname': 'untokenized.field2', 'path': [], 'terms': [ {'count': 27, 'term': 'value3'}, {'count': 22, 'term': 'value0'}, {'count': 19, 'term': 'value5'}, {'count': 19, 'term': 'value7'}, {'count': 19, 'term': 'value9'}, ] }], response.drilldownData)