Пример #1
0
def ajax_search(request, query, search_idx, ajax):
    ''' Return count or paginated elastic result as a JSON '''
    if ajax == 'count':
        elastic = Search.field_search_query(query, fields=fields, idx=search_idx)
        return JsonResponse(elastic.get_count())
    search_from = request.POST.get("from")
    size = request.POST.get("size")
    elastic = Search.field_search_query(query, fields=fields, search_from=search_from,
                                        size=size, idx=search_idx)
    return JsonResponse(elastic.get_json_response())
Пример #2
0
def ajax_search(request, query, search_idx, ajax):
    ''' Return count or paginated elastic result as a JSON '''
    if ajax == 'count':
        elastic = Search.field_search_query(query,
                                            fields=fields,
                                            idx=search_idx)
        return JsonResponse(elastic.get_count())
    search_from = request.POST.get("from")
    size = request.POST.get("size")
    elastic = Search.field_search_query(query,
                                        fields=fields,
                                        search_from=search_from,
                                        size=size,
                                        idx=search_idx)
    return JsonResponse(elastic.get_json_response())
Пример #3
0
def search(request, query, search_idx=ElasticSettings.indices_str()):
    ''' Renders a elastic results page based on the query '''

    aggs = Aggs(Agg("categories", "terms", {"field": "_type", "size": 0}))
    elastic = Search.field_search_query(query, aggs=aggs, fields=fields,
                                        search_from=0, size=20, idx=search_idx)
    result = elastic.search()
    context = {}
    context['diseases'] = _add_diseases()
    context['total'] = result.hits_total
    context['db'] = result.idx
    context['size'] = result.size
    context['query'] = result.query
    context["idxs"] = _categories(result.idx)
    return render(request, 'search/searchresults.html', context,
                  content_type='text/html')
Пример #4
0
    def _call_elasticsearch(self, name, fields, indexName):
        ''' Call elasticsearch '''
        elastic = Search.field_search_query(name,
                                            fields=fields,
                                            search_from=0,
                                            size=20,
                                            idx=indexName)
        json_response = elastic.get_json_response()
        context = {}
        content = []
        for hit in json_response['hits']['hits']:
            hit['_source']['idx_type'] = hit['_type']
            hit['_source']['idx_id'] = hit['_id']
            if 'highlight' in hit:
                hit['_source']['highlight'] = hit['highlight']
            content.append(hit['_source'])

        context["data"] = content
        context["total"] = json_response['hits']['total']
        return context
Пример #5
0
def search(request, query, search_idx=ElasticSettings.indices_str()):
    ''' Renders a elastic results page based on the query '''

    aggs = Aggs(Agg("categories", "terms", {"field": "_type", "size": 0}))
    elastic = Search.field_search_query(query,
                                        aggs=aggs,
                                        fields=fields,
                                        search_from=0,
                                        size=20,
                                        idx=search_idx)
    result = elastic.search()
    context = {}
    context['diseases'] = _add_diseases()
    context['total'] = result.hits_total
    context['db'] = result.idx
    context['size'] = result.size
    context['query'] = result.query
    context["idxs"] = _categories(result.idx)
    return render(request,
                  'search/searchresults.html',
                  context,
                  content_type='text/html')