Python突出显示textfield中的searchValue

2024-04-25 21:58:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我在关注this guide,关于django搜索。你知道吗

search_value = request.query_params['searchvalue']

documents = Document.objects.filter(
    raw_text__icontains=search_value
).values_list('doc_id', flat=True)

return documents

这将根据搜索值获取文档id的列表。但在某些文档对象中,原始文本文本字段多次包含搜索值。但我还是只拿到一次医生证。你知道吗

有没有办法为过滤器中的每一次点击获取文档id?你知道吗


Tags: django文档文本idsearchobjectsvaluerequest
1条回答
网友
1楼 · 发布于 2024-04-25 21:58:08

我没有成功地解决这个问题使用过滤器。所以我在Google上寻找突出显示的结果,找到了PostgreSQL Text Search。你知道吗

此搜索将遍历文本字段并返回此文本的片段。并突出显示搜索值。你知道吗

我的最终代码如下所示:

    search_value = request.query_params['searchvalue']

    queryset = Document.objects.extra(
        select={
            'snippet': (
                "ts_headline(raw_text, plainto_tsquery(%s), "
                "'StartSel=*,StopSel=*,MaxFragments=2,"
                "FragmentDelimiter=...,MaxWords=8,MinWords=1')"
            ),
        },
        where=["search @@ plainto_tsquery(%s)"],
        params=[search_value],
        select_params=[search_value, search_value]
    )

    return Response(queryset.values('id', 'title', 'snippet', 'doc_number'))

我希望这能帮助其他人:)

相关问题 更多 >