def get_works_iaids(wkeys): solr_select_url = get_works_solr_select_url() filter = 'ia' q = '+OR+'.join(['key:' + wkey for wkey in wkeys]) solr_select = solr_select_url + "?version=2.2&q.op=AND&q=%s&rows=10&fl=%s&qt=standard&wt=json&fq=type:work" % (q, filter) json_data = urllib.urlopen(solr_select).read() reply = simplejson.loads(json_data) if reply['response']['numFound'] == 0: return [] return reply
def get_works_iaids(wkeys): solr_host = 'ol-solr.us.archive.org:8983' solr_select_url = "http://" + solr_host + "/solr/works/select" filter = 'ia' q = '+OR+'.join(['key:' + wkey.split('/')[2] for wkey in wkeys]) solr_select = solr_select_url + "?version=2.2&q.op=AND&q=%s&rows=10&fl=%s&qt=standard&wt=json" % (q, filter) json_data = urllib.urlopen(solr_select).read() reply = simplejson.loads(json_data) if reply['response']['numFound'] == 0: return [] return reply
def get_solr_edition_records(iaids): solr_select_url = get_works_solr_select_url() filter = 'title' q = '+OR+'.join('ia:' + id for id in iaids) solr_select = solr_select_url + "?version=2.2&q.op=AND&q=%s&rows=10&fl=key,%s&qt=standard&wt=json" % (q, filter) json_data = urllib.urlopen(solr_select).read() reply = simplejson.loads(json_data) if reply['response']['numFound'] == 0: return [] rows = reply['response']['docs'] return rows result = dict((r['key'], r[filter][0]) for r in rows if len(r.get(filter, []))) return result
def get_eids_for_wids(wids): """ To support testing by passing in a list of work-ids - map each to it's first edition ID """ solr_select_url = get_works_solr_select_url() filter = 'edition_key' q = '+OR+'.join(wids) solr_select = solr_select_url + "?version=2.2&q.op=AND&q=%s&rows=10&fl=key,%s&qt=standard&wt=json&fq=type:work" % (q, filter) json_data = urllib.urlopen(solr_select).read() reply = simplejson.loads(json_data) if reply['response']['numFound'] == 0: return [] rows = reply['response']['docs'] result = dict((r['key'], r[filter][0]) for r in rows if len(r.get(filter, []))) return result
def get_work_iaids(wkey): #wid = wkey.split('/')[2] solr_select_url = get_works_solr_select_url() filter = 'ia' q = 'key:' + wkey stats.begin('solr', url=wkey) solr_select = solr_select_url + "?version=2.2&q.op=AND&q=%s&rows=10&fl=%s&qt=standard&wt=json&fq=type:work" % (q, filter) json_data = urllib.urlopen(solr_select).read() stats.end() print json_data reply = simplejson.loads(json_data) if reply['response']['numFound'] == 0: return [] return reply["response"]['docs'][0].get(filter, [])
def get_work_iaids(wkey): wid = wkey.split('/')[2] # XXX below for solr_host?? # base_url = "http://%s/solr/works" % config.plugin_worksearch.get('solr') # note: better abstraction at worksearch/search.py solr_host = 'ol-solr.us.archive.org:8983' solr_select_url = "http://" + solr_host + "/solr/works/select" filter = 'ia' q = 'key:' + wid stats.begin('solr', url=wkey) solr_select = solr_select_url + "?version=2.2&q.op=AND&q=%s&rows=10&fl=%s&qt=standard&wt=json" % (q, filter) json_data = urllib.urlopen(solr_select).read() stats.end() print json_data reply = simplejson.loads(json_data) if reply['response']['numFound'] == 0: return [] return reply["response"]['docs'][0].get(filter, [])