本文整理汇总了Python中addok.db.DB类的典型用法代码示例。如果您正苦于以下问题:Python DB类的具体用法?Python DB怎么用?Python DB使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了DB类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: only_commons
def only_commons(helper):
if len(helper.tokens) == len(helper.common):
# Only common terms, shortcut to search
keys = [t.db_key for t in helper.tokens]
if helper.geohash_key:
keys.append(helper.geohash_key)
helper.debug('Adding geohash %s', helper.geohash_key)
if len(keys) == 1 or helper.geohash_key:
helper.add_to_bucket(keys)
if helper.bucket_dry and len(keys) > 1:
count = 0
# Scan the less frequent token.
helper.tokens.sort(key=lambda t: t.frequency)
first = helper.tokens[0]
if first.frequency < config.INTERSECT_LIMIT:
helper.debug('Under INTERSECT_LIMIT, brut force.')
keys = [t.db_key for t in helper.tokens]
helper.add_to_bucket(keys)
else:
helper.debug('INTERSECT_LIMIT hit, manual scan on %s', first)
others = [t.db_key for t in helper.tokens[1:]]
ids = DB.zrevrange(first.db_key, 0, 500)
for id_ in ids:
count += 1
if all(DB.sismember(f, id_) for f in helper.filters) \
and all(DB.zrank(k, id_) for k in others):
helper.bucket.add(id_)
if helper.bucket_full:
break
helper.debug('%s results after scan (%s loops)',
len(helper.bucket), count)
示例2: test_index_edge_ngrams
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'])
示例3: test_allow_list_values
def test_allow_list_values():
doc = {
'id': 'xxxx',
'type': 'street',
'name': ['Vernou-la-Celle-sur-Seine', 'Vernou'],
'city': 'Paris',
'lat': '49.32545',
'lon': '4.2565'
}
index_document(doc)
assert DB.zscore('w|vernou', 'd|xxxx') == 4
assert DB.zscore('w|celle', 'd|xxxx') == 4 / 5
示例4: test_deindex_document_should_deindex_list_values
def test_deindex_document_should_deindex_list_values():
doc = {
'id': 'xxxx',
'type': 'street',
'name': ['Vernou-la-Celle-sur-Seine', 'Vernou'],
'city': 'Paris',
'lat': '49.32545',
'lon': '4.2565'
}
index_document(doc)
deindex_document(doc['id'])
assert not DB.exists('d|xxxx')
assert not DB.exists('w|vernou')
assert not DB.exists('w|celle')
assert len(DB.keys()) == 0
示例5: test_should_be_possible_to_override_boost_with_callable
def test_should_be_possible_to_override_boost_with_callable(config):
config.FIELDS = [
{'key': 'name', 'boost': lambda doc: 5},
{'key': 'city'},
]
doc = {
'id': 'xxxx',
'lat': '49.32545',
'lon': '4.2565',
'name': 'Lilas',
'city': 'Cergy'
}
index_document(doc)
assert DB.exists('d|xxxx')
assert DB.zscore('w|lilas', 'd|xxxx') == 5
assert DB.zscore('w|cergy', 'd|xxxx') == 1
示例6: deindex_document
def deindex_document(id_, **kwargs):
key = keys.document_key(id_)
doc = DB.hgetall(key)
if not doc:
return
tokens = []
for indexer in config.DEINDEXERS:
indexer(DB, key, doc, tokens, **kwargs)
示例7: test_should_be_possible_to_define_fields_from_config
def test_should_be_possible_to_define_fields_from_config(config):
config.FIELDS = [
{'key': 'custom'},
{'key': 'special'},
]
doc = {
'id': 'xxxx',
'lat': '49.32545',
'lon': '4.2565',
'custom': 'rue',
'special': 'Lilas',
'thisone': 'is not indexed',
}
index_document(doc)
assert DB.exists('d|xxxx')
assert DB.exists('w|lilas')
assert DB.exists('w|rue')
assert not DB.exists('w|indexed')
示例8: pair
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))))
示例9: test_field_with_only_non_alphanumeric_chars_is_not_indexed
def test_field_with_only_non_alphanumeric_chars_is_not_indexed():
doc = {
'id': 'xxxx',
'lat': '49.32545',
'lon': '4.2565',
'name': 'Lilas',
'city': '//'
}
index_document(doc)
assert 'city' not in DB.hgetall('d|xxxx')
示例10: test_null_value_should_not_be_index
def test_null_value_should_not_be_index(config):
doc = {
'id': 'xxxx',
'lat': '49.32545',
'lon': '4.2565',
'name': 'Port-Cergy',
'city': ''
}
index_document(doc)
assert 'city' not in DB.hgetall('d|xxxx')
示例11: index_document
def index_document(doc, **kwargs):
key = keys.document_key(doc['id'])
pipe = DB.pipeline()
tokens = {}
for indexer in config.INDEXERS:
try:
indexer(pipe, key, doc, tokens, **kwargs)
except ValueError as e:
print(e)
return # Do not index.
pipe.execute()
示例12: test_create_edge_ngrams
def test_create_edge_ngrams(config):
config.MIN_EDGE_NGRAMS = 2
doc = {
'id': 'xxxx',
'lat': '49.32545',
'lon': '4.2565',
'name': '28 Lilas', # 28 should not appear in ngrams
'city': 'Paris'
}
index_document(doc, update_ngrams=False)
assert not DB.exists('n|li')
assert not DB.exists('n|lil')
assert not DB.exists('n|pa')
assert not DB.exists('n|par')
create_edge_ngrams()
assert DB.exists('n|li')
assert DB.exists('n|lil')
assert DB.exists('n|pa')
assert DB.exists('n|par')
assert not DB.exists('n|28')
assert len(DB.keys()) == 12
示例13: do_fuzzyindex
def do_fuzzyindex(self, word):
"""Compute fuzzy extensions of word that exist in index.
FUZZYINDEX lilas"""
word = list(preprocess_query(word))[0]
token = Token(word)
token.make_fuzzy()
neighbors = [(n, DB.zcard(dbkeys.token_key(n))) for n in token.neighbors]
neighbors.sort(key=lambda n: n[1], reverse=True)
for token, freq in neighbors:
if freq == 0:
break
print(white(token), blue(freq))
示例14: test_index_housenumber_uses_housenumber_preprocessors
def test_index_housenumber_uses_housenumber_preprocessors(config):
doc = {
"id": "xxxx",
"type": "street",
"name": "rue des Lilas",
"city": "Paris",
"lat": "49.32545",
"lon": "4.2565",
"housenumbers": {"1 bis": {"lat": "48.325451", "lon": "2.25651"}},
}
index_document(doc)
index = DB.hgetall("d|xxxx")
assert index[b"h|1b"] == b"1 bis|48.325451|2.25651"
示例15: test_doc_with_null_value_should_not_be_index_if_not_allowed
def test_doc_with_null_value_should_not_be_index_if_not_allowed(config):
config.FIELDS = [
{'key': 'name', 'null': False},
{'key': 'city'},
]
doc = {
'id': 'xxxx',
'lat': '49.32545',
'lon': '4.2565',
'name': '',
'city': 'Cergy'
}
index_document(doc)
assert not DB.exists('d|xxxx')