def _constructSolrQuery()

in plugins/slcp/stats/Writer.py [0:0]


    def _constructSolrQuery(self, startIndex, entriesPerPage, parameters, facets):
        queries = []
        filterQueries = []
        start = '*'
        end = '*'

        for key, value in parameters.items():
            if value != "":
                if key == 'keyword':
                    queries.append(urllib.parse.quote(value))
                elif key == 'ds':
                    filterQueries.append('datasetShortName:%s' % value)
                elif key == 'startTime':
                    start = value
                elif key == 'endTime':
                    end = value
                elif key == 'basinId':
                    filterQueries.append('basinId_i:%s' % value)
                elif key == 'basinName':
                    filterQueries.append('basinName:%s' % value)
        filterQueries.append('(time:[' + start + '%20TO%20' + end + '])')

        if len(queries) == 0:
            queries.append('*:*')

        query = 'q='+'+AND+'.join(queries)+'&version=2.2&indent=on&wt=json&start='+str(startIndex)+'&rows='+str(entriesPerPage)

        if len(filterQueries) > 0:
            query += '&fq='+'+AND+'.join(filterQueries)

        logging.debug('solr query: '+query)

        return query