Bläddra i källkod

adding error handling for no Solr core

main
Simon Bowie 2 år sedan
förälder
incheckning
30fd404c82
2 ändrade filer med 36 tillägg och 28 borttagningar
  1. +35
    -27
      web/app/solr.py
  2. +1
    -1
      web/app/templates/theme.html

+ 35
- 27
web/app/solr.py Visa fil

def solr_search(solrurl): def solr_search(solrurl):
# get result # get result
request = requests.get(solrurl) request = requests.get(solrurl)
# turn the API response into useful Json if request.status_code != 200:
json = request.json() error = "Solr error: " + str(request.text)
return error
else:
# turn the API response into useful Json
json = request.json()


num_found = json['response']['numFound'] num_found = json['response']['numFound']
facets = [] facets = []


if (num_found == 0): if (num_found == 0):
output = 'no results found' output = 'no results found'
else: else:
output = [] output = []
for result in json['response']['docs']: for result in json['response']['docs']:
# set ID variable # set ID variable
id = result['id'] id = result['id']
# set content variable # set content variable
content = result['content'] content = result['content']
# parse result # parse result
result_output = parse_result(id, content) result_output = parse_result(id, content)
output.append(result_output) output.append(result_output)
try: try:
json['facet_counts'] json['facet_counts']
facets = json['facet_counts']['facet_fields'] facets = json['facet_counts']['facet_fields']
except KeyError: except KeyError:
pass pass

return output, num_found, facets
return output, num_found, facets


def query_search(core, sort, query, country, year, page): def query_search(core, sort, query, country, year, page):


i = 0 i = 0
while i <= number-1: while i <= number-1:
search_results = random_search(core) search_results = random_search(core)
results = search_results[0] if "error" not in search_results:
for result in results: results = search_results[0]
results_list.append(result) for result in results:
i += 1 results_list.append(result)
i += 1
else:
results_list = search_results
break
return results_list return results_list



def get_ten_random_elements(field): def get_ten_random_elements(field):
core = 'all' core = 'all'
output = [] output = []

+ 1
- 1
web/app/templates/theme.html Visa fil



<hr> <hr>


{% if results == 'no results found' %} {% if 'error' in results %}


{{ results }} {{ results }}



Laddar…
Avbryt
Spara