Author: humbedooh
Date: Fri Mar 27 18:49:03 2015
New Revision: 1669656
URL: http://svn.apache.org/r1669656
Log:
ES optimizations: use es.get instead of es.search when we know the document ID
Modified:
steve/trunk/pysteve/lib/election.py
Modified: steve/trunk/pysteve/lib/election.py
URL:
http://svn.apache.org/viewvc/steve/trunk/pysteve/lib/election.py?rev=1669656&r1=1669655&r2=1669656&view=diff
==============================================================================
--- steve/trunk/pysteve/lib/election.py (original)
+++ steve/trunk/pysteve/lib/election.py Fri Mar 27 18:49:03 2015
@@ -59,13 +59,13 @@ def exists(election, *issue):
else:
return os.path.isdir(elpath)
elif dbtype == "elasticsearch":
- s = "id:%s" % election
doc = "elections"
+ eid = election
if issue and issue[0]:
doc = "issues"
- s = "election:%s AND id:%s" % (election, issue[0])
- res = es.search(index="steve", doc_type=doc, q = s, size = 1)
- if len(res['hits']['hits']) > 0:
+ eid = hashlib.sha224(electionID + "/" + issueID).hexdigest()
+ res = es.get(index="steve", doc_type=doc, id=eid)
+ if res:
return True
else:
return False
@@ -86,10 +86,9 @@ def getBasedata(election, hideHash=False
basedata['id'] = election
return basedata
elif dbtype == "elasticsearch":
- res = es.search(index="steve", doc_type="elections", sort = "id", q =
"id:%s" % election, size = 1)
- results = len(res['hits']['hits'])
- if results > 0:
- return res['hits']['hits'][0]['_source']
+ res = es.get(index="steve", doc_type="elections", id=election)
+ if res:
+ return res['_source']
return None
def close(election, reopen = False):
@@ -130,10 +129,10 @@ def getIssue(electionID, issueID):
f.close()
issuedata = json.loads(data)
elif dbtype == "elasticsearch":
- res = es.search(index="steve", doc_type="issues", q = "election:%s AND
id:%s" % (electionID, issueID), size = 1)
- results = len(res['hits']['hits'])
- if results > 0:
- issuedata = res['hits']['hits'][0]['_source']
+ iid = hashlib.sha224(electionID + "/" + issueID).hexdigest()
+ res = es.get(index="steve", doc_type="issues", id=iid)
+ if res:
+ issuedata = res['_source']
ihash = hashlib.sha224(json.dumps(issuedata)).hexdigest()
if issuedata:
issuedata['hash'] = ihash