コード例 #1
0
ファイル: views.py プロジェクト: AdilHaydar/SocialApp
def search(request):

    q = request.GET.get('q')
    searchq = request.GET.get('searchq')
    if q:
        if searchq == 'userq':
            users = UserDocument.search().query("match", username=q)

            if (len(list(users)) == 0):
                messages.warning(request, 'Results not found', 'danger')

            return render(request, 'search_user.html', {
                'users': users,
                'searchValue': q
            })

        if searchq == 'tagq':
            tags = TagDocument.search().query("match", title=q)

            if (len(list(tags)) == 0):
                messages.warning(request, 'Results not found', 'danger')

            return render(request, 'search_tag.html', {
                'tags': tags,
                'searchValue': q
            })

        posts = PostDocument.search().query("match", statement=q)
        if (len(list(posts)) == 0):
            messages.warning(request, 'Results not found!', 'danger')
        #posts = posts.to_queryset()
    else:
        posts = ''
    return render(request, 'search.html', {'posts': posts, 'searchValue': q})
コード例 #2
0
def search_everything(request):
    title = 'Search Results'
    mq = request.GET.get('mq')
    searched_results = {}

    if request.method == 'GET':
        if mq:
            searched_users = UserDocument.search().query('match', name=mq)
            if searched_users:
                users = {'users': list(searched_users)}
                searched_results.update(users)

            searched_groups = GroupDocument.search().query('match', title=mq)
            if searched_groups:
                groups = {'groups': list(searched_groups)}
                searched_results.update(groups)

            searched_photoalbums = PhotoalbumDocument.search().query('match',
                                                                     title=mq)
            if searched_photoalbums:
                photoalbums = {'photoalbums': list(searched_photoalbums)}
                searched_results.update(photoalbums)

            searched_posts = PostDocument.search().query('match', body=mq)
            if searched_posts:
                posts = {'posts': list(searched_posts)}
                searched_results.update(posts)
            return render(request, 'search/searched_results.html', {
                'searched_results': searched_results,
                'title': title
            })
        else:
            searched_results = {}

    return redirect(request.META.get('HTTP_REFERER', '/'))
コード例 #3
0
    def search_posts(request):
        q = request.GET.get('q')

        if q:
            searched_posts = PostDocument.search().query('match', body=q)
        else:
            searched_posts = ''
        return searched_posts
コード例 #4
0
ファイル: views.py プロジェクト: TeamKakshya/Kakshya
def search(request):
    q = request.GET.get('q')
    if q:
        posts = PostDocument.search().query("match", title=q)
    else:
        posts = ''

    return render(request, 'search/search.html', {'posts': posts})
コード例 #5
0
def search(request):
    q = request.GET.get('q')

    if q:
        query = MultiMatch(query=q, fields=['text'])
        posts = PostDocument.search().query(query)
    else:
        posts = ''
    return render(request, 'search/search.html', {'posts': posts})
コード例 #6
0
def search(request):
    q = request.GET.get('q')
    if q:
        #p = PostDocument.search().query("match", title=q)
        qy = Q("multi_match", query=q, fields=['title', 'text'])
        s = PostDocument.search()
        p = s.query(qy)
        posts = p.to_queryset()
        t = [_.to_dict(include_meta=False) for _ in p]
    else:
        posts = ''
        t = ''

    return render(request, 'search/search.html', {'posts': posts, 'ps': t})
コード例 #7
0
def post_list(request):
    # posts = Post.objects.filter(published_date__lte=timezone.now()).order_by('published_date')
    # return render(request, 'blog/post_list.html', {'posts': posts})
    q = request.GET.get('q')
    meta_info = {}

    if q:
        qy = Q("multi_match", query=q, fields=['title', 'text'])
        s = PostDocument.search()
        p = s.query(qy)
        posts = p.to_queryset()
        meta_info['results_count'] = len(posts)
        meta_info['query'] = q
    else:
        posts = Post.objects.filter(
            published_date__lte=timezone.now()).order_by('published_date')

    return render(request, 'blog/post_list.html', {
        'posts': posts,
        'meta_info': meta_info
    })
コード例 #8
0
def search(request):

    q = request.GET.get('q')
    s = q.split(",")
    a = "Q('match', med_details='{}')".format(s[0])
    i = 1
    while i < len(s):
        a += '&Q(\'match\', med_details=\'{}\')'.format(s[i])
        i += 1

    if q:
        posts = PostDocument.search().query('bool', must=[eval(a)])
        posts = posts.highlight_options(pre_tags=["<span class=\"result\">"],
                                        post_tags=["</span>"],
                                        order='score',
                                        fragment_size=1000)
        posts = posts.highlight('med_details')
        response = posts.execute()
    else:
        posts = ''
    posts = posts[0:10000]
    f = response.hits.total

    return render(request, 'search.html', {'posts': posts, 'f': f})