in libraries/edge/opensearch/datasetwriter.py [0:0]
def _constructSolrQuery(self, startIndex, entriesPerPage, variables):
queries = []
sort = None
filterQuery = None
for key, value in variables.items():
#query = ''
if key == 'startTime':
startTime = DateUtility.convertISOToUTCTimestamp(value)
if startTime is not None:
query = 'DatasetCoverage-StopTimeLong-Long:'
query += '['+str(startTime)+'%20TO%20*]'
queries.append(query)
elif key == 'endTime':
stopTime = DateUtility.convertISOToUTCTimestamp(value)
if stopTime is not None:
query = 'DatasetCoverage-StartTimeLong-Long:'
query += '[*%20TO%20'+str(stopTime)+']'
queries.append(query)
elif key == 'keyword':
newValue = urllib.parse.quote(value)
query = 'SearchableText-LowerCased:('+newValue+')'
queries.append(query)
elif key == 'datasetId':
query = 'Dataset-PersistentId:'+self._urlEncodeSolrQueryValue(value)
queries.append(query)
elif key == 'shortName':
query = 'Dataset-ShortName-Full:'+self._urlEncodeSolrQueryValue(value)
queries.append(query)
elif key == 'satellite':
query = 'DatasetSource-Source-ShortName-Full:'+self._urlEncodeSolrQueryValue(value)
queries.append(query)
elif key == 'instrument':
query = 'DatasetSource-Sensor-ShortName-Full:'+self._urlEncodeSolrQueryValue(value)
queries.append(query)
elif key == 'fileFormat':
query = 'DatasetPolicy-DataFormat-LowerCased:'+self._urlEncodeSolrQueryValue(value)
queries.append(query)
elif key == 'status':
query = 'DatasetPolicy-AccessType-LowerCased:'+self._urlEncodeSolrQueryValue(value)
queries.append(query)
elif key == 'processLevel':
query = 'Dataset-ProcessingLevel-LowerCased:'+value
queries.append(query)
elif key == 'sortBy':
sortByMapping = {'timeDesc': 'DatasetCoverage-StartTimeLong-Long+desc', 'timeAsc': 'DatasetCoverage-StartTimeLong-Long+asc',
'popularityDesc': 'Dataset-AllTimePopularity+desc', 'popularityAsc': 'Dataset-AllTimePopularity+asc'}
if value in list(sortByMapping.keys()):
sort = sortByMapping[value]
elif key == 'bbox':
filterQuery = self._constructBoundingBoxQuery(value)
#if query != '':
# queries.append('%2B'+query)
if len(queries) == 0:
queries.append('*')
query = 'q='+'+AND+'.join(queries)+'&fq=DatasetPolicy-AccessType-Full:(OPEN+OR+PREVIEW+OR+SIMULATED+OR+REMOTE)+AND+DatasetPolicy-ViewOnline:Y&version=2.2&start='+str(startIndex)+'&rows='+str(entriesPerPage)+'&indent=on&wt=json'
if sort is not None:
query += '&sort=' + sort
if filterQuery is not None:
query += '&' + filterQuery
logging.debug('solr query: '+query)
return query