diff options
Diffstat (limited to 'src/carquinyol/indexstore.py')
-rw-r--r-- | src/carquinyol/indexstore.py | 26 |
1 files changed, 8 insertions, 18 deletions
diff --git a/src/carquinyol/indexstore.py b/src/carquinyol/indexstore.py index 387f7bb..313e6df 100644 --- a/src/carquinyol/indexstore.py +++ b/src/carquinyol/indexstore.py @@ -141,34 +141,24 @@ class IndexStore(object): enquire.set_sort_by_value(_VALUE_TIMESTAMP, True) + if not all_versions : + # only select newest entry (sort order) for each tree_id + enquire.set_collapse_key(_VALUE_TID) + query_result = enquire.get_mset(offset, limit, check_at_least) total_count = query_result.get_matches_estimated() - tvids = [] - timestamps = [] - for hit in query_result: - tvids.append((hit.document.get_value(_VALUE_TID), hit.document.get_value(_VALUE_VID))) + tvids = [(hit.document.get_value(_VALUE_TID), + hit.document.get_value(_VALUE_VID)) + for hit in query_result] - if not all_versions : - # only return latest version for each entry - # result set is already sorted by time so we only need to take the first entry for each tree_id - tids_vid = {} - tvids_new = [] - for (tree_id, version_id) in tvids : - if tree_id not in tids_vid : - tids_vid[tree_id] = version_id - tvids_new.append((tree_id,version_id)) - - tvids = tvids_new - - # TODO: total_count will be totally off if all_versions is not set return (tvids, total_count) _queryTermMap = { 'tree_id': _PREFIX_TID, 'version_id': _PREFIX_VID, 'bundle_id': _PREFIX_BUNDLE_ID, - 'activitiy_id': _PREFIX_ACTIVITY_ID, + 'activity_id': _PREFIX_ACTIVITY_ID, 'keep': _PREFIX_KEEP, } def _parse_query(self, query_dict): |