def test_index_document(): index_document(DOC.copy()) assert ds._DB.exists('d|yyyy') assert ds._DB.type('d|yyyy') == b'string' assert DB.exists('w|rue') assert b'd|yyyy' in DB.zrange('w|rue', 0, -1) assert DB.exists('w|des') assert DB.exists('w|lilas') assert DB.exists('w|andresy') assert DB.exists('p|rue') assert DB.exists('p|des') assert DB.exists('p|lilas') assert DB.exists('p|andresy') assert b'lilas' in DB.smembers('p|andresy') assert b'andresy' in DB.smembers('p|lilas') assert DB.exists('g|u09dgm7') assert b'd|yyyy' in DB.smembers('g|u09dgm7') assert DB.exists('n|lil') assert DB.exists('n|lila') assert DB.exists('n|and') assert b'andresy' in DB.smembers('n|and') assert DB.exists('n|andr') assert b'andresy' in DB.smembers('n|andr') assert DB.exists('n|andre') assert b'andresy' in DB.smembers('n|andre') assert DB.exists('n|andres') assert b'andresy' in DB.smembers('n|andres') assert b'lilas' in DB.smembers('n|lil') assert DB.exists('f|type|street') assert b'd|yyyy' in DB.smembers('f|type|street') assert DB.exists('f|type|housenumber') assert b'd|yyyy' in DB.smembers('f|type|housenumber') assert len(DB.keys()) == 17 assert len(ds._DB.keys()) == 1
def test_index_document(): index_document(DOC.copy()) assert DB.exists('d|xxxx') assert DB.type('d|xxxx') == b'hash' assert DB.exists('w|rue') assert b'd|xxxx' in DB.zrange('w|rue', 0, -1) assert DB.exists('w|des') assert DB.exists('w|lilas') assert DB.exists('w|andresy') assert DB.exists('w|un') # Housenumber. assert DB.exists('p|rue') assert DB.exists('p|des') assert DB.exists('p|lilas') assert DB.exists('p|andresy') assert b'lilas' in DB.smembers('p|andresy') assert b'andresy' in DB.smembers('p|lilas') assert DB.exists('p|un') assert DB.exists('g|u09dgm7') assert b'd|xxxx' in DB.smembers('g|u09dgm7') assert DB.exists('n|lil') assert DB.exists('n|lila') assert DB.exists('n|and') assert b'andresy' in DB.smembers('n|and') assert DB.exists('n|andr') assert b'andresy' in DB.smembers('n|andr') assert DB.exists('n|andre') assert b'andresy' in DB.smembers('n|andre') assert DB.exists('n|andres') assert b'andresy' in DB.smembers('n|andres') assert b'lilas' in DB.smembers('n|lil') assert DB.exists('f|type|street') assert b'd|xxxx' in DB.smembers('f|type|street') assert DB.exists('f|type|housenumber') assert b'd|xxxx' in DB.smembers('f|type|housenumber') assert len(DB.keys()) == 20
def test_index_document(): index_document(DOC.copy()) assert DB.exists('d|xxxx') assert DB.type('d|xxxx') == b'hash' assert DB.exists('w|rue') assert b'd|xxxx' in DB.zrange('w|rue', 0, -1) assert DB.exists('w|des') assert DB.exists('w|lilas') assert DB.exists('w|andresy') assert DB.exists('w|un') # Housenumber. assert DB.exists('p|rue') assert DB.exists('p|des') assert DB.exists('p|lilas') assert DB.exists('p|andresy') assert b'lilas' in DB.smembers('p|andresy') assert b'andresy' in DB.smembers('p|lilas') assert DB.exists('p|un') assert DB.exists('g|u09dgm7') assert b'd|xxxx' in DB.smembers('g|u09dgm7') assert DB.exists('n|lil') assert DB.exists('n|lila') assert DB.exists('n|and') assert b'andresy' in DB.smembers('n|and') assert DB.exists('n|andr') assert b'andresy' in DB.smembers('n|andr') assert DB.exists('n|andre') assert b'andresy' in DB.smembers('n|andre') assert DB.exists('n|andres') assert b'andresy' in DB.smembers('n|andres') assert b'lilas' in DB.smembers('n|lil') assert DB.exists('f|type|street') assert b'd|xxxx' in DB.smembers('f|type|street') assert DB.exists('f|type|housenumber') assert b'd|xxxx' in DB.smembers('f|type|housenumber') assert len(DB.keys()) == 20
def test_index_edge_ngrams(): before = count_keys() index_edge_ngrams(DB, 'street') after = count_keys() assert after - before == 3 assert DB.smembers('n|str') == set([b'street']) assert DB.smembers('n|stre') == set([b'street']) assert DB.smembers('n|stree') == set([b'street'])
def test_index_edge_ngrams(): before = count_keys() index_edge_ngrams(DB, 'street') after = count_keys() assert after - before == 3 assert DB.smembers('n|str') == set([b'street']) assert DB.smembers('n|stre') == set([b'street']) assert DB.smembers('n|stree') == set([b'street'])
def pair(word): """See all token associated with a given token. PAIR lilas""" word = list(preprocess_query(word))[0] key = pair_key(word) tokens = [t.decode() for t in DB.smembers(key)] tokens.sort() print(white(tokens)) print(magenta('(Total: {})'.format(len(tokens))))
def pair(cmd, word): """See all token associated with a given token. PAIR lilas""" word = list(preprocess_query(word))[0] key = pair_key(word) tokens = [t.decode() for t in DB.smembers(key)] tokens.sort() print(white(tokens)) print(magenta('(Total: {})'.format(len(tokens))))
def test_deindex_document_should_not_affect_other_docs(): DOC2 = { 'id': 'xxxx2', 'type': 'street', 'name': 'rue des Lilas', 'city': 'Paris', 'lat': '49.32545', 'lon': '4.2565', 'housenumbers': { '1': { 'lat': '48.325451', # Same geohash as DOC. 'lon': '2.25651' } } } index_document(DOC.copy()) index_document(DOC2) deindex_document(DOC['id']) assert not DB.exists('d|xxxx') assert DB.exists('w|rue') assert DB.exists('w|des') assert DB.exists('w|lil') assert DB.exists('w|un') # Housenumber. assert b'd|xxxx' not in DB.zrange('w|rue', 0, -1) assert b'd|xxxx' not in DB.zrange('w|des', 0, -1) assert b'd|xxxx' not in DB.zrange('w|lil', 0, -1) assert b'd|xxxx' not in DB.zrange('w|un', 0, -1) assert DB.exists('g|u09dgm7') assert b'd|xxxx' not in DB.smembers('g|u09dgm7') assert b'd|xxxx2' in DB.zrange('w|rue', 0, -1) assert b'd|xxxx2' in DB.zrange('w|des', 0, -1) assert b'd|xxxx2' in DB.zrange('w|lil', 0, -1) assert b'd|xxxx2' in DB.zrange('w|un', 0, -1) assert b'd|xxxx2' in DB.smembers('g|u09dgm7') assert b'd|xxxx2' in DB.smembers('g|u0g08g7') assert DB.exists('f|type|street') assert b'd|xxxx2' in DB.smembers('f|type|street') assert DB.exists('f|type|housenumber') assert b'd|xxxx2' in DB.smembers('f|type|housenumber') assert len(DB.keys()) == 14
def test_deindex_document_should_not_affect_other_docs(): DOC2 = { 'id': 'xxxx2', 'type': 'street', 'name': 'rue des Lilas', 'city': 'Paris', 'lat': '49.32545', 'lon': '4.2565', 'housenumbers': { '1': { 'lat': '48.325451', # Same geohash as DOC. 'lon': '2.25651' } } } index_document(DOC.copy()) index_document(DOC2) deindex_document(DOC['id']) assert not ds._DB.exists('d|xxxx') assert b'd|xxxx' not in DB.zrange('w|rue', 0, -1) assert b'd|xxxx' not in DB.zrange('w|des', 0, -1) assert b'd|xxxx' not in DB.zrange('w|lilas', 0, -1) assert b'd|xxxx' not in DB.zrange('w|1', 0, -1) assert DB.exists('g|u09dgm7') assert b'd|xxxx' not in DB.smembers('g|u09dgm7') assert DB.exists('w|des') assert DB.exists('w|lilas') assert DB.exists('w|1') # Housenumber. assert DB.exists('p|rue') assert b'd|xxxx2' in DB.zrange('w|rue', 0, -1) assert b'd|xxxx2' in DB.zrange('w|des', 0, -1) assert b'd|xxxx2' in DB.zrange('w|lilas', 0, -1) assert b'd|xxxx2' in DB.zrange('w|1', 0, -1) assert b'd|xxxx2' in DB.smembers('g|u09dgm7') assert b'd|xxxx2' in DB.smembers('g|u0g08g7') assert DB.exists('p|des') assert DB.exists('p|lilas') assert DB.exists('p|1') assert not DB.exists('n|and') assert not DB.exists('n|andr') assert not DB.exists('n|andre') assert not DB.exists('n|andres') assert DB.exists('n|par') assert DB.exists('n|pari') assert DB.exists('n|lil') assert DB.exists('n|lila') assert b'lilas' in DB.smembers('n|lil') assert b'lilas' in DB.smembers('n|lila') assert DB.exists('f|type|street') assert b'd|xxxx2' in DB.smembers('f|type|street') assert DB.exists('f|type|housenumber') assert b'd|xxxx2' in DB.smembers('f|type|housenumber') assert len(DB.keys()) == 18 assert len(ds._DB.keys()) == 1
def test_deindex_document_should_not_affect_other_docs(): DOC2 = { 'id': 'xxxx2', '_id': 'yyyy2', 'type': 'street', 'name': 'rue des Lilas', 'city': 'Paris', 'lat': '49.32545', 'lon': '4.2565', 'housenumbers': { '1': { 'lat': '48.325451', # Same geohash as DOC. 'lon': '2.25651' } } } DOC1 = json.loads(json.dumps(DOC)) # deepcopy. # Add new housenumber so we can check it's deindexed. DOC1['housenumbers']['2'] = {'lat': '48.325459', 'lon': '2.25659'} index_document(DOC1) index_document(DOC2) deindex_document(DOC1['_id']) assert not ds._DB.exists('d|yyyy') assert b'd|yyyy' not in DB.zrange('w|rue', 0, -1) assert b'd|yyyy' not in DB.zrange('w|des', 0, -1) assert b'd|yyyy' not in DB.zrange('w|lilas', 0, -1) assert DB.exists('g|u09dgm7') assert b'd|yyyy' not in DB.smembers('g|u09dgm7') assert DB.exists('w|des') assert DB.exists('w|lilas') assert DB.exists('p|rue') assert b'd|yyyy2' in DB.zrange('w|rue', 0, -1) assert b'd|yyyy2' in DB.zrange('w|des', 0, -1) assert b'd|yyyy2' in DB.zrange('w|lilas', 0, -1) assert b'd|yyyy2' in DB.smembers('g|u09dgm7') assert b'd|yyyy2' in DB.smembers('g|u0g08g7') assert DB.exists('p|des') assert DB.exists('p|lilas') assert not DB.exists('n|and') assert not DB.exists('n|andr') assert not DB.exists('n|andre') assert not DB.exists('n|andres') assert DB.exists('n|par') assert DB.exists('n|pari') assert DB.exists('n|lil') assert DB.exists('n|lila') assert b'lilas' in DB.smembers('n|lil') assert b'lilas' in DB.smembers('n|lila') assert DB.exists('f|type|street') assert b'd|yyyy2' in DB.smembers('f|type|street') assert DB.exists('f|type|housenumber') assert b'd|yyyy2' in DB.smembers('f|type|housenumber') assert len(DB.keys()) == 16 assert len(ds._DB.keys()) == 1
def do_AUTOCOMPLETE(cmd, s): """Shows autocomplete results for a given token.""" s = list(preprocess_query(s))[0] keys = [k.decode() for k in DB.smembers(edge_ngram_key(s))] print(white(keys)) print(magenta('({} elements)'.format(len(keys))))
def do_autocomplete(self, s): """Shows autocomplete results for a given token.""" s = list(preprocess_query(s))[0] keys = [k.decode() for k in DB.smembers(edge_ngram_key(s))] print(white(keys)) print(magenta('({} elements)'.format(len(keys))))