【发布时间】:2011-05-08 00:54:21
【问题描述】:
我正在我的 Django 网站上实现一个简单的 LIKE 搜索,我目前使用的是以下代码:
from django.db.models import Q
posts = Post.objects.filter(Q(title__icontains=query)|Q(content__icontains=query))
query 是一个字符串。这会产生一个LIKE SQL 语句并且工作得很好。现在我还想将我的搜索查询拆分为词或词:
words = query.split(' ')
所以words现在包含一个单词列表,我想实现一个类似的SQL语句:
SELECT ... FROM foo WHERE `title` ILIKE '%word1%' OR `title` ILIKE '%word2%'
OR `content` ILIKE '%word1%' OR `content` ILIKE '%word2%'
如果有两个以上的单词,我希望语句按每个单词列出所有条目。
有什么想法吗?谢谢!
【问题讨论】:
-
不要忘记清理您的查询,否则您将处于与 Boby Table 学校相同的情况。
-
在 djapian 中使用全文搜索怎么样?
-
@the_drow:Django(或者更准确地说,DB-API)已经解决了这个问题。
-
@the_drow 谢谢 :) 会记住这一点
标签: django django-queryset django-q