def search_startswith(query): db = get_mongo('paper') res = list(db.find({'title': {'$regex': '^{0}'.format(query) } }, SEARCH_RETURN_FIELDS)) res = [k for k in res if levenshtein(k['title'], query) < 10] print res return res
def similar_search(query): """ return one result that is most similar to query""" ret = [] query = query.strip().lower() for cand in all_titles: dist = levenshtein(query, cand[0]) if dist < 3: ret.append((cand, dist)) if not ret: return None res = max(ret, key=operator.itemgetter(1)) db = get_mongo('paper') res = db.find_one({'_id': res[0][1]}, SEARCH_RETURN_FIELDS) return res