Python在textfield中突出显示searchValue
我在跟踪,关于django搜索Python在textfield中突出显示searchValue,python,django,postgresql,Python,Django,Postgresql,我在跟踪,关于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的列表。但在某些文档对象中,原始文本文本字段多次包含搜索值。但我还是只拿到一次医生
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 我没有成功地使用筛选器解决此问题。所以我在谷歌上寻找突出显示的结果,并找到了 此搜索将遍历文本字段并返回此文本的片段。并突出显示搜索值 我的最终代码如下所示:
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'))
我希望这将帮助其他人:)我没有成功地使用筛选器解决此问题。所以我在谷歌上寻找突出显示的结果,并找到了 此搜索将遍历文本字段并返回此文本的片段。并突出显示搜索值 我的最终代码如下所示:
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'))
我希望这能帮助其他人:)我能问一下你为什么要这么做吗?您可能可以按匹配的数量进行排序..我尝试过,但如果您想在文档中显示搜索值的“点击数”之后对结果进行排序,则会使用秩。因此,它仍然只返回一个文档id,即使该文档有两次或更多次search_值。我认为循环“可能”是一个很好的解决方案。我能问问你为什么要这样做吗?您可能可以按匹配的数量进行排序..我尝试过,但如果您想在文档中显示搜索值的“点击数”之后对结果进行排序,则会使用秩。因此,它仍然只返回一个文档id,即使该文档有两次或更多次search_值。我认为循环“可能”是一个很好的解决方案。