def alt_search(site_id, request_q, action): return_list = [] alt_site_search_set = SiteAlternateSearches.objects.filter(site=site_id).order_by('site_order') alt_query_string, alt_query_dict = solr_query(request_q, 'extAltSearch', "") for alt_site in alt_site_search_set: alt_preferred_results_url = '' if alt_site.alt_site_id: alt_search_set = alt_site_lookup(alt_site.alt_site_id) local_querystr, local_querydict = solr_query(request_q, 'extAltSearch', alt_search_set) altbaseurl = '%ssearch/select/?wt=json' % SOLR_URL ext_query_str = local_querystr.replace(alt_search_set, '') alt_preferred_results_url = '%sresults?%s' % (alt_site.alt_site_url, ext_query_str) # different because we're doing an internal lookup else: local_querystr = alt_query_string altbaseurl = alt_site.alt_site_url altresultsurl = altbaseurl # the same url because the multisearch and the user are searching externally alt_dict = {'label': alt_site.alt_site_label} if action == 'count': altdocscount, alt_docs_url, altdocsresults = get_alt_search( local_querystr, altbaseurl, altresultsurl, action, '' ) alt_dict.update({'count': altdocscount}) alt_dict.update({'url': alt_docs_url}) return_list.append(alt_dict) elif action == 'results': altdocscount, alt_docs_url, altdocsresults = get_alt_search( local_querystr, altbaseurl, altresultsurl, action, alt_site.alt_site_syntax ) alt_dict.update({'count': altdocscount}) if alt_preferred_results_url: alt_dict.update({'url': alt_preferred_results_url}) else: alt_dict.update({'url': alt_docs_url}) alt_dict.update({'results': altdocsresults}) if int(altdocscount) > 3: alt_dict.update({'more': True}) else: alt_dict.update({'more': False}) return_list.append(alt_dict) return return_list
def get_count(request, search_set): query_str, query_dict = solr_query(request, 'count', search_set) count = '0' url = solr + query_str solr_result = get_solr(url, 'json') if isinstance(solr_result, dict): count = solr_result['response']['numFound'] return count
def get_count(request, search_set): query_str, query_dict = solr_query(request, 'count', search_set) count = '0' url = solr + query_str solr_result = get_solr(url, 'json') if isinstance(solr_result, dict): count = solr_result['response']['numFound'] return count
def get_kml_count(request, search_set): kml_query, query_dict = solr_query(request, 'kml', search_set) if kml_query: url = solr + kml_query kml_response = get_solr(url, 'json') if isinstance(kml_response, dict): kml_count = int(kml_response['response']['numFound']) else: kml_count = 0 else: kml_count = 0 return kml_count
def query_solr_url(request, output_format, xml_type, search_set): """ generate the appropriate URLs for requests execute the searches against solr, or external datasets """ query_str, query_dict = solr_query(request, xml_type, search_set) if output_format == 'xml': url = solr_xml + query_str else: url = solr + query_str solr_result = get_solr(url, output_format) return solr_result, query_dict
def get_kml_count(request, search_set): kml_query, query_dict = solr_query(request, 'kml', search_set) if kml_query: url = solr + kml_query kml_response = get_solr(url, 'json') if isinstance(kml_response, dict): kml_count = int(kml_response['response']['numFound']) else: kml_count = 0 else: kml_count = 0 return kml_count
def query_solr_url(request, output_format, xml_type, search_set): """ generate the appropriate URLs for requests execute the searches against solr, or external datasets """ query_str, query_dict = solr_query(request, xml_type, search_set) if output_format == 'xml': url = solr_xml + query_str else: url = solr + query_str solr_result = get_solr(url, output_format) return solr_result, query_dict