diff options
Diffstat (limited to 'megapixels/app/server/api.py')
| -rw-r--r-- | megapixels/app/server/api.py | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/megapixels/app/server/api.py b/megapixels/app/server/api.py index 3683d5fd..cc791bb2 100644 --- a/megapixels/app/server/api.py +++ b/megapixels/app/server/api.py @@ -3,6 +3,7 @@ import re import time import dlib import numpy as np +import operator from flask import Blueprint, request, jsonify from PIL import Image # todo: try to remove PIL dependency @@ -139,14 +140,32 @@ def name_lookup(dataset_name): dataset = get_dataset(dataset_name) q = request.args.get('q') + q = re.sub('[^a-zA-Z ]+', '*', q) + terms = q.split(' ') # print(q) query = { 'q': q, 'timing': time.time() - start, } - results = dataset.search_name(q + '%') if q else None - + if len(terms) == 1: + names = dataset.search_name('%' + term + '%') if term else [] + results = dataset.get_uuids_for_identities(names) + else: + lookup = {} + results_lookup = {} + for i, term in enumerate(terms): + search_term = '%' + term + '%' + names = dataset.search_name() 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:30] + results = dataset.get_uuids_for_identities(top_names) + # print(results) return jsonify({ 'query': query, |
