gpt4 book ai didi

python - 如何编写在 Postgres 列中查找单词的 Django 查询?

转载 作者:行者123 更新时间:2023-11-29 12:39:39 26 4
gpt4 key购买 nike

我正在使用 Django 和 Python 3.7。如何扫描 Django 查询中的单词?单词是由空格(或一行的开头或结尾)包围的字符串。我有这个...

def get_articles_with_words_in_titles(self, long_words):
qset = Article.objects.filter(reduce(operator.or_, (Q(title__icontains=x) for x in long_words)))
result = set(list(qset))

但如果“long_words”包含诸如 ["about", "still"] 之类的内容,它将匹配标题包含诸如 "whereabouts"或 "stillborn"之类内容的文章。知道如何修改我的查询以合并单词边界吗?

最佳答案

如果你的数据库是postgres,我建议试试Full Text Search的 postgres。

而且 django 似乎有 builtin module

from django.contrib.postgres.search import SearchVector, SearchQuery

search_vector = SearchVector('title')
search_query = SearchQuery('about') & SearchQuery('still')

Article.objects.annotate(
search=search_vector
).filter(
search=search_query
)

关于python - 如何编写在 Postgres 列中查找单词的 Django 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57531250/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com