Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/carquinyol/indexstore.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/carquinyol/indexstore.py')
-rw-r--r--src/carquinyol/indexstore.py26
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):