Last active
March 10, 2018 22:58
-
-
Save capooti/d71cbc1f8793d687625e853eaf01d9da to your computer and use it in GitHub Desktop.
Solr vs pycsw with RDBMS in WorldMap
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import pysolr | |
from owslib.csw import CatalogueServiceWeb, PropertyIsEqualTo | |
import time | |
keywords = ( | |
'agriculture', | |
'climate', | |
'farming', | |
'health', | |
'ocean', | |
'planning', | |
'population', | |
'society', | |
'transportation', | |
'utilities', | |
) | |
n = 100 | |
solr = pysolr.Solr('http://worldmap.harvard.edu/solr/hypermap/', timeout=10) | |
csw = CatalogueServiceWeb('http://hh.worldmap.harvard.edu/registry/hypermap/csw') | |
solr_results = {} | |
def query_solr(keyword): | |
# returning only 10 results text | |
results = solr.search(keyword) | |
return results.hits | |
def query_pycsw(keyword): | |
# returning only 10 results text | |
csw_query = PropertyIsEqualTo('csw:AnyText', keyword) | |
csw.getrecords2(constraints=[csw_query], maxrecords=10) | |
return csw.results['matches'] | |
for k in keywords: | |
# 1. solr | |
print 'Querying Solr with %s' % k | |
t0_solr = time.time() | |
for i in range(n): query_solr(k) | |
t1_solr = time.time() | |
time_solr = (t1_solr-t0_solr)/n | |
results_solr = query_solr(k) | |
# 2. solr | |
print 'Querying pycsw with %s' % k | |
t0_pycsw = time.time() | |
for i in range(n): query_pycsw(k) | |
t1_pycsw = time.time() | |
time_pycsw = (t1_pycsw-t0_pycsw)/n | |
results_pycsw = query_pycsw(k) | |
# summarize | |
solr_results[k] = [results_solr, float('{0:.3f}'.format(time_solr)), results_pycsw, float('{0:.3f}'.format(time_pycsw))] | |
print solr_results |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment