diff options
Diffstat (limited to 'megapixels/app/server/api.py')
| -rw-r--r-- | megapixels/app/server/api.py | 68 |
1 files changed, 46 insertions, 22 deletions
diff --git a/megapixels/app/server/api.py b/megapixels/app/server/api.py index 5f33e84b..743e06f4 100644 --- a/megapixels/app/server/api.py +++ b/megapixels/app/server/api.py @@ -1,3 +1,5 @@ +import logging +import logging.handlers import os import re import time @@ -141,36 +143,58 @@ def name_lookup(dataset_name): dataset = get_dataset(dataset_name) q = request.args.get('q') - q = re.sub('[^a-zA-Z ]+', '*', q) + q = re.sub('[^a-zA-Z. ]+', '*', q) terms = q.split(' ') - # print(q) query = { 'q': q, 'timing': time.time() - start, } - + + print(terms) + if len(terms) == 0: - results = [] - elif len(terms) == 1: - names = dataset.search_name('%' + terms[0] + '%') if terms[0] else [] - results = dataset.get_file_records_for_identities(names) - else: - lookup = {} - results_lookup = {} - for i, term in enumerate(terms[0:5]): - search_term = '%' + term + '%' - names = dataset.search_name(term) if term else [] - for name in names: - if name.id in lookup: - lookup[name.id] += 1 - else: - lookup[name.id] = 1 - results_lookup[name.id] = name - top_names = [results_lookup[item[0]] for item in sorted(lookup.items(), key=operator.itemgetter(1))][0:10] - results = dataset.get_file_records_for_identities(top_names) + return jsonify({ 'query': query, 'results': [] }) - # print(results) + lookup = {} + results_lookup = {} + + names = dataset.search_name(q + '%') + for name in names: + if name.id in lookup: + print(name.fullname) + lookup[name.id] += 4 + else: + print(name.fullname) + lookup[name.id] = 4 + results_lookup[name.id] = name + + for i, term in enumerate(terms[0:5]): + search_term = '%' + term + '%' + names = dataset.search_name(search_term) if len(term) > 0 else [] + descriptions = dataset.search_description(search_term) if len(term) > 0 else [] + for name in names: + if name.id in lookup: + print(name.fullname) + lookup[name.id] += 2 + else: + print(name.fullname) + lookup[name.id] = 2 + results_lookup[name.id] = name + for name in descriptions: + if name.id in lookup: + print(name.fullname) + lookup[name.id] += 1 + else: + print(name.fullname) + lookup[name.id] = 1 + results_lookup[name.id] = name + + sorted_names = sorted(lookup.items(), key=operator.itemgetter(1), reverse=True)[0:10] + top_names = [results_lookup[item[0]] for item in sorted_names] + results = dataset.get_file_records_for_identities(top_names) + + print(results) return jsonify({ 'query': query, 'results': results, |
